blob: d91057257dfbd4d425d39b8b2562e536ea2e4ee2 [file] [log] [blame]
Daniel Dunbara5728872009-12-15 20:14:24 +00001/* RUN: %clang_cc1 -std=c90 -fsyntax-only %s -verify -pedantic-errors
Chris Lattner806c3b92008-07-25 18:42:46 +00002 */
Chris Lattner921e9ff2007-11-14 16:14:50 +00003
4enum { cast_hex = (long) (
Chris Lattner806c3b92008-07-25 18:42:46 +00005 0x0p-1 /* expected-error {{hexadecimal floating constants are a C99 feature}} */
Chris Lattner921e9ff2007-11-14 16:14:50 +00006 ) };
Chris Lattner8402c732009-01-16 22:39:25 +00007
8/* PR2477 */
9int test1(int a,int b) {return a//* This is a divide followed by block comment in c89 mode */
10b;}
11
12// comment accepted as extension /* expected-error {{// comments are not allowed in this language}}
13
Douglas Gregor427c4922010-07-20 14:33:20 +000014void test2() {
15 const char * str =
16 "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds" // expected-error{{string literal of length 845 exceeds maximum length 509 that C90 compilers are required to support}}
17 "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds"
18 "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds"
19 "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds"
20 "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds"
21 "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds"
22 "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds"
23 "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds"
24 "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds"
25 "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds"
26 "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds"
27 "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds"
28 "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds";
29}
Nico Webera0f15b02010-10-06 04:57:26 +000030
31void test3() {
32 (void)L"\u1234"; // expected-error {{unicode escape sequences are only valid in C99 or C++}}
Nico Weber59705ae2010-10-09 00:27:47 +000033 (void)L'\u1234'; // expected-error {{unicode escape sequences are only valid in C99 or C++}}
Nico Webera0f15b02010-10-06 04:57:26 +000034}