(c89): New decl.

(main): Set it to 1 if -lang-c89.

From-SVN: r13747
This commit is contained in:
Richard Kenner 1997-03-19 16:58:28 -05:00
parent 21c24d8861
commit b2feb130ca

View File

@ -464,6 +464,10 @@ static int warnings_are_errors;
int traditional; int traditional;
/* Nonzero for the 1989 C Standard, including corrigenda and amendments. */
int c89;
/* Nonzero causes output not to be done, /* Nonzero causes output not to be done,
but directives such as #define that have side effects but directives such as #define that have side effects
are still obeyed. */ are still obeyed. */
@ -1502,15 +1506,15 @@ main (argc, argv)
case 'l': case 'l':
if (! strcmp (argv[i], "-lang-c")) if (! strcmp (argv[i], "-lang-c"))
cplusplus = 0, cplusplus_comments = 1, objc = 0; cplusplus = 0, cplusplus_comments = 1, c89 = 0, objc = 0;
if (! strcmp (argv[i], "-lang-c89")) if (! strcmp (argv[i], "-lang-c89"))
cplusplus = 0, cplusplus_comments = 0, objc = 0; cplusplus = 0, cplusplus_comments = 0, c89 = 1, objc = 0;
if (! strcmp (argv[i], "-lang-c++")) if (! strcmp (argv[i], "-lang-c++"))
cplusplus = 1, cplusplus_comments = 1, objc = 0; cplusplus = 1, cplusplus_comments = 1, c89 = 0, objc = 0;
if (! strcmp (argv[i], "-lang-objc")) if (! strcmp (argv[i], "-lang-objc"))
objc = 1, cplusplus = 0, cplusplus_comments = 1; cplusplus = 0, cplusplus_comments = 1, c89 = 0, objc = 1;
if (! strcmp (argv[i], "-lang-objc++")) if (! strcmp (argv[i], "-lang-objc++"))
objc = 1, cplusplus = 1, cplusplus_comments = 1; cplusplus = 1, cplusplus_comments = 1, c89 = 0, objc = 1;
if (! strcmp (argv[i], "-lang-asm")) if (! strcmp (argv[i], "-lang-asm"))
lang_asm = 1; lang_asm = 1;
if (! strcmp (argv[i], "-lint")) if (! strcmp (argv[i], "-lint"))
@ -3061,16 +3065,17 @@ do { ip = &instack[indepth]; \
} }
*obp++ = c; *obp++ = c;
/* A sign can be part of a preprocessing number /* A sign can be part of a preprocessing number
if it follows an e. */ if it follows an `e' or `p'. */
if (c == 'e' || c == 'E') { if (c == 'e' || c == 'E' || c == 'p' || c == 'P') {
while (ibp[0] == '\\' && ibp[1] == '\n') { while (ibp[0] == '\\' && ibp[1] == '\n') {
++ip->lineno; ++ip->lineno;
ibp += 2; ibp += 2;
} }
if (*ibp == '+' || *ibp == '-') { if (*ibp == '+' || *ibp == '-') {
*obp++ = *ibp++; *obp++ = *ibp++;
/* But traditional C does not let the token go past the sign. */ /* But traditional C does not let the token go past the sign,
if (traditional) and C89 does not allow `p'. */
if (traditional || (c89 && (c == 'p' || c == 'P')))
break; break;
} }
} }