ORCA-C/Tests/Conformance/C2.6.0.4.CC
Stephen Heumann 91d33b586d Fix various C99+ conformance issues and bugs in test cases.
The main changes made to most tests are:

*Declarations always include explicit types, not relying on implicit int. The declaration of main in most test programs is changed to be "int main (void) {...}", adding an explicit return type and a prototype. (There are still some non-prototyped functions, though.)

*Functions are always declared before use, either by including a header or by providing a declaration for the specific function. The latter approach is usually used for printf, to avoid requiring ORCA/C to process stdio.h when compiling every test case (which might make test runs noticeably slower).

*Make all return statements in non-void functions (e.g. main) return a value.

*Avoid some instances of undefined behavior and type errors in printf and scanf calls.

Several miscellaneous bugs are also fixed.

There are still a couple test cases that intentionally rely on the C89 behavior, to ensure it still works.
2022-10-17 20:17:24 -05:00

48 lines
1.1 KiB
C++

/* Conformance Test 2.6.0.4: Ensure reserved words within strings are ignored */
int printf(const char *, ...);
int main (void)
{
char s0 [] = "asm";
char s1 [] = "auto";
char s2 [] = "break";
char s3 [] = "case";
char s4 [] = "char";
char s5 [] = "continue";
char s6 [] = "default";
char s7 [] = "do";
char s8 [] = "double";
char s9 [] = "else";
char s10[] = "enum";
char s11[] = "extern";
char s12[] = "float";
char s13[] = "for";
char s14[] = "goto";
char s15[] = "if";
char s16[] = "int";
char s17[] = "long";
char s18[] = "register";
char s19[] = "return";
char s20[] = "short";
char s21[] = "sizeof";
char s22[] = "static";
char s23[] = "struct";
char s24[] = "switch";
char s25[] = "typedef";
char s26[] = "union";
char s27[] = "unsigned";
char s28[] = "void";
char s29[] = "while";
char s30[] = "const";
char s31[] = "signed";
char s32[] = "volatile";
char s33[] = "comp";
char s34[] = "extended";
char s35[] = "inline";
char s36[] = "pascal";
char s37[] = "segment";
printf ("Passed Conformance Test 2.6.0.4\n");
}