cxx-class.cpp revision bc8d56496a6ecdba14769df03d75c001184f8c54
1ab963c6221ac088fad73a47bc7a0a0b266b030daSebastian Redl// RUN: clang -parse-noop -verify %s
2ab963c6221ac088fad73a47bc7a0a0b266b030daSebastian Redlclass C;
34cc18a4d5222e04bd568b1e3e4d86127dbbcdf3fArgyrios Kyrtzidisclass C {
44cc18a4d5222e04bd568b1e3e4d86127dbbcdf3fArgyrios Kyrtzidispublic:
54cc18a4d5222e04bd568b1e3e4d86127dbbcdf3fArgyrios Kyrtzidisprotected:
64cc18a4d5222e04bd568b1e3e4d86127dbbcdf3fArgyrios Kyrtzidis  typedef int A,B;
74cc18a4d5222e04bd568b1e3e4d86127dbbcdf3fArgyrios Kyrtzidis  static int sf(), u;
84cc18a4d5222e04bd568b1e3e4d86127dbbcdf3fArgyrios Kyrtzidis
94cc18a4d5222e04bd568b1e3e4d86127dbbcdf3fArgyrios Kyrtzidis  struct S {};
104cc18a4d5222e04bd568b1e3e4d86127dbbcdf3fArgyrios Kyrtzidis  enum {};
114cc18a4d5222e04bd568b1e3e4d86127dbbcdf3fArgyrios Kyrtzidis  int; // expected-error {{error: declaration does not declare anything}}
123a9fdb4742b21c0a3c27f18c5e4e94bab6f9e64cArgyrios Kyrtzidis  int : 1, : 2;
134cc18a4d5222e04bd568b1e3e4d86127dbbcdf3fArgyrios Kyrtzidis
144cc18a4d5222e04bd568b1e3e4d86127dbbcdf3fArgyrios Kyrtzidispublic:
154cc18a4d5222e04bd568b1e3e4d86127dbbcdf3fArgyrios Kyrtzidis  void m() {
164cc18a4d5222e04bd568b1e3e4d86127dbbcdf3fArgyrios Kyrtzidis    int l = 2;
174cc18a4d5222e04bd568b1e3e4d86127dbbcdf3fArgyrios Kyrtzidis  }
18ab963c6221ac088fad73a47bc7a0a0b266b030daSebastian Redl  virtual int vf() const volatile = 0;
194cc18a4d5222e04bd568b1e3e4d86127dbbcdf3fArgyrios Kyrtzidis
204cc18a4d5222e04bd568b1e3e4d86127dbbcdf3fArgyrios Kyrtzidisprivate:
214cc18a4d5222e04bd568b1e3e4d86127dbbcdf3fArgyrios Kyrtzidis  int x,f(),y,g();
22ab963c6221ac088fad73a47bc7a0a0b266b030daSebastian Redl  inline int h();
23ab963c6221ac088fad73a47bc7a0a0b266b030daSebastian Redl  static const int sci = 10;
24669d5d74b880a8497b92a3ec159145713f4d6519Sebastian Redl  mutable int mi;
254cc18a4d5222e04bd568b1e3e4d86127dbbcdf3fArgyrios Kyrtzidis};
26ab963c6221ac088fad73a47bc7a0a0b266b030daSebastian Redlvoid glo()
27ab963c6221ac088fad73a47bc7a0a0b266b030daSebastian Redl{
28ab963c6221ac088fad73a47bc7a0a0b266b030daSebastian Redl  struct local {};
29ab963c6221ac088fad73a47bc7a0a0b266b030daSebastian Redl}
30bc8d56496a6ecdba14769df03d75c001184f8c54Chris Lattner
31bc8d56496a6ecdba14769df03d75c001184f8c54Chris Lattner// PR3177
32bc8d56496a6ecdba14769df03d75c001184f8c54Chris Lattnertypedef union {
33bc8d56496a6ecdba14769df03d75c001184f8c54Chris Lattner  __extension__ union {
34bc8d56496a6ecdba14769df03d75c001184f8c54Chris Lattner    int a;
35bc8d56496a6ecdba14769df03d75c001184f8c54Chris Lattner    float b;
36bc8d56496a6ecdba14769df03d75c001184f8c54Chris Lattner  } y;
37bc8d56496a6ecdba14769df03d75c001184f8c54Chris Lattner} bug3177;
38bc8d56496a6ecdba14769df03d75c001184f8c54Chris Lattner
39