1762bb9d0ad20320b9f97a841dce57ba5e8e48b07Richard Smith// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s 28e8fb3be5bd78f0564444eca02b404566a5f3b5dAndy Gibbs// expected-no-diagnostics 3c7119a871df4d2d79db3e48fc9d0ab421be54a3dAnders Carlsson 4c7119a871df4d2d79db3e48fc9d0ab421be54a3dAnders Carlssonstruct Base { 5c7119a871df4d2d79db3e48fc9d0ab421be54a3dAnders Carlsson virtual void override(); 6c7119a871df4d2d79db3e48fc9d0ab421be54a3dAnders Carlsson}; 7c7119a871df4d2d79db3e48fc9d0ab421be54a3dAnders Carlsson 8c7119a871df4d2d79db3e48fc9d0ab421be54a3dAnders Carlssonstruct S : Base { 91f3b6fdabbb10779a473d6315154d7325ce20aeaAnders Carlsson virtual void final() final; 101f3b6fdabbb10779a473d6315154d7325ce20aeaAnders Carlsson virtual void override() override; 11aa031fd7cbba511404a26b733138e392d4f9f17aAnders Carlsson}; 12aa031fd7cbba511404a26b733138e392d4f9f17aAnders Carlsson 133ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarstruct T : Base { 143ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar virtual void override() override { } 151f3b6fdabbb10779a473d6315154d7325ce20aeaAnders Carlsson}; 1637ea6c461897bcfc8865eb130cddd5c1853c3c22Anders Carlsson 1737ea6c461897bcfc8865eb130cddd5c1853c3c22Anders Carlssonstruct override; 18c7119a871df4d2d79db3e48fc9d0ab421be54a3dAnders Carlssonstruct Base2 { 19c7119a871df4d2d79db3e48fc9d0ab421be54a3dAnders Carlsson virtual override override(int override); 20c7119a871df4d2d79db3e48fc9d0ab421be54a3dAnders Carlsson}; 21c7119a871df4d2d79db3e48fc9d0ab421be54a3dAnders Carlsson 22c7119a871df4d2d79db3e48fc9d0ab421be54a3dAnders Carlssonstruct A : Base2 { 23c7119a871df4d2d79db3e48fc9d0ab421be54a3dAnders Carlsson virtual struct override override(int override) override; 2437ea6c461897bcfc8865eb130cddd5c1853c3c22Anders Carlsson}; 25