xref: /minix3/external/bsd/llvm/dist/clang/test/Parser/cxx0x-override-control-keywords.cpp (revision f4a2713ac843a11c696ec80c0a5e3e5d80b4d338)
1*f4a2713aSLionel Sambuc // RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s
2*f4a2713aSLionel Sambuc // expected-no-diagnostics
3*f4a2713aSLionel Sambuc 
4*f4a2713aSLionel Sambuc struct Base {
5*f4a2713aSLionel Sambuc   virtual void override();
6*f4a2713aSLionel Sambuc };
7*f4a2713aSLionel Sambuc 
8*f4a2713aSLionel Sambuc struct S : Base {
9*f4a2713aSLionel Sambuc   virtual void final() final;
10*f4a2713aSLionel Sambuc   virtual void override() override;
11*f4a2713aSLionel Sambuc };
12*f4a2713aSLionel Sambuc 
13*f4a2713aSLionel Sambuc struct T {
14*f4a2713aSLionel Sambuc   // virt-specifier-seq is only valid in member-declarators, and a function definition is not a member-declarator.
15*f4a2713aSLionel Sambuc   // FIXME: This currently doesn't work.
16*f4a2713aSLionel Sambuc   // virtual void f() const override { }
17*f4a2713aSLionel Sambuc };
18*f4a2713aSLionel Sambuc 
19*f4a2713aSLionel Sambuc struct override;
20*f4a2713aSLionel Sambuc struct Base2 {
21*f4a2713aSLionel Sambuc   virtual override override(int override);
22*f4a2713aSLionel Sambuc };
23*f4a2713aSLionel Sambuc 
24*f4a2713aSLionel Sambuc struct A : Base2 {
25*f4a2713aSLionel Sambuc   virtual struct override override(int override) override;
26*f4a2713aSLionel Sambuc };
27