Home | History | Annotate | Download | only in dcl.stc
      1 // RUN: %clang_cc1 -fsyntax-only -verify -Wno-c++0x-compat %s
      2 
      3 // The auto or register specifiers can be applied only to names of objects
      4 // declared in a block (6.3) or to function parameters (8.4).
      5 
      6 auto int ao; // expected-error {{illegal storage class on file-scoped variable}}
      7 auto void af(); // expected-error {{illegal storage class on function}}
      8 
      9 register int ro; // expected-error {{illegal storage class on file-scoped variable}}
     10 register void rf(); // expected-error {{illegal storage class on function}}
     11 
     12 struct S {
     13   auto int ao; // expected-error {{storage class specified for a member declaration}}
     14   auto void af(); // expected-error {{storage class specified for a member declaration}}
     15 
     16   register int ro; // expected-error {{storage class specified for a member declaration}}
     17   register void rf(); // expected-error {{storage class specified for a member declaration}}
     18 };
     19 
     20 void foo(auto int ap, register int rp) {
     21   auto int abo;
     22   auto void abf(); // expected-error {{illegal storage class on function}}
     23 
     24   register int rbo;
     25   register void rbf(); // expected-error {{illegal storage class on function}}
     26 }
     27