summaryrefslogtreecommitdiffstats
path: root/gcc/testsuite/g++.dg/cpp
Commit message (Collapse)AuthorAgeFilesLines
* * lib/g++-dg.exp (g++-dg-runtest): Run tests in C++1y mode, too.jason2014-03-073-5/+5
| | | | | | | | | | | | | | * lib/target-supports.exp (check_effective_target_c++11): Now means C++11 and up. (check_effective_target_c++11_only): New. (check_effective_target_c++11_down): New. (check_effective_target_c++1y): New. (check_effective_target_c++1y_only): New. (check_effective_target_c++98_only): Rename from check_effective_target_c++98. * g++.dg/*: Use { target c++11 } instead of -std=c++11. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@208416 138bc75d-0d04-0410-961f-82ee72b054a4
* PR preprocessor/57757jakub2013-07-102-0/+29
| | | | | | | | | | | | * lex.c (cpp_avoid_paste): Avoid pasting CPP_{,W,UTF8}STRING or CPP_STRING{16,32} with CPP_NAME or SPELL_LITERAL token that starts if a-zA-Z_. * g++.dg/cpp/paste1.C: New test. * g++.dg/cpp/paste2.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200875 138bc75d-0d04-0410-961f-82ee72b054a4
* N3472 binary constantsjakub2013-04-281-3/+3
| | | | | | | | | | | | | | | | | | | * include/cpplib.h (struct cpp_options): Fix a typo in user_literals field comment. Add binary_constants field. * init.c (struct lang_flags): Add binary_constants field. (lang_defaults): Add bin_cst column to the table. (cpp_set_lang): Initialize CPP_OPTION (pfile, binary_constants). * expr.c (cpp_classify_number): Talk about C++11 instead of C++0x in diagnostics. Accept binary constants if CPP_OPTION (pfile, binary_constants) even when pedantic. Adjust pedwarn message. * g++.dg/cpp/limits.C: Adjust warning wording. * g++.dg/system-binary-constants-1.C: Likewise. * g++.dg/cpp1y/system-binary-constants-1.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198380 138bc75d-0d04-0410-961f-82ee72b054a4
* PR preprocessor/53463 - Fix system header detection for built-in macro tokensdodji2012-06-041-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The location for a built-in macro token is BUILTIN_LOCATION. When we see that location value, we cannot know if that token was used in a system header or not. And that can trigger some unwanted warnings on e.g, the use of __LONG_LONG_MAX__ built-in macro in system headers when we compile with -pedantic, like in the test case accompanying this patch. In that case, I think we ought to step-up to see where the built-in macro has been expanded, until we see a location that is not for a built-in macro. Then we can check if the resulting location is in a system header or not. Now that we step up to the location of first non-built-in-macro token, it appeared that for testsuite/c-c++-common/dfp/convert-int-saturate.c, G++ then fails to emit the warning in: volatile unsigned int usi; int main () { usi = DEC32_MAX; /* { dg-warning "overflow in implicit constant conversion" } */ ... } Because DEC32_MAX is defined in the system header float.h as a built-in macro: #define DEC32_MAX __DEC32_MAX__ And during the parsing of the assignment expression that should have led to the warning above, input_location is set to the location for the DEC32_MAX, which is actually the location for the built-in __DECL32_MAX_EXP. A possible fix is to use the location of the "=" operator as the default location for assignment expressions. This is what the patch does. I had to adjust a couple of tests to arrange for this. Bootstrapped and tested on x86_64-unknown-linux-gnu against trunk. libcpp/ PR preprocessor/53463 * line-map.c (linemap_location_in_system_header_p): For built-in macro tokens, check the first expansion point location for that is not for a token coming from a built-in macro. gcc/cp/ PR preprocessor/53463 * parser.c (cp_parser_assignment_expression): Use the location for the LHS as the default location for the expression. gcc/testsuite/ PR preprocessor/53463 * g++.dg/cpp/limits.C: New test. * g++.dg/parse/error19.C: Adjust. * g++.dg/warn/Wconversion-real-integer2.C: Likewise. * g++.dg/warn/pr35635.C: Likewise. * g++.old-deja/g++.pt/assign1.C: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188203 138bc75d-0d04-0410-961f-82ee72b054a4
* PR preprocessor/7263 - Avoid pedantic warnings on system headers macro tokensdodji2012-05-162-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that we track token locations accross macro expansions, it would be cool to be able to fix PR preprocessor/7263 for real. That is, consider this example where we have a system header named header.h like this: #define _Complex __complex__ #define _Complex_I 1.0iF and then a normal C file like this: #include "header.h" static _Complex float c = _Complex_I; If we compile the file with -pedantic, the usages of _Complex or _Complex_I should not trigger any warning, even though __complex__ and the complex literal are extensions to the standard C. They shouldn't trigger any warning because _Complex and _Complex_I are defined in a system header (and expanded in normal user code). To be able to handle this, we must address two separate concerns. First, warnings about non-standard usage of numerical literals are emitted directly from within libcpp. So we must teach libcpp's parser for numerical literals to use virtual locations, instead of the spelling location it uses today. Once we have that, as the diagnostics machinery already knows how to avoid emitting errors happening on tokens that come from system headers, we win. Second, there is the issue of tracking locations for declaration specifiers, like the "_Complex" in the declaration: static _Complex float c; For that, we need to arrange for each possible declaration specifier to have its own location, because otherwise, we'd warn on e.g, on: _Complex float c; but not on: static _Complex float c; So this patch addresses the two concerns above. It's actually a follow-up on an earlier patch[1] I wrote as part of my initial work on virtual locations. We then agreed[2] that the second concern was important to address before the patch could get a chance to go in. [1]: http://gcc.gnu.org/ml/gcc-patches/2011-09/msg00957.html [2]: http://gcc.gnu.org/ml/gcc-patches/2011-10/msg00264.html Bootstrapped and tested on x86_64-unknown-linux-gnu against trunk. libcpp/ PR preprocessor/7263 * include/cpplib.h (cpp_classify_number): Take a location parameter. * expr.c (SYNTAX_ERROR_AT, SYNTAX_ERROR2_AT): New diagnostic macros that take a location parameter. (cpp_classify_number): Take a (virtual) location parameter. Use it for diagnostics. Adjust comments. (eval_token): Take a location parameter. Pass it to cpp_classify_number and to diagnostic routines. (_cpp_parse_expr): Use virtual locations of tokens when parsing expressions. Pass a virtual location to eval_token and to diagnostic routines. gcc/c-family/ PR preprocessor/7263 * c-lex.c (c_lex_with_flags): Pass a virtual location to the call to cpp_classify_number. For diagnostics, use the precise location instead of the global input_location. gcc/ PR preprocessor/7263 * c-tree.h (enum c_declspec_word): Declare new enum. (struct c_declspecs::locations): New member. (declspecs_add_qual, declspecs_add_scspec) (declspecs_add_addrspace, declspecs_add_alignas): Take a new location parameter. * c-decl.c (build_null_declspecs): Initialize the new struct c_declspecs::locations member. (declspecs_add_addrspace): Take a location parameter for the address space. Store it onto declaration specifiers. (declspecs_add_qual): Likewise, take a location parameter for the qualifier. (declspecs_add_type): Likewise, take a location parameter for the type specifier. (declspecs_add_scspec): Likewise, take a location parameter for the storage class specifier. (declspecs_add_attrs): Likewise, take a location parameter for the first attribute. (declspecs_add_alignas): Likewise, take a location parameter for the alignas token. (finish_declspecs): For diagnostics, use the location of the relevant declspec, instead of the global input_location. * c-parser.c (c_parser_parameter_declaration): Pass the precise virtual location of the declspec to the declspecs-setters. (c_parser_declspecs): Likewise. Avoid calling c_parser_peek_token repeatedly. gcc/cp/ PR preprocessor/7263 * cp-tree.h (enum cp_decl_spec): Add new enumerators to cover all the possible declarator specifiers so far. (struct cp_decl_specifier_seq::locations): Declare new member. (cp_decl_specifier_seq::{specs, type_location}): Remove. (decl_spec_seq_has_spec_p): Declare new function. * parser.c (cp_parser_check_decl_spec): Remove. (set_and_check_decl_spec_loc): Define new static function. (decl_spec_seq_has_spec_p): Define new public function. (cp_parser_decl_specifier_seq, cp_parser_function_specifier_opt) (cp_parser_type_specifier, cp_parser_simple_type_specifier) (cp_parser_set_storage_class, cp_parser_set_decl_spec_type) (cp_parser_alias_declaration): Set the locations for each declspec, using set_and_check_decl_spec_loc. (cp_parser_explicit_instantiation, cp_parser_init_declarator) (cp_parser_member_declaration, cp_parser_init_declarator): Use the new declspec location for specifiers. Use the new decl_spec_seq_has_spec_p. (cp_parser_type_specifier_seq): Use the new set_and_check_decl_spec_loc. Stop using cp_parser_check_decl_spec. Use the new decl_spec_seq_has_spec_p. (, cp_parser_init_declarator): Use the new set_and_check_decl_spec_loc. (cp_parser_single_declaration, cp_parser_friend_p) (cp_parser_objc_class_ivars, cp_parser_objc_struct_declaration): Use the new decl_spec_seq_has_spec_p. * decl.c (check_tag_decl): Use new decl_spec_seq_has_spec_p. Use the more precise ds_redefined_builtin_type_spec location for diagnostics about re-declaring C++ built-in types. (start_decl, grokvardecl, grokdeclarator): Use the new decl_spec_seq_has_spec_p. gcc/testsuite/ PR preprocessor/7263 * gcc.dg/binary-constants-2.c: Run without tracking locations accross macro expansion. * gcc.dg/binary-constants-3.c: Likewise. * gcc.dg/cpp/sysmac2.c: Likewise. * testsuite/gcc.dg/nofixed-point-2.c: Adjust for more precise location. * gcc.dg/cpp/syshdr3.c: New test. * gcc.dg/cpp/syshdr3.h: New header for the new test above. * gcc.dg/system-binary-constants-1.c: New test. * gcc.dg/system-binary-constants-1.h: New header for the new test above. * g++.dg/cpp/syshdr3.C: New test. * g++.dg/cpp/syshdr3.h: New header the new test above. * g++.dg/system-binary-constants-1.C: New test. * g++.dg/system-binary-constants-1.h: New header the new test above. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187587 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,jsm282010-11-211-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | HANDLE_PRAGMA_PACK_PUSH_POP): Remove. (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA. * doc/tm.texi: Regenerate. * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA, HANDLE_PRAGMA_WEAK): Poison. * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define. * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define. * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define. * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define. * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define. (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define. * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define. * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define. (HANDLE_PRAGMA_WEAK): Don't undefine. * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define. * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define. * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define. (HANDLE_PRAGMA_WEAK): Don't undefine. * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define. (HANDLE_PRAGMA_PACK): Don't undefine. * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine. * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define. * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define. (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define. * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define. (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define. * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define. * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define. * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. c-family: * c-pragma.c: Remove conditionals on HANDLE_PRAGMA_PACK, HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_PRAGMA_WEAK and HANDLE_PRAGMA_VISIBILITY. * c-pragma.h (HANDLE_PRAGMA_WEAK, HANDLE_PRAGMA_PACK, HANDLE_PRAGMA_VISIBILITY): Don't define. (HANDLE_SYSV_PRAGMA, HANDLE_PRAGMA_PACK_PUSH_POP): Don't test. cp: * name-lookup.c (handle_namespace_attrs): Don't check HANDLE_PRAGMA_VISIBILITY. * parser.c (cp_parser_namespace_definition): Don't check HANDLE_PRAGMA_VISIBILITY. testsuite: * g++.dg/cpp/_Pragma1.C: Test for all non-Solaris targets. * gcc.dg/cpp/_Pragma6.c: Test for all non-Solaris targets. * gcc.dg/pack-test-1.c: Test for all non-default_packed targets. * gcc.dg/pack-test-2.c: Test for all targets. * gcc.dg/pragma-align.c: Test for all targets. * gcc.dg/pragma-pack-4.c: Do not skip for AVR. * gcc.dg/ucnid-10.c: Test for all targets. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166992 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc:ro2010-11-121-1/+1
| | | | | | | | | | | | | | | | * config/mips/iris6.h [!IRIX_USING_GNU_LD] (SUPPORTS_INIT_PRIORITY): Define. gcc/testsuite: * lib/prune.exp (prune_gcc_output): Ignore IRIX 6 linker multiline warning. * g++.dg/abi/packed1.C (struct INNER): Ignore warning on mips-sgi-irix*. * g++.dg/cpp/_Pragma1.C: Skip on mips-sgi-irix*. * gcc.target/mips/call-3.c: Add dg-require-visibility. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166648 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-04-13 Manuel López-Ibáñez <manu@gcc.gnu.org>manu2010-04-135-50/+0
| | | | | | | | | | | | | | | | | | | | | | | * gcc.dg/cpp/cpp.exp: Test also c-c++-common/cpp. * g++.dg/dg.exp: Likewise. * gcc.dg/cpp/warning-directive-1.c: Move to ... * c-c++-common/cpp/warning-directive-1.c: ... here. * gcc.dg/cpp/warning-directive-2.c: Move to ... * c-c++-common/cpp/warning-directive-2.c: ... here. * gcc.dg/cpp/warning-directive-3.c: Move to ... * c-c++-common/cpp/warning-directive-3.c: ... here. * gcc.dg/cpp/warning-directive-4.c: Move to ... * c-c++-common/cpp/warning-directive-4.c: ... here. * g++.dg/cpp/warning-directive-1.C: Delete. * g++.dg/cpp/warning-directive-2.C: Delete. * g++.dg/cpp/warning-directive-3.C: Delete. * g++.dg/cpp/warning-directive-4.C: Delete. * gcc.dg/cpp/normalised-3.c: Delete. * g++.dg/cpp/normalised-1.C: Rename as ... * c-c++-common/cpp/normalised-3.c: ... this. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158275 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>manu2010-04-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR 42965 * diagnostic.c (diagnostic_initialize): Initialize some_warnings_are_errors. (diagnostic_finish): New. (diagnostic_action_after_output): Call it before exiting. (diagnostic_report_diagnostic): Do not print message here. Set some_warnings_are_errors. * diagnostic.h (diagnostic_context): Delete issue_warnings_are_errors_message. Add some_warnings_are_errors. (diagnostic_finish): Declare. * toplev.c (toplev_main): Call it before exit. testsuite/ * gcc.dg/Werror-6.c: Adjust. * gcc.dg/Werror-implicit-function-declaration.c: Likewise. * gcc.dg/Werror-4.c: Likewise. * gcc.dg/Wdeclaration-after-statement-3.c: Likewise. * gcc.dg/Wswitch-enum-error.c: Likewise. * gcc.dg/Wpointer-arith.c: Likewise. * gcc.dg/Wfatal.c: Likewise. * gcc.dg/Wswitch-error.c: Likewise. * g++.dg/warn/unused-result1-Werror.c: Likewise. * gcc.dg/Werror-9.c: Delete. Duplicate of Werror-4.c. * gcc.dg/cpp/warn-undef-2.c: Likewise. * gcc.dg/cpp/warn-traditional-2.c: Likewise. * gcc.dg/cpp/warn-comments-2.c: Likewise. * gcc.dg/cpp/warn-variadic-2.c: Likewise. * gcc.dg/cpp/warning-directive-2.c: Likewise. * gcc.dg/cpp/warn-long-long-2.c: Likewise. * gcc.dg/cpp/warn-deprecated-2.c: Likewise. * gcc.dg/cpp/warn-multichar-2.c: Likewise. * gcc.dg/cpp/warn-normalized-3.c: Likewise. * gcc.dg/cpp/warn-cxx-compat-2.c: Likewise. * gcc.dg/cpp/warn-trigraphs-3.c: Likewise. * gcc.dg/cpp/warn-unused-macros-2.c: Likewise. * gcc.dg/cpp/warn-trigraphs-4.c: Likewise. * gcc.dg/cpp/warn-redefined-2.c: Likewise. * g++.dg/cpp/warning-directive-2.C: Likewise. * gfortran.dg/warning-directive-2.F90: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158168 138bc75d-0d04-0410-961f-82ee72b054a4
* * diagnostic.h (diagnostic_override_option_index): New macro tosimonb2010-04-074-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | set a diagnostic's option_index. * c-tree.h (c_cpp_error): Add warning reason argument. * opts.c (_warning_as_error_callback): New. (register_warning_as_error_callback): Store callback for warnings enabled via enable_warning_as_error. (enable_warning_as_error): Call callback, minor code tidy. * opts.h (register_warning_as_error_callback): Declare. * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in response to -Werror=. (c_common_init_options): Register warning_as_error_callback in opts.c. * common.opt: Add -Wno-cpp option. * c-common.c (struct reason_option_codes_t): Map cpp warning reason codes to gcc option indexes. * (c_option_controlling_cpp_error): New function, lookup the gcc option index for a cpp warning reason code. * (c_cpp_error): Add warning reason argument, call c_option_controlling_cpp_error for diagnostic_override_option_index. * doc/invoke.texi: Document -Wno-cpp. * cpp.c (cb_cpp_error): Add warning reason argument, set a value for diagnostic_override_option_index if CPP_W_WARNING_DIRECTIVE. * directives.c (do_diagnostic): Add warning reason argument, call appropriate error reporting function for code. (directive_diagnostics): Call specific warning functions with warning reason where appropriate. (do_error, do_warning, do_pragma_dependency): Add warning reason argument to do_diagnostic calls. * macro.c (_cpp_warn_if_unused_macro, enter_macro_context, _cpp_create_definition): Call specific warning functions with warning reason where appropriate. * Makefile.in: Add new diagnostic functions to gettext translations. * include/cpplib.h (struct cpp_callbacks): Add warning reason code to error callback. (CPP_DL_WARNING, CPP_DL_WARNING_SYSHDR, CPP_DL_PEDWARN, CPP_DL_ERROR, CPP_DL_ICE, CPP_DL_NOTE, CPP_DL_FATAL): Replace macros with enums. (CPP_W_NONE, CPP_W_DEPRECATED, CPP_W_COMMENTS, CPP_W_MISSING_INCLUDE_DIRS, CPP_W_TRIGRAPHS, CPP_W_MULTICHAR, CPP_W_TRADITIONAL, CPP_W_LONG_LONG, CPP_W_ENDIF_LABELS, CPP_W_NUM_SIGN_CHANGE, CPP_W_VARIADIC_MACROS, CPP_W_BUILTIN_MACRO_REDEFINED, CPP_W_DOLLARS, CPP_W_UNDEF, CPP_W_UNUSED_MACROS, CPP_W_CXX_OPERATOR_NAMES, CPP_W_NORMALIZE, CPP_W_INVALID_PCH, CPP_W_WARNING_DIRECTIVE): New enums for cpp warning reason codes. (cpp_warning, cpp_pedwarning, cpp_warning_syshdr, cpp_warning_with_line, cpp_pedwarning_with_line, cpp_warning_with_line_syshdr): New specific error reporting functions. * pch.c (cpp_valid_state): Call specific warning functions with warning reason where appropriate. * errors.c (cpp_diagnostic, cpp_diagnostic_with_line): New central diagnostic handlers. (cpp_warning, cpp_pedwarning, cpp_warning_syshdr, cpp_warning_with_line, cpp_pedwarning_with_line, cpp_warning_with_line_syshdr): New specific error reporting functions. * expr.c (cpp_classify_number, eval_token, num_unary_op): Call specific warning functions with warning reason where appropriate. * lex.c (_cpp_process_line_notes, _cpp_skip_block_comment, warn_about_normalization, lex_identifier_intern, lex_identifier, _cpp_lex_direct): Ditto. * charset.c (_cpp_valid_ucn, convert_hex, convert_escape, narrow_str_to_charconst): Ditto. * gcc.dg/cpp/warn-undef-2.c: New. * gcc.dg/cpp/warn-traditional-2.c: New. * gcc.dg/cpp/warn-comments-2.c: New. * gcc.dg/cpp/warning-directive-1.c: New. * gcc.dg/cpp/warn-long-long.c: New. * gcc.dg/cpp/warn-traditional.c: New. * gcc.dg/cpp/warn-variadic-2.c: New. * gcc.dg/cpp/warn-undef.c: New. * gcc.dg/cpp/warn-normalized-1.c: New. * gcc.dg/cpp/warning-directive-2.c: New. * gcc.dg/cpp/warn-long-long-2.c: New. * gcc.dg/cpp/warn-variadic.c: New. * gcc.dg/cpp/warn-normalized-2.c: New. * gcc.dg/cpp/warning-directive-3.c: New. * gcc.dg/cpp/warn-deprecated-2.c: New. * gcc.dg/cpp/warn-trigraphs-1.c: New. * gcc.dg/cpp/warn-multichar-2.c: New. * gcc.dg/cpp/warn-normalized-3.c: New. * gcc.dg/cpp/warning-directive-4.c: New. * gcc.dg/cpp/warn-unused-macros.c: New. * gcc.dg/cpp/warn-trigraphs-2.c: New. * gcc.dg/cpp/warn-cxx-compat-2.c: New. * gcc.dg/cpp/warn-cxx-compat.c: New. * gcc.dg/cpp/warn-redefined.c: New. * gcc.dg/cpp/warn-trigraphs-3.c: New. * gcc.dg/cpp/warn-unused-macros-2.c: New. * gcc.dg/cpp/warn-deprecated.c: New. * gcc.dg/cpp/warn-trigraphs-4.c: New. * gcc.dg/cpp/warn-redefined-2.c: New. * gcc.dg/cpp/warn-comments.c: New. * gcc.dg/cpp/warn-multichar.c: New. * g++.dg/cpp/warning-directive-1.C: New. * g++.dg/cpp/warning-directive-2.C: New. * g++.dg/cpp/warning-directive-3.C: New. * g++.dg/cpp/warning-directive-4.C: New. * gfortran.dg/warning-directive-1.F90: New. * gfortran.dg/warning-directive-3.F90: New. * gfortran.dg/warning-directive-2.F90: New. * gfortran.dg/warning-directive-4.F90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158079 138bc75d-0d04-0410-961f-82ee72b054a4
* * g++.dg/cpp/_Pragma1.C: Skip on alpha*-dec-osf*.ro2010-04-011-1/+1
| | | | | | | | | | | | | * g++.dg/eh/spbp.C: Likewise. * g++.dg/ext/label13.C (C::C): xfail dg-bogus on alpha*-dec-osf*. * g++.dg/other/pragma-ep-1.C: Properly define p, remove superfluous casts. * gcc.dg/mtune.c: Add dg-bogus "mcpu". * objc.dg/dwarf-1.m: Skip on alpha*-dec-osf*. * objc.dg/dwarf-2.m: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@157905 138bc75d-0d04-0410-961f-82ee72b054a4
* * charset.c (_cpp_valid_ucn): Update C++0x restrictions.jason2009-10-101-0/+13
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@152614 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/janis2009-05-071-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR c/39037 * c-common.h (mark_valid_location_for_stdc_pragma, valid_location_for_stdc_pragma_p, set_float_const_decimal64, clear_float_const_decimal64, float_const_decimal64_p): New. * c.opt (Wunsuffixed-float-constants): New. * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for unsuffixed float constant, handle new warning. * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants. * c-decl.c (c_scope): New flag float_const_decimal64. (set_float_const_decimal64, clear_float_const_decimal64, float_const_decimal64_p): New. (push_scope): Set new flag. * c-parser.c (c_parser_translation_unit): Mark when it's valid to use STDC pragmas. (c_parser_external_declaration): Ditto. (c_parser_compound_statement_nostart): Ditto. * c-pragma.c (valid_location_for_stdc_pragma, mark_valid_location_for_stdc_pragma, valid_location_for_stdc_pragma_p, handle_stdc_pragma, handle_pragma_float_const_decimal64): New. (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64. * cp/semantics.c (valid_location_for_stdc_pragma_p, set_float_const_decimal64, clear_float_const_decimal64, float_const_decimal64_p): New dummy functions. * doc/extend.texi (Decimal Float): Remove statement that the pragma, and suffix for double constants, are not supported. * doc/invoke.texi (Warning Options): List new option. (-Wunsuffixed-float-constants): New. gcc/testsuite PR c/39037 * gcc.dg/Wunsuffixed-float-constants-1.c: New test. * gcc.dg/cpp/pragma-float-const-decimal64-1.c: New test. * gcc.dg/dfp/float-constant-double.c: New test. * gcc.dg/dfp/pragma-float-const-decimal64-1.c: New test. * gcc.dg/dfp/pragma-float-const-decimal64-2.c: New test. * gcc.dg/dfp/pragma-float-const-decimal64-3.c: New test. * gcc.dg/dfp/pragma-float-const-decimal64-4.c: New test. * gcc.dg/dfp/pragma-float-const-decimal64-5.c: New test. * gcc.dg/dfp/pragma-float-const-decimal64-6.c: New test. * gcc.dg/dfp/pragma-float-const-decimal64-7.c: New test. * gcc.dg/dfp/pragma-float-const-decimal64-8.c: New test. * g++.dg/cpp/pragma-float-const-decimal64-1.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147259 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc.target/i386/sse4_1-roundps-1.c: Skip for vxworks kernel.nathan2009-04-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gcc.target/i386/sse4_1-roundpd-1.c: Likewise. * gcc.target/i386/sse4_1-roundps-3.c: Likewise. * gcc.target/i386/sse4_1-roundpd-3.c: Likewise. * gcc.target/i386/sse4_1-roundss-1.c: Likewise. * gcc.target/i386/sse4_1-roundsd-1.c: Likewise. * gcc.target/i386/sse4_1-roundss-3.c: Likewise. * gcc.target/i386/sse4_1-roundsd-3.c: Likewise. * gcc.target/i386/sse4_1-roundps-2.c: Likewise. * gcc.target/i386/sse4_1-roundpd-2.c: Likewise. * gcc.target/i386/sse4_1-roundss-2.c: Likewise. * gcc.target/i386/sse4_1-roundsd-2.c: Likewise. * gcc.target/i386/sse4_1-roundss-4.c: Likewise. * gcc.target/i386/sse4_1-roundsd-4.c: Likewise. * gcc.target/i386/pr37191.c: Likewise. * gcc.target/i386/reload-1.c: Likewise. * g++.old-deja/g++.pt/repo1.C: Skip for vxworks kernel. * g++.old-deja/g++.pt/repo2.C: Likewise. * g++.old-deja/g++.pt/repo3.C: Likewise. * g++.old-deja/g++.pt/repo4.C: Likewise. * g++.old-deja/g++.pt/instantiate4.C: Likewise. * g++.old-deja/g++.pt/instantiate6.C: Likewise. * g++.dg/template/repo1.C: Likewise. * g++.dg/template/repo2.C: Likewise. * g++.dg/template/repo3.C: Likewise. * g++.dg/template/repo4.C: Likewise. * g++.dg/template/repo5.C: Likewise. * g++.dg/template/repo6.C: Likewise. * g++.dg/template/repo7.C: Likewise. * g++.dg/template/repo8.C: Likewise. * g++.dg/template/repo9.C: Likewise. * g++.dg/rtti/repo1.C: Likewise. * gcc.dg/cpp/_Pragma6.c: Skip for vxworks. * g++.dg/cpp/_Pragma1.C: Skip for vxworks. * gcc.dg/pthread-init-1.c: Xfail for vxworks rtp. * g++.dg/other/PR23205.C: Skip for vxworks. * g++.dg/ext/visibility/class1.C: Requires PIC. * g++.dg/eh/async-unwind2.C: Requires PIC. * lib/target-supports.exp (check_cxa_atexit_available): Vxworks does not have cxa_exit. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146926 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc.c-torture/compile/20080625-1.c: Skip for M32C.nickc2009-02-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | * gcc.c-torture/compile/limits-stringlit.c: Likewise. * gcc.dg/cdce1.c: Likewise. * gcc.dg/cpp/_Pragma6.c: Likewise. * g++.dg/cpp/_Pragma1.C: Likewise. * gcc.dg/utf32-2.c: Xfail for M32C. * gcc.dg/utf32-1.c: Likewise. * gcc.dg/utf32-3.c: Likewise. * gcc.dg/Wtype-limits.c: Add expected warning messages for 16-bit targets. * gcc.dg/Wtype-limits-Wextra.c: Likewise. * gcc.dg/utf32-4.c: Only run for 32-bit+ targets. * gcc.dg/Wconversion-5.c: Likewise. * gcc.dg/tree-ssa/data-dep-1.c: Likewise. * gcc.dg/tree-ssa/ldist-3.c: Likewise. * gcc.dg/tree-ssa/ldist-5.c: Likewise. * gcc.dg/utf-inc-init.c: Likewise. * gcc.dg/pr11492.c: Xfail for 16-bit targets. * gcc.dg/utf-array.c: Add expected warning messages for M32C. * gcc.dg/utf-array-short-wchar.c: Likewise. * gcc.dg/tree-ssa/pr33920.c: Expect a warning from all 16-bit targets. * gcc.dg/mallign.c: Use size_t instead of long. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@143962 138bc75d-0d04-0410-961f-82ee72b054a4
* libcpp:jsm282008-11-291-0/+29
| | | | | | | | | | * lex.c (cpp_token_len): Use 6 as default length. gcc/testsuite: * g++.dg/cpp/stringop-1.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@142275 138bc75d-0d04-0410-961f-82ee72b054a4
* PR testsuite/25241janis2008-09-172-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * g++.old-deja/g++.brendan/crash7.C: Remove "error" or "warning" from message for dg-error/dg-warning. * g++.old-deja/g++.jason/crash11.C: Ditto. * g++.old-deja/g++.oliva/template1.C: Ditto. * g++.old-deja/g++.benjamin/tem03.C: Ditto. * g++.dg/rtti/no-rtti.C: Ditto. * g++.dg/cpp/pedantic-errors.C: Ditto. * g++.dg/cpp/string-2.C: Ditto. * g++.dg/ext/fpreg1.C: Ditto. * g++.dg/ext/altivec-types-1.C: Ditto. * g++.dg/warn/write-strings-default.C: Ditto. * g++.dg/warn/Wvla-2.C: Ditto. * g++.dg/warn/register-var-1.C: Ditto. * g++.dg/warn/deprecated-3.C: Ditto. * g++.dg/warn/pr30551-2.C: Ditto. * g++.dg/warn/overflow-warn-1.C: Ditto. * g++.dg/warn/pr30551.C: Ditto. * g++.dg/warn/pointer-integer-comparison.C: Ditto. * g++.dg/warn/pr12242.C: Ditto. * g++.dg/warn/write-strings.C: Ditto. * g++.dg/warn/overflow-warn-3.C: Ditto. * g++.dg/warn/overflow-warn-4.C: Ditto. * g++.dg/warn/overflow-warn-6.C: Ditto. * g++.dg/parse/crash43.C: Ditto. * g++.dg/parse/crash44.C: Ditto. * g++.dg/parse/offsetof8.C: Ditto. * g++.dg/gomp/pr35158.C: Ditto. * g++.dg/template/crash81.C: Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140437 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org> manu2008-03-022-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR 24924 * c-common.c (flag_permissive): Delete. (constant_expression_warnings): Check flags first. (constant_expression_error): New. * c-common.h (flag_permissive): Delete. (constant_expression_error): Declare. * flags.h (flag_permissive): Declare. Update description. * diagnostic.c (pedwarn): Update. (permerror): New. * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind. (permissive_error_kind): New. * toplev.c (flag_permissive): Define. Update description. * toplev.h (permissive_error_kind): Declare. * c-errors.c (pedwarn_c99): Use pedantic_warning_kind. (pedwarn_c90): Use pedantic_warning_kind. * c-opts.c (c_common_post_options): flag_permissive does not affect flag_pedantic_errors. cp/ * class.c (finish_struct_anon): Use permerror instead of pedwarn. (check_field_decls): Likewise. (note_name_declared_in_class): Likewise. * call.c (build_new_op): Likewise. (convert_like_real): Likewise. (build_over_call): Likewise. * lex.c (unqualified_fn_lookup_error): Likewise. * parser.c (cp_parser_template_id): Likewise. * cvt.c (warn_ref_binding): Likewise. (convert_to_reference): Likewise. (ocp_convert): Likewise. (convert_to_void): Use error instead of pedwarn. * error.c (cp_cpp_error): Use pedantic_warning_kind. * decl.c (compute_array_index_type): Use constant_expression_error. testsuite/ * g++.dg/cpp/string-2.C: This is a warning now. * g++.dg/cpp/pedantic-errors.C: -pedantic-errors is not enabled by default, so add it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@132817 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-01-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>manu2008-01-142-10/+0
| | | | | | | | | | | | PR c++/24924 * c-opts (c_common_post_options): Do not enable CPP flag_pedantic_errors by default. testsuite/ * g++.dg/cpp/pedantic-errors.C: Delete. * g++.dg/cpp/permissive.C: Delete. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@131530 138bc75d-0d04-0410-961f-82ee72b054a4
* * g++.dg/cpp/_Pragma1.C: Disable on AIX.dje2007-11-041-1/+1
| | | | | | | | | * g++.dg/ext/visibility/namespace2.C: Add argument to dg-require-visibility. * g++.dg/ext/java-1.C: Disable on AIX. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@129883 138bc75d-0d04-0410-961f-82ee72b054a4
* * g++.dg/cpp/_Pragma1.C: Skip on fido-*-* and m68k-*-*.kazu2007-05-171-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124805 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-04-24 Douglas Gregor <doug.gregor@gmail.com>dgregor2007-04-241-1/+1
| | | | | | | | | | | | | | | | | | * g++.old-deja/g++.pt/defarg6.C: Only run with -std=gnu++98. * g++.old-deja/g++.pt/ucnid-1.C: Ditto. * g++.dg/cpp0x/variadic61.C: Ditto. * g++.dg/cpp0x/warn_cxx0x.C: Ditto. * g++.dg/cpp0x/variadic62.C: Ditto. * g++.dg/template/meminit1.C: Ditto. * g++.dg/template/operator7.C: Ditto. * g++.dg/template/static15.C: Ditto. * g++.dg/template/invalid1.C: Ditto. * g++.dg/template/shift1.C: Ditto. * g++.dg/template/error10.C: Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124125 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-03-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>manu2007-03-152-0/+10
| | | | | | | | | | | | | | | | PR c++/24924 * c-opts.c (c_common_post_options): Handle C++ post-processing here. Set also -pedantic-errors by default for the preprocessor unless -fpermissive is given. cp/ * decl.c (cxx_init_decl_processing): Move command-line options processing to c-opts.c. testsuite/ * g++.dg/cpp/pedantic-errors.C: New. * g++.dg/cpp/permissive.C: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122961 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc.dg/cpp/_Pragma6.c: Fix comment.amylaar2006-06-151-2/+3
| | | | | | | | Test is not supported on sh*-unknown-elf nor sh*-superh-elf. * g++.dg/cpp/_Pragma1.C: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114680 138bc75d-0d04-0410-961f-82ee72b054a4
* PR preprocessor/27746jakub2006-06-091-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * directives.c (do_pragma): Handle pragma with valid namespace and invalid name coming from macro expansion. * directives.c (destringize_and_run): Initialize next field in context. PR c/27747 PR c++/27748 * directives.c (destringize_and_run): Set NO_EXPAND on the tokens. * macro.c (_cpp_backup_tokens): Fix comment typo. testsuite/ PR c/27747 * gcc.dg/cpp/_Pragma6.c: New test. PR c++/27748 * g++.dg/cpp/_Pragma1.C: New test. PR preprocessor/27746 * gcc.dg/gomp/macro-3.c: New test. * gcc.dg/gomp/macro-4.c: New test. * g++.dg/gomp/macro-3.C: New test. * g++.dg/gomp/macro-4.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114519 138bc75d-0d04-0410-961f-82ee72b054a4
* * g++.dg/cpp/string-2.C: New test.jsm282005-11-181-0/+7
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107174 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc:jsm282005-11-031-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | PR c++/17964 * diagnostic.c (diagnostic_set_info_translated): New function. (diagnostic_set_info): Use it. Add comment. * diagnostic.h (diagnostic_set_info_translated): Declare. gcc/cp: * error.c (cp_cpp_error): New function. * cp-tree.h (cp_cpp_error): Declare. * parser.c (cp_lexer_new_main): Set CPP option client_diagnostic and error callback after lexing. gcc/testsuite: * g++.dg/cpp/string-1.C: New test. libcpp: * include/cpplib.h (struct cpp_options): Add client_diagnostic. (struct cpp_callbacks): Add error. * errors.c (cpp_error): If client_diagnostic, use error callback. * charset.c (convert_escape): Don't use %03o in diagnostic. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106454 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc:jsm282005-09-202-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * c.opt (fextended-identifiers): New. * c-opts.c (c_common_handle_option): Handle -fextended-identifiers. * doc/cpp.texi: Update documentation of extended identifiers. * doc/cppopts.texi (-fextended-identifiers): Document. gcc/testsuite: * g++.dg/cpp/ucnid-1.C, g++.dg/cpp/normalize-1.C, g++.dg/other/ucnid-1.C, gcc.dg/cpp/normalize-1.c, gcc.dg/cpp/normalize-2.c, gcc.dg/cpp/normalize-3.c, gcc.dg/cpp/normalize-4.c, gcc.dg/cpp/ucnid-1.c, gcc.dg/cpp/ucnid-2.c, gcc.dg/cpp/ucnid-3.c, gcc.dg/cpp/ucnid-4.c, gcc.dg/cpp/ucnid-5.c, gcc.dg/cpp/ucnid-7.c,gcc.dg/ucnid-1.c, gcc.dg/ucnid-2.c, gcc.dg/ucnid-3.c, gcc.dg/ucnid-4.c, gcc.dg/ucnid-5.c, gcc.dg/ucnid-6.c: Add -fextended-identifiers. * gcc.dg/cpp/ucnid-8.c: New test. libcpp: * include/cpplib.h (struct cpp_options): Add extended_identifiers. * init.c (struct lang_flags, lang_defaults): Add extended_identifiers. (cpp_set_lang): Use it. * lex.c (forms_identifier_p): Check extended_identifiers. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104462 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1mmitchel2005-05-011-0/+5
| | | | | | | | | | | | if !flag_weak. * doc/cpp.texi (__DEPRECATED): Document. (__EXCEPTIONS): Likewise. (__GXX_WEAK__): Likewise. * g++.dg/cpp/weak.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99080 138bc75d-0d04-0410-961f-82ee72b054a4
* Index: gcc/ChangeLoggeoffk2005-03-152-0/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2005-03-14 Geoffrey Keating <geoffk@apple.com> * doc/cppopts.texi (-fexec-charset): Add concept index entry. (-fwide-exec-charset): Likewise. (-finput-charset): Likewise. * doc/invoke.texi (Warning Options): Document -Wnormalized=. * c-opts.c (c_common_handle_option): Handle -Wnormalized=. * c.opt (Wnormalized): New. Index: libcpp/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * init.c (cpp_create_reader): Default warn_normalize to normalized_C. * charset.c: Update for new format of ucnid.h. (ucn_valid_in_identifier): Update for new format of ucnid.h. Add NST parameter, and update it; update callers. (cpp_valid_ucn): Add NST parameter, update callers. Replace abort with cpp_error. (convert_ucn): Pass normalize_state to cpp_valid_ucn. * internal.h (struct normalize_state): New. (INITIAL_NORMALIZE_STATE): New. (NORMALIZE_STATE_RESULT): New. (NORMALIZE_STATE_UPDATE_IDNUM): New. (_cpp_valid_ucn): New. * lex.c (warn_about_normalization): New. (forms_identifier_p): Add normalize_state parameter, update callers. (lex_identifier): Add normalize_state parameter, update callers. Keep the state current. (lex_number): Likewise. (_cpp_lex_direct): Pass normalize_state to subroutines. Check it with warn_about_normalization. * makeucnid.c: New. * ucnid.h: Replace. * ucnid.pl: Remove. * ucnid.tab: Make appropriate for input to makeucnid.c. Remove comments about obsolete version of C++. * include/cpplib.h (enum cpp_normalize_level): New. (struct cpp_options): Add warn_normalize field. Index: gcc/testsuite/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * gcc.dg/cpp/normalize-1.c: New. * gcc.dg/cpp/normalize-2.c: New. * gcc.dg/cpp/normalize-3.c: New. * gcc.dg/cpp/normalize-4.c: New. * gcc.dg/cpp/ucnid-4.c: New. * gcc.dg/cpp/ucnid-5.c: New. * g++.dg/cpp/normalize-1.C: New. * g++.dg/cpp/ucnid-1.C: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96459 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc.dg/cpp/truefalse.cpp: Move it to ...mmitchel2003-06-021-0/+17
| | | | | | | | * g++.dg/cpp/truefalse.C: Here. * gcc.dg/cpp/cpp.exp: Remove scanning of ".cpp" files. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@67333 138bc75d-0d04-0410-961f-82ee72b054a4
* PR/9394dpatel2003-03-102-0/+18
| | | | | | | | | | | | | | | | | | | | * gcc.c (DEFAULT_SWITCH_TAKES_ARG): Remove. (DEFAULT_WORD_SWITCH_TAKES_ARG): Remove. * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Add. (DEFAULT_WORD_SWITCH_TAKES_ARG): Add. * cppspec.c (DEFAULT_SWTICH_TAKES_ARG): Remove. (DEFAULT_WORD_SWITCH_TAKES_ARG): Remove. cp * g++spec.c (lang_specific_driver): Use DEFAULT_WORD_SWITCH_TAKES_ARG. testsuite * g++.dg/cpp/c++_cmd_1.C: New test. * g++.dg/cpp/c++_cmd_1.h: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@64144 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc.dg/cpp/c++98-pedantic.C: Moved to g++.dg/cpp.aj2002-10-062-0/+20
* gcc.dg/cpp/c++98.C: Likewise. * g++.dg/cpp/c++98-pedantic.C: Moved from gcc.dg/cpp to here. * g++.dg/cpp/c++98.C: Likewise. * g++.dg/README (Subdirectories): Mention cpp directory. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57868 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud