c90.c revision a0f15b0848405ae16d63bd5d78c862a6526b338a
1d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant/* RUN: %clang_cc1 -std=c90 -fsyntax-only %s -verify -pedantic-errors
2d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant */
3d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant
4d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnantenum { cast_hex = (long) (
5b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant      0x0p-1   /* expected-error {{hexadecimal floating constants are a C99 feature}} */
6b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant     ) };
7d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant
8d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant/* PR2477 */
9d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnantint test1(int a,int b) {return a//* This is a divide followed by block comment in c89 mode */
10d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnantb;}
11d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant
12d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant// comment accepted as extension    /* expected-error {{// comments are not allowed in this language}}
13d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant
14d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnantvoid test2() {
15d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant  const char * str =
16d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant    "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds" // expected-error{{string literal of length 845 exceeds maximum length 509 that C90 compilers are required to support}}
17d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant    "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds"
18d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant    "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds"
19d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant    "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds"
20d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant    "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds"
21d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant    "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds"
22d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant    "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds"
23d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant    "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds"
24d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant    "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds"
25d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant    "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds"
26d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant    "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds"
27d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant    "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds"
28d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant    "sdjflksdjf lksdjf skldfjsdkljflksdjf kldsjflkdsj fldks jflsdkjfds";
29d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant}
30d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant
31d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnantvoid test3() {
32d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant  (void)L"\u1234";  // expected-error {{unicode escape sequences are only valid in C99 or C++}}
33d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant}
34d23b464e21648e252d5ae501b2db2e93dc02b1f7Howard Hinnant