1a5728872c7702ddd09537c95bc3cbd20e1f2fb09Daniel Dunbar// RUN: %clang_cc1 -fsyntax-only -verify -pedantic -trigraphs %s 2136f93a2b660fc780fc2dba82a6f42ca4dc9164aChris Lattner 32dec3a1aa161fdd4a8dd650eee522c020490732fChris Lattnerint x = 000000080; // expected-error {{invalid digit}} 4136f93a2b660fc780fc2dba82a6f42ca4dc9164aChris Lattner 5136f93a2b660fc780fc2dba82a6f42ca4dc9164aChris Lattnerint y = 0000\ 62dec3a1aa161fdd4a8dd650eee522c020490732fChris Lattner00080; // expected-error {{invalid digit}} 7136f93a2b660fc780fc2dba82a6f42ca4dc9164aChris Lattner 82dec3a1aa161fdd4a8dd650eee522c020490732fChris Lattner 92dec3a1aa161fdd4a8dd650eee522c020490732fChris Lattner 102dec3a1aa161fdd4a8dd650eee522c020490732fChris Lattnerfloat X = 1.17549435e-38F; 112dec3a1aa161fdd4a8dd650eee522c020490732fChris Lattnerfloat Y = 08.123456; 122dec3a1aa161fdd4a8dd650eee522c020490732fChris Lattner 132dec3a1aa161fdd4a8dd650eee522c020490732fChris Lattner// PR2252 142dec3a1aa161fdd4a8dd650eee522c020490732fChris Lattner#if -0x8000000000000000 // should not warn. 152dec3a1aa161fdd4a8dd650eee522c020490732fChris Lattner#endif 16b77f41e66f736e9e67a9d39c47c747804b22c6b9Chris Lattner 17b77f41e66f736e9e67a9d39c47c747804b22c6b9Chris Lattner 18091f23f1d6d4bcffd6641cda72a6831e08c02ea7John McCallint c[] = { 19e3ad881e4e9620e941dabd4e78dacdb028b85682Chris Lattner 'df', // expected-warning {{multi-character character constant}} 20b77f41e66f736e9e67a9d39c47c747804b22c6b9Chris Lattner '\t', 21b77f41e66f736e9e67a9d39c47c747804b22c6b9Chris Lattner '\\ 22b77f41e66f736e9e67a9d39c47c747804b22c6b9Chris Lattnert', 23e3ad881e4e9620e941dabd4e78dacdb028b85682Chris Lattner '??!', // expected-warning {{trigraph converted to '|' character}} 24e3ad881e4e9620e941dabd4e78dacdb028b85682Chris Lattner 'abcd' // expected-warning {{multi-character character constant}} 25b77f41e66f736e9e67a9d39c47c747804b22c6b9Chris Lattner}; 26b77f41e66f736e9e67a9d39c47c747804b22c6b9Chris Lattner 27d80f786689d608e5c22d6e1045884de7aff76c40Chris Lattner// PR4499 28d80f786689d608e5c22d6e1045884de7aff76c40Chris Lattnerint m0 = '0'; 29d80f786689d608e5c22d6e1045884de7aff76c40Chris Lattnerint m1 = '\\\''; // expected-warning {{multi-character character constant}} 30d80f786689d608e5c22d6e1045884de7aff76c40Chris Lattnerint m2 = '\\\\'; // expected-warning {{multi-character character constant}} 31d80f786689d608e5c22d6e1045884de7aff76c40Chris Lattnerint m3 = '\\\ 32d80f786689d608e5c22d6e1045884de7aff76c40Chris Lattner'; 33d80f786689d608e5c22d6e1045884de7aff76c40Chris Lattner 34b77f41e66f736e9e67a9d39c47c747804b22c6b9Chris Lattner 35e8fa06e07363b6d5e6c371bbd454d51bab78d01dChris Lattner#pragma clang diagnostic ignored "-Wmultichar" 36b77f41e66f736e9e67a9d39c47c747804b22c6b9Chris Lattner 37091f23f1d6d4bcffd6641cda72a6831e08c02ea7John McCallint d = 'df'; // no warning. 38091f23f1d6d4bcffd6641cda72a6831e08c02ea7John McCallint e = 'abcd'; // still warn: expected-warning {{multi-character character constant}} 39e3ad881e4e9620e941dabd4e78dacdb028b85682Chris Lattner 40e8fa06e07363b6d5e6c371bbd454d51bab78d01dChris Lattner#pragma clang diagnostic ignored "-Wfour-char-constants" 41e3ad881e4e9620e941dabd4e78dacdb028b85682Chris Lattner 42091f23f1d6d4bcffd6641cda72a6831e08c02ea7John McCallint f = 'abcd'; // ignored. 4394c939dc1d4958b62ea5a89294dd8b2905f3191fJohn McCall 4494c939dc1d4958b62ea5a89294dd8b2905f3191fJohn McCall// rdar://problem/6974641 4594c939dc1d4958b62ea5a89294dd8b2905f3191fJohn McCallfloat t0[] = { 4694c939dc1d4958b62ea5a89294dd8b2905f3191fJohn McCall 1.9e20f, 4794c939dc1d4958b62ea5a89294dd8b2905f3191fJohn McCall 1.9e-20f, 482a0d7574acaa3a8d516e9ae4b720755460ebe8a8John McCall 1.9e50f, // expected-warning {{too large}} 492a0d7574acaa3a8d516e9ae4b720755460ebe8a8John McCall 1.9e-50f, // expected-warning {{too small}} 5094c939dc1d4958b62ea5a89294dd8b2905f3191fJohn McCall -1.9e20f, 5194c939dc1d4958b62ea5a89294dd8b2905f3191fJohn McCall -1.9e-20f, 522a0d7574acaa3a8d516e9ae4b720755460ebe8a8John McCall -1.9e50f, // expected-warning {{too large}} 532a0d7574acaa3a8d516e9ae4b720755460ebe8a8John McCall -1.9e-50f // expected-warning {{too small}} 5494c939dc1d4958b62ea5a89294dd8b2905f3191fJohn McCall}; 5594c939dc1d4958b62ea5a89294dd8b2905f3191fJohn McCalldouble t1[] = { 5694c939dc1d4958b62ea5a89294dd8b2905f3191fJohn McCall 1.9e50, 5794c939dc1d4958b62ea5a89294dd8b2905f3191fJohn McCall 1.9e-50, 582a0d7574acaa3a8d516e9ae4b720755460ebe8a8John McCall 1.9e500, // expected-warning {{too large}} 592a0d7574acaa3a8d516e9ae4b720755460ebe8a8John McCall 1.9e-500, // expected-warning {{too small}} 6094c939dc1d4958b62ea5a89294dd8b2905f3191fJohn McCall -1.9e50, 6194c939dc1d4958b62ea5a89294dd8b2905f3191fJohn McCall -1.9e-50, 622a0d7574acaa3a8d516e9ae4b720755460ebe8a8John McCall -1.9e500, // expected-warning {{too large}} 632a0d7574acaa3a8d516e9ae4b720755460ebe8a8John McCall -1.9e-500 // expected-warning {{too small}} 6494c939dc1d4958b62ea5a89294dd8b2905f3191fJohn McCall}; 65295a637416d4bddf5b3d766d9f630a0028596176Eli Friedman 66295a637416d4bddf5b3d766d9f630a0028596176Eli Friedman// PR7888 67295a637416d4bddf5b3d766d9f630a0028596176Eli Friedmandouble g = 1e100000000; // expected-warning {{too large}} 680473cd52eac6f1e831777ed899be3ea4509c7b24Craig Topper 697748cbc97ff9c6c3940549d30965a10b47a45ee8Seth Cantrellchar h = '\u1234'; // expected-error {{character too large for enclosing character literal type}} 70