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