aboutsummaryrefslogtreecommitdiff
path: root/gcc/cccp.c
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-10-17 07:22:43 +0000
committerRichard Stallman <rms@gnu.org>1992-10-17 07:22:43 +0000
commiteda5fa7b7e7bb60c31a39ac8e9de1ddf30d67724 (patch)
tree35155ce97980649cd20ee17599974a873d53b0d0 /gcc/cccp.c
parent8328559dece1b0a7a484d39ddfa9f901172915f6 (diff)
downloadgcc-eda5fa7b7e7bb60c31a39ac8e9de1ddf30d67724.zip
gcc-eda5fa7b7e7bb60c31a39ac8e9de1ddf30d67724.tar.gz
gcc-eda5fa7b7e7bb60c31a39ac8e9de1ddf30d67724.tar.bz2
(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
Diffstat (limited to 'gcc/cccp.c')
-rw-r--r--gcc/cccp.c40
1 files changed, 22 insertions, 18 deletions
diff --git a/gcc/cccp.c b/gcc/cccp.c
index adaec46..dba4ef8 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') ;