From eda5fa7b7e7bb60c31a39ac8e9de1ddf30d67724 Mon Sep 17 00:00:00 2001 From: Richard Stallman Date: Sat, 17 Oct 1992 07:22:43 +0000 Subject: [PATCH] (cplusplus_comments): New var. (main): Set it according to options. (rescan, handle_directive, skip_if_group, validate_else): (skip_to_end_of_comment, macarg1, discard_comments): Use cplusplus_comments to enable C++ comment syntax. From-SVN: r2498 --- gcc/cccp.c | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/gcc/cccp.c b/gcc/cccp.c index adaec469857..dba4ef8f133 100644 --- a/gcc/cccp.c +++ b/gcc/cccp.c @@ -316,11 +316,14 @@ static void dump_single_macro (); static char *progname; -/* Nonzero means handle C++ comment syntax and use - extra default include directories for C++. */ +/* Nonzero means use extra default include directories for C++. */ static int cplusplus; +/* Nonzero means handle cplusplus style comments */ + +static int cplusplus_comments; + /* Nonzero means handle #import, for objective C. */ static int objc; @@ -1003,6 +1006,7 @@ main (argc, argv) dump_macros = dump_none; no_output = 0; cplusplus = 0; + cplusplus_comments = 0; bzero (pend_files, argc * sizeof (char *)); bzero (pend_defs, argc * sizeof (char *)); @@ -1103,13 +1107,13 @@ main (argc, argv) case 'l': if (! strcmp (argv[i], "-lang-c")) - cplusplus = 0, objc = 0; + cplusplus = 0, cplusplus_comments = 0, objc = 0; if (! strcmp (argv[i], "-lang-c++")) - cplusplus = 1, objc = 0; + cplusplus = 1, cplusplus_comments = 1, objc = 0; if (! strcmp (argv[i], "-lang-objc")) - objc = 1, cplusplus = 0; + objc = 1, cplusplus = 0, cplusplus_comments = 1; if (! strcmp (argv[i], "-lang-objc++")) - objc = 1, cplusplus = 1; + objc = 1, cplusplus = 1, cplusplus_comments = 1; if (! strcmp (argv[i], "-lang-asm")) lang_asm = 1; if (! strcmp (argv[i], "-lint")) @@ -1117,7 +1121,7 @@ main (argc, argv) break; case '+': - cplusplus = 1; + cplusplus = 1, cplusplus_comments = 1; break; case 'w': @@ -2287,7 +2291,7 @@ do { ip = &instack[indepth]; \ bp++; bp += 2; } - else if ((cplusplus || objc) && *bp == '/' && bp[1] == '/') { + else if (cplusplus_comments && *bp == '/' && bp[1] == '/') { bp += 2; while (*bp++ != '\n') ; } @@ -2419,7 +2423,7 @@ do { ip = &instack[indepth]; \ newline_fix (ibp); if (*ibp != '*' - && !((cplusplus || objc) && *ibp == '/')) + && !(cplusplus_comments && *ibp == '/')) goto randomchar; if (ip->macro != 0) goto randomchar; @@ -3220,7 +3224,7 @@ handle_directive (ip, op) if (*bp == '\\' && bp[1] == '\n') newline_fix (bp); if (*bp == '*' - || ((cplusplus || objc) && *bp == '/')) { + || (cplusplus_comments && *bp == '/')) { U_CHAR *obp = bp - 1; ip->bufp = bp + 1; skip_to_end_of_comment (ip, &ip->lineno, 0); @@ -3356,7 +3360,7 @@ handle_directive (ip, op) case '/': if (*xp == '*' - || ((cplusplus || objc) && *xp == '/')) { + || (cplusplus_comments && *xp == '/')) { ip->bufp = xp + 1; /* If we already copied the command through, already_output != 0 prevents outputting comment now. */ @@ -6210,7 +6214,7 @@ skip_if_group (ip, any) if (*bp == '\\' && bp[1] == '\n') newline_fix (bp); if (*bp == '*' - || ((cplusplus || objc) && *bp == '/')) { + || (cplusplus_comments && *bp == '/')) { ip->bufp = ++bp; bp = skip_to_end_of_comment (ip, &ip->lineno, 0); } @@ -6252,7 +6256,7 @@ skip_if_group (ip, any) while (!(*bp == '*' && bp[1] == '/')) bp++; bp += 2; - } else if ((cplusplus || objc) && *bp == '/' && bp[1] == '/') { + } else if (cplusplus_comments && *bp == '/' && bp[1] == '/') { bp += 2; while (*bp++ != '\n') ; } @@ -6279,7 +6283,7 @@ skip_if_group (ip, any) bp++; } bp += 2; - } else if ((cplusplus || objc) && *bp == '/' && bp[1] == '/') { + } else if (cplusplus_comments && *bp == '/' && bp[1] == '/') { bp += 2; while (*bp++ != '\n') ; } @@ -6541,7 +6545,7 @@ validate_else (p) p++; } } - else if ((cplusplus || objc) && p[1] == '/') { + else if (cplusplus_comments && p[1] == '/') { p += 2; while (*p && *p++ != '\n') ; } @@ -6579,7 +6583,7 @@ skip_to_end_of_comment (ip, line_counter, nowarn) *op->bufp++ = '/'; *op->bufp++ = '*'; } - if ((cplusplus || objc) && bp[-1] == '/') { + if (cplusplus_comments && bp[-1] == '/') { if (output) { while (bp < limit) if ((*op->bufp++ = *bp++) == '\n') { @@ -7371,7 +7375,7 @@ macarg1 (start, limit, depthptr, newlines, comments, rest_args) case '/': if (bp[1] == '\\' && bp[2] == '\n') newline_fix (bp + 1); - if ((cplusplus || objc) && bp[1] == '/') { + if (cplusplus_comments && bp[1] == '/') { *comments = 1; bp += 2; while (bp < limit && *bp++ != '\n') ; @@ -7482,7 +7486,7 @@ discard_comments (start, length, newlines) if (*ibp == '\\' && ibp[1] == '\n') newline_fix (ibp); /* Delete any comment. */ - if ((cplusplus || objc) && ibp[0] == '/') { + if (cplusplus_comments && ibp[0] == '/') { obp--; ibp++; while (ibp < limit && *ibp++ != '\n') ;