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