Commit 6a6b1628 by Neil Booth Committed by Neil Booth

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
parent fb6a7b08
2000-11-27 Neil Booth <neilb@earthling.net> 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. * tradcpp.c (enum pending_dir_t, struct pending_dir): New.
(main): Allocate a pending directive set of these. Use it. (main): Allocate a pending directive set of these. Use it.
Merge handling of -D and -U. Update handling of pending Merge handling of -D and -U. Update handling of pending
......
...@@ -536,7 +536,6 @@ cpp_reader_init (pfile, lang) ...@@ -536,7 +536,6 @@ cpp_reader_init (pfile, lang)
} }
CPP_OPTION (pfile, warn_import) = 1; CPP_OPTION (pfile, warn_import) = 1;
CPP_OPTION (pfile, warn_paste) = 1;
CPP_OPTION (pfile, discard_comments) = 1; CPP_OPTION (pfile, discard_comments) = 1;
CPP_OPTION (pfile, show_column) = 1; CPP_OPTION (pfile, show_column) = 1;
CPP_OPTION (pfile, tabstop) = 8; CPP_OPTION (pfile, tabstop) = 8;
...@@ -972,10 +971,6 @@ cpp_start_read (pfile, fname) ...@@ -972,10 +971,6 @@ cpp_start_read (pfile, fname)
if (CPP_OPTION (pfile, cplusplus)) if (CPP_OPTION (pfile, cplusplus))
CPP_OPTION (pfile, warn_traditional) = 0; 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. */ /* Set this if it hasn't been set already. */
if (CPP_OPTION (pfile, user_label_prefix) == NULL) if (CPP_OPTION (pfile, user_label_prefix) == NULL)
CPP_OPTION (pfile, user_label_prefix) = USER_LABEL_PREFIX; CPP_OPTION (pfile, user_label_prefix) = USER_LABEL_PREFIX;
...@@ -1690,8 +1685,6 @@ cpp_handle_option (pfile, argc, argv) ...@@ -1690,8 +1685,6 @@ cpp_handle_option (pfile, argc, argv)
CPP_OPTION (pfile, warn_undef) = 1; CPP_OPTION (pfile, warn_undef) = 1;
else if (!strcmp (argv[i], "-Wimport")) else if (!strcmp (argv[i], "-Wimport"))
CPP_OPTION (pfile, warn_import) = 1; CPP_OPTION (pfile, warn_import) = 1;
else if (!strcmp (argv[i], "-Wpaste"))
CPP_OPTION (pfile, warn_paste) = 1;
else if (!strcmp (argv[i], "-Werror")) else if (!strcmp (argv[i], "-Werror"))
CPP_OPTION (pfile, warnings_are_errors) = 1; CPP_OPTION (pfile, warnings_are_errors) = 1;
else if (!strcmp (argv[i], "-Wsystem-headers")) else if (!strcmp (argv[i], "-Wsystem-headers"))
...@@ -1708,8 +1701,6 @@ cpp_handle_option (pfile, argc, argv) ...@@ -1708,8 +1701,6 @@ cpp_handle_option (pfile, argc, argv)
CPP_OPTION (pfile, warn_undef) = 0; CPP_OPTION (pfile, warn_undef) = 0;
else if (!strcmp (argv[i], "-Wno-import")) else if (!strcmp (argv[i], "-Wno-import"))
CPP_OPTION (pfile, warn_import) = 0; 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")) else if (!strcmp (argv[i], "-Wno-error"))
CPP_OPTION (pfile, warnings_are_errors) = 0; CPP_OPTION (pfile, warnings_are_errors) = 0;
else if (!strcmp (argv[i], "-Wno-system-headers")) else if (!strcmp (argv[i], "-Wno-system-headers"))
......
...@@ -367,10 +367,6 @@ struct cpp_options ...@@ -367,10 +367,6 @@ struct cpp_options
traditional C. */ traditional C. */
unsigned char warn_traditional; 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. */ /* Nonzero means turn warnings into errors. */
unsigned char warnings_are_errors; unsigned char warnings_are_errors;
......
...@@ -379,17 +379,20 @@ paste_tokens (pfile, lhs, rhs) ...@@ -379,17 +379,20 @@ paste_tokens (pfile, lhs, rhs)
if (type == CPP_EOF) 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, cpp_warning (pfile,
"pasting \"%s\" and \"%s\" does not give a valid preprocessing token", "pasting \"%s\" and \"%s\" does not give a valid preprocessing token",
cpp_token_as_text (pfile, lhs), cpp_token_as_text (pfile, lhs),
cpp_token_as_text (pfile, rhs)); cpp_token_as_text (pfile, rhs));
/* The standard states that behaviour is undefined. By the /* The standard states that behaviour is undefined. By the
principle of least surpise, we step back before the RHS, and principle of least surpise, we step back before the RHS, and
mark it to prevent macro expansion. Tests in the testsuite mark it to prevent macro expansion. Tests in the testsuite
rely on clearing PREV_WHITE here, though you could argue we rely on clearing PREV_WHITE here, though you could argue we
should actually set it. */ 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 &= ~PREV_WHITE;
rhs->flags |= NO_EXPAND; rhs->flags |= NO_EXPAND;
return 1; return 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment