crashes.cpp revision 2c4792c731690dbbcbe69dd0625977adffc2961a
1025291b591a528d8a3f303991f65e19fa1e90a9dDouglas Gregor// RUN: %clang_cc1 -fsyntax-only -verify %s 2025291b591a528d8a3f303991f65e19fa1e90a9dDouglas Gregor 3025291b591a528d8a3f303991f65e19fa1e90a9dDouglas Gregor// <rdar://problem/8124080> 4025291b591a528d8a3f303991f65e19fa1e90a9dDouglas Gregortemplate<typename _Alloc> class allocator; 5025291b591a528d8a3f303991f65e19fa1e90a9dDouglas Gregortemplate<class _CharT> struct char_traits; 6025291b591a528d8a3f303991f65e19fa1e90a9dDouglas Gregortemplate<typename _CharT, typename _Traits = char_traits<_CharT>, 7025291b591a528d8a3f303991f65e19fa1e90a9dDouglas Gregor typename _Alloc = allocator<_CharT> > 8025291b591a528d8a3f303991f65e19fa1e90a9dDouglas Gregorclass basic_string; 9025291b591a528d8a3f303991f65e19fa1e90a9dDouglas Gregortemplate<typename _CharT, typename _Traits, typename _Alloc> 10025291b591a528d8a3f303991f65e19fa1e90a9dDouglas Gregorconst typename basic_string<_CharT, _Traits, _Alloc>::size_type 11025291b591a528d8a3f303991f65e19fa1e90a9dDouglas Gregorbasic_string<_CharT, _Traits, _Alloc>::_Rep::_S_max_size // expected-error{{no member named '_Rep' in 'basic_string<_CharT, _Traits, _Alloc>'}} 12025291b591a528d8a3f303991f65e19fa1e90a9dDouglas Gregor = (((npos - sizeof(_Rep_base))/sizeof(_CharT)) - 1) / 4; 13025291b591a528d8a3f303991f65e19fa1e90a9dDouglas Gregor 14025291b591a528d8a3f303991f65e19fa1e90a9dDouglas Gregor// PR7118 15025291b591a528d8a3f303991f65e19fa1e90a9dDouglas Gregortemplate<typename T> 16025291b591a528d8a3f303991f65e19fa1e90a9dDouglas Gregorclass Foo { 17025291b591a528d8a3f303991f65e19fa1e90a9dDouglas Gregor class Bar; 18025291b591a528d8a3f303991f65e19fa1e90a9dDouglas Gregor void f() { 19025291b591a528d8a3f303991f65e19fa1e90a9dDouglas Gregor Bar i; 20025291b591a528d8a3f303991f65e19fa1e90a9dDouglas Gregor } 21025291b591a528d8a3f303991f65e19fa1e90a9dDouglas Gregor}; 226a622dfde49ff06df4e0487fa9782a9a137971acArgyrios Kyrtzidis 236a622dfde49ff06df4e0487fa9782a9a137971acArgyrios Kyrtzidis// PR7625 246a622dfde49ff06df4e0487fa9782a9a137971acArgyrios Kyrtzidistemplate<typename T> struct a : T { 256a622dfde49ff06df4e0487fa9782a9a137971acArgyrios Kyrtzidis struct x : T { 266a622dfde49ff06df4e0487fa9782a9a137971acArgyrios Kyrtzidis int aa() { return p; } // expected-error{{use of undeclared identifier 'p'}} 276a622dfde49ff06df4e0487fa9782a9a137971acArgyrios Kyrtzidis }; 286a622dfde49ff06df4e0487fa9782a9a137971acArgyrios Kyrtzidis}; 29d86132d52c1dd99ad5519abaad92533712692a8bArgyrios Kyrtzidis 30d86132d52c1dd99ad5519abaad92533712692a8bArgyrios Kyrtzidis// rdar://8605381 31d86132d52c1dd99ad5519abaad92533712692a8bArgyrios Kyrtzidisnamespace rdar8605381 { 32d86132d52c1dd99ad5519abaad92533712692a8bArgyrios Kyrtzidisstruct X {}; 33d86132d52c1dd99ad5519abaad92533712692a8bArgyrios Kyrtzidis 34d86132d52c1dd99ad5519abaad92533712692a8bArgyrios Kyrtzidisstruct Y { // expected-note{{candidate}} 35d86132d52c1dd99ad5519abaad92533712692a8bArgyrios Kyrtzidis Y(); 36d86132d52c1dd99ad5519abaad92533712692a8bArgyrios Kyrtzidis}; 37d86132d52c1dd99ad5519abaad92533712692a8bArgyrios Kyrtzidis 38d86132d52c1dd99ad5519abaad92533712692a8bArgyrios Kyrtzidisstruct { 39d86132d52c1dd99ad5519abaad92533712692a8bArgyrios Kyrtzidis Y obj; 40d86132d52c1dd99ad5519abaad92533712692a8bArgyrios Kyrtzidis} objs[] = { 41d86132d52c1dd99ad5519abaad92533712692a8bArgyrios Kyrtzidis new Y // expected-error{{no viable conversion}} 42d86132d52c1dd99ad5519abaad92533712692a8bArgyrios Kyrtzidis}; 43d86132d52c1dd99ad5519abaad92533712692a8bArgyrios Kyrtzidis} 442c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidis 452c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidis// http://llvm.org/PR8234 462c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidisnamespace PR8234 { 472c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidistemplate<typename Signature> 482c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidisclass callback 492c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidis{ 502c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidis}; 512c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidis 522c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidistemplate<typename R , typename ARG_TYPE0> 532c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidisclass callback<R( ARG_TYPE0)> 542c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidis{ 552c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidis public: 562c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidis callback() {} 572c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidis}; 582c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidis 592c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidistemplate< typename ARG_TYPE0> 602c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidisclass callback<void( ARG_TYPE0)> 612c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidis{ 622c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidis public: 632c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidis callback() {} 642c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidis}; 652c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidis 662c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidisvoid f() 672c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidis{ 682c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidis callback<void(const int&)> op; 692c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidis} 702c4792c731690dbbcbe69dd0625977adffc2961aArgyrios Kyrtzidis} 71