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 13aa031fd7cbba511404a26b733138e392d4f9f17aAnders Carlssonstruct T { 14aa031fd7cbba511404a26b733138e392d4f9f17aAnders Carlsson // virt-specifier-seq is only valid in member-declarators, and a function definition is not a member-declarator. 15c7119a871df4d2d79db3e48fc9d0ab421be54a3dAnders Carlsson // FIXME: This currently doesn't work. 16c7119a871df4d2d79db3e48fc9d0ab421be54a3dAnders Carlsson // virtual void f() const override { } 171f3b6fdabbb10779a473d6315154d7325ce20aeaAnders Carlsson}; 1837ea6c461897bcfc8865eb130cddd5c1853c3c22Anders Carlsson 1937ea6c461897bcfc8865eb130cddd5c1853c3c22Anders Carlssonstruct override; 20c7119a871df4d2d79db3e48fc9d0ab421be54a3dAnders Carlssonstruct Base2 { 21c7119a871df4d2d79db3e48fc9d0ab421be54a3dAnders Carlsson virtual override override(int override); 22c7119a871df4d2d79db3e48fc9d0ab421be54a3dAnders Carlsson}; 23c7119a871df4d2d79db3e48fc9d0ab421be54a3dAnders Carlsson 24c7119a871df4d2d79db3e48fc9d0ab421be54a3dAnders Carlssonstruct A : Base2 { 25c7119a871df4d2d79db3e48fc9d0ab421be54a3dAnders Carlsson virtual struct override override(int override) override; 2637ea6c461897bcfc8865eb130cddd5c1853c3c22Anders Carlsson}; 27