aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorNeil Booth <neilb@earthling.net>2000-11-27 19:08:36 +0000
committerNeil Booth <neil@gcc.gnu.org>2000-11-27 19:08:36 +0000
commit6a6b162822130013ab558c9bb4dda88874ee48f1 (patch)
tree376dab862876e9b09630f6d229b81ba1eeb2fa61 /gcc
parentfb6a7b08a80113867aaeaa3d4dc6bcade0a57699 (diff)
downloadgcc-6a6b162822130013ab558c9bb4dda88874ee48f1.zip
gcc-6a6b162822130013ab558c9bb4dda88874ee48f1.tar.gz
gcc-6a6b162822130013ab558c9bb4dda88874ee48f1.tar.bz2
cppinit.c (cpp_reader_init): Remove handling of warn_paste command line options.
* cppinit.c (cpp_reader_init): Remove handling of warn_paste command line options. (cpp_handle_option): Similarly. * cpplib.h (struct cpp_options): Remove warn_paste. * cppmacro.c (paste_tokens): Apart from assembler, make unpasteable token warning mandatory. From-SVN: r37804
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/cppinit.c9
-rw-r--r--gcc/cpplib.h4
-rw-r--r--gcc/cppmacro.c13
4 files changed, 17 insertions, 18 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 15b16a2..904bc6b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,14 @@
2000-11-27 Neil Booth <neilb@earthling.net>
+ * cppinit.c (cpp_reader_init): Remove handling of warn_paste
+ command line options.
+ (cpp_handle_option): Similarly.
+ * cpplib.h (struct cpp_options): Remove warn_paste.
+ * cppmacro.c (paste_tokens): Apart from assembler, make
+ unpasteable token warning mandatory.
+
+2000-11-27 Neil Booth <neilb@earthling.net>
+
* tradcpp.c (enum pending_dir_t, struct pending_dir): New.
(main): Allocate a pending directive set of these. Use it.
Merge handling of -D and -U. Update handling of pending
diff --git a/gcc/cppinit.c b/gcc/cppinit.c
index e0b7c4e..daa8a87 100644
--- a/gcc/cppinit.c
+++ b/gcc/cppinit.c
@@ -536,7 +536,6 @@ cpp_reader_init (pfile, lang)
}
CPP_OPTION (pfile, warn_import) = 1;
- CPP_OPTION (pfile, warn_paste) = 1;
CPP_OPTION (pfile, discard_comments) = 1;
CPP_OPTION (pfile, show_column) = 1;
CPP_OPTION (pfile, tabstop) = 8;
@@ -972,10 +971,6 @@ cpp_start_read (pfile, fname)
if (CPP_OPTION (pfile, cplusplus))
CPP_OPTION (pfile, warn_traditional) = 0;
- /* Do not warn about invalid token pasting if -lang-asm. */
- if (CPP_OPTION (pfile, lang) == CLK_ASM)
- CPP_OPTION (pfile, warn_paste) = 0;
-
/* Set this if it hasn't been set already. */
if (CPP_OPTION (pfile, user_label_prefix) == NULL)
CPP_OPTION (pfile, user_label_prefix) = USER_LABEL_PREFIX;
@@ -1690,8 +1685,6 @@ cpp_handle_option (pfile, argc, argv)
CPP_OPTION (pfile, warn_undef) = 1;
else if (!strcmp (argv[i], "-Wimport"))
CPP_OPTION (pfile, warn_import) = 1;
- else if (!strcmp (argv[i], "-Wpaste"))
- CPP_OPTION (pfile, warn_paste) = 1;
else if (!strcmp (argv[i], "-Werror"))
CPP_OPTION (pfile, warnings_are_errors) = 1;
else if (!strcmp (argv[i], "-Wsystem-headers"))
@@ -1708,8 +1701,6 @@ cpp_handle_option (pfile, argc, argv)
CPP_OPTION (pfile, warn_undef) = 0;
else if (!strcmp (argv[i], "-Wno-import"))
CPP_OPTION (pfile, warn_import) = 0;
- else if (!strcmp (argv[i], "-Wno-paste"))
- CPP_OPTION (pfile, warn_paste) = 0;
else if (!strcmp (argv[i], "-Wno-error"))
CPP_OPTION (pfile, warnings_are_errors) = 0;
else if (!strcmp (argv[i], "-Wno-system-headers"))
diff --git a/gcc/cpplib.h b/gcc/cpplib.h
index 18ad1cd..b75e9ac 100644
--- a/gcc/cpplib.h
+++ b/gcc/cpplib.h
@@ -367,10 +367,6 @@ struct cpp_options
traditional C. */
unsigned char warn_traditional;
- /* Nonzero means warn if ## is applied to two tokens that cannot be
- pasted together. */
- unsigned char warn_paste;
-
/* Nonzero means turn warnings into errors. */
unsigned char warnings_are_errors;
diff --git a/gcc/cppmacro.c b/gcc/cppmacro.c
index af520ef0..f9291bc 100644
--- a/gcc/cppmacro.c
+++ b/gcc/cppmacro.c
@@ -379,17 +379,20 @@ paste_tokens (pfile, lhs, rhs)
if (type == CPP_EOF)
{
- if (CPP_OPTION (pfile, warn_paste))
+ /* Mandatory warning for all apart from assembler. */
+ if (CPP_OPTION (pfile, lang) != CLK_ASM)
cpp_warning (pfile,
"pasting \"%s\" and \"%s\" does not give a valid preprocessing token",
cpp_token_as_text (pfile, lhs),
cpp_token_as_text (pfile, rhs));
/* The standard states that behaviour is undefined. By the
- principle of least surpise, we step back before the RHS, and
- mark it to prevent macro expansion. Tests in the testsuite
- rely on clearing PREV_WHITE here, though you could argue we
- should actually set it. */
+ principle of least surpise, we step back before the RHS, and
+ mark it to prevent macro expansion. Tests in the testsuite
+ rely on clearing PREV_WHITE here, though you could argue we
+ should actually set it. Assembler can have '.' in labels and
+ so requires that we don't insert spaces there. Maybe we should
+ change this to put out a space unless it's assembler. */
rhs->flags &= ~PREV_WHITE;
rhs->flags |= NO_EXPAND;
return 1;