From: Neil Booth Date: Mon, 27 Nov 2000 19:08:36 +0000 (+0000) Subject: cppinit.c (cpp_reader_init): Remove handling of warn_paste command line options. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6a6b162822130013ab558c9bb4dda88874ee48f1;p=gcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 15b16a28d36..904bc6be129 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2000-11-27 Neil Booth + + * 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 * tradcpp.c (enum pending_dir_t, struct pending_dir): New. diff --git a/gcc/cppinit.c b/gcc/cppinit.c index e0b7c4e28ad..daa8a87840d 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 18ad1cd29b2..b75e9ac19aa 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 af520ef036e..f9291bcdc40 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;