aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/cpp
AgeCommit message (Collapse)AuthorFilesLines
2021-08-12libcpp: Fix ICE with -Wtraditional preprocessing [PR101638]Jakub Jelinek1-0/+7
The following testcase ICEs in cpp_sys_macro_p, because cpp_sys_macro_p is called for a builtin macro which doesn't use node->value.macro union member but a different one and so dereferencing it ICEs. As the testcase is distilled from contemporary glibc headers, it means basically -Wtraditional now ICEs on almost everything. The fix can be either the patch below, return true for builtin macros, or we could instead return false for builtin macros, or the fix could be also (untested): --- libcpp/expr.c 2021-05-07 10:34:46.345122608 +0200 +++ libcpp/expr.c 2021-08-12 09:54:01.837556365 +0200 @@ -783,13 +783,13 @@ cpp_classify_number (cpp_reader *pfile, /* Traditional C only accepted the 'L' suffix. Suppress warning about 'LL' with -Wno-long-long. */ - if (CPP_WTRADITIONAL (pfile) && ! cpp_sys_macro_p (pfile)) + if (CPP_WTRADITIONAL (pfile)) { int u_or_i = (result & (CPP_N_UNSIGNED|CPP_N_IMAGINARY)); int large = (result & CPP_N_WIDTH) == CPP_N_LARGE && CPP_OPTION (pfile, cpp_warn_long_long); - if (u_or_i || large) + if ((u_or_i || large) && ! cpp_sys_macro_p (pfile)) cpp_warning_with_line (pfile, large ? CPP_W_LONG_LONG : CPP_W_TRADITIONAL, virtual_location, 0, "traditional C rejects the \"%.*s\" suffix", The builtin macros at least currently don't add any suffixes or numbers -Wtraditional would like to warn about. For floating point suffixes, -Wtraditional calls cpp_sys_macro_p only right away before emitting the warning, but in the above case the ICE is because cpp_sys_macro_p is called even if the number doesn't have any suffixes (that is I think always for builtin macros right now). 2021-08-12 Jakub Jelinek <jakub@redhat.com> PR preprocessor/101638 * macro.c (cpp_sys_macro_p): Return true instead of crashing on builtin macros. * gcc.dg/cpp/pr101638.c: New test.
2021-05-20libcpp: Fix up -fdirectives-only handling of // comments on last line not ↵Jakub Jelinek2-0/+11
terminated with newline [PR100646] As can be seen on the testcases, before the -fdirectives-only preprocessing rewrite the preprocessor would assume // comments are terminated by the end of file even when newline wasn't there, but now we error out. The following patch restores the previous behavior. 2021-05-20 Jakub Jelinek <jakub@redhat.com> PR preprocessor/100646 * lex.c (cpp_directive_only_process): Treat end of file as termination for !is_block comments. * gcc.dg/cpp/pr100646-1.c: New test. * gcc.dg/cpp/pr100646-2.c: New test.
2021-05-12libcpp: Fix up -fdirectives-only preprocessing of includes not ending with ↵Jakub Jelinek2-0/+9
newline [PR100392] If a header doesn't end with a new-line, with -fdirectives-only we right now preprocess it as int i = 1;# 2 "pr100392.c" 2 i.e. the line directive isn't on the next line, which means we fail to parse it when compiling. GCC 10 and earlier libcpp/directives-only.c had for this: if (!pfile->state.skipping && cur != base) { /* If the file was not newline terminated, add rlimit, which is guaranteed to point to a newline, to the end of our range. */ if (cur[-1] != '\n') { cur++; CPP_INCREMENT_LINE (pfile, 0); lines++; } cb->print_lines (lines, base, cur - base); } and we have the assertion /* Files always end in a newline or carriage return. We rely on this for character peeking safety. */ gcc_assert (buffer->rlimit[0] == '\n' || buffer->rlimit[0] == '\r'); So, this patch just does readd the more less same thing, so that we emit a newline after the inline even when it wasn't there before. 2021-05-12 Jakub Jelinek <jakub@redhat.com> PR preprocessor/100392 * lex.c (cpp_directive_only_process): If buffer doesn't end with '\n', add buffer->rlimit[0] character to the printed range and CPP_INCREMENT_LINE and increment line_count. * gcc.dg/cpp/pr100392.c: New test. * gcc.dg/cpp/pr100392.h: New file.
2021-05-11preprocessor: Support C2X #elifdef, #elifndefJoseph Myers3-0/+136
C2X adds #elifdef and #elifndef preprocessor directives; these have also been proposed for C++. Implement these directives in libcpp accordingly. In this implementation, #elifdef and #elifndef are treated as non-directives for any language version other than c2x and gnu2x (if the feature is accepted for C++, it can trivially be enabled for relevant C++ versions). In strict conformance modes for prior language versions, this is required, as illustrated by the c11-elifdef-1.c test added. Bootstrapped with no regressions for x86_64-pc-linux-gnu. libcpp/ * include/cpplib.h (struct cpp_options): Add elifdef. * init.c (struct lang_flags): Add elifdef. (lang_defaults): Update to include elifdef initializers. (cpp_set_lang): Set elifdef for pfile based on language. * directives.c (STDC2X, ELIFDEF): New macros. (EXTENSION): Increase value to 3. (DIRECTIVE_TABLE): Add #elifdef and #elifndef. (_cpp_handle_directive): Do not treat ELIFDEF directives as directives for language versions without the #elifdef feature. (do_elif): Handle #elifdef and #elifndef. (do_elifdef, do_elifndef): New functions. gcc/testsuite/ * gcc.dg/cpp/c11-elifdef-1.c, gcc.dg/cpp/c2x-elifdef-1.c, gcc.dg/cpp/c2x-elifdef-2.c: New tests.
2021-03-04c-ppoutput: Fix preprocessing ICE on very large line number [PR99325]Jakub Jelinek2-0/+12
In libcpp, lines are represented as linenum_type, which is unsigned int. The following testcases ICE because maybe_print_line_1 is sometimes called with UNKNOWN_LOCATION (e.g. at pragma eof) and while most of the time the && src_line >= print.src_line && src_line < print.src_line + 8 check doesn't succeed for the src_line of 0 from UNKNOWN_LOCATION, when print.src_line is from very large line numbers (UINT_MAX - 7 and above) it succeeds (with UB on the compiler side) but src_file is NULL for UNKNOWN_LOCATION and so the strcmp call ICEs. As print.src_line can easily wrap around, this patch changes its type to unsigned int to match libcpp, so that we don't invoke UB in the compiler. For print.src_line of UINT_MAX - 7 and above, src_line from UNKNOWN_LOCATION will not pass that test anymore, but when it wraps around to 0, it can, so I've also added a check for src_loc != UNKNOWN_LOCATION (or, if preferred, could be src_file != NULL). Besides fixing the ICE and UB in the compiler, I believe worst case the patch will cause printing a few more line directives in the preprocessed source around the wrapping from lines UINT_MAX - 7 to 0 (but less around the wrapping from INT_MAX to INT_MAX + 1U), but I think those are exceptional cases (sources with > 2billion lines are rare and we warn or error on #line > INT_MAX). 2021-03-04 Jakub Jelinek <jakub@redhat.com> PR c/99325 * c-ppoutput.c (print): Change src_line type from int to unsigned. (token_streamer::stream) Likewise. (maybe_print_line_1): Likewise. Don't strcmp src_file if src_loc is UNKNOWN_LOCATION. * gcc.dg/cpp/line11.c: New test. * gcc.dg/cpp/line12.c: New test.
2021-02-03libcpp: Fix up -fdirectives-only preprocessing [PR98882]Jakub Jelinek1-0/+6
GCC 11 ICEs on all -fdirectives-only preprocessing when the files don't end with a newline. The problem is in the assertion, for empty TUs buffer->cur == buffer->rlimit and so buffer->rlimit[-1] access triggers UB in the preprocessor, for non-empty TUs it refers to the last character in the file, which can be anything. The preprocessor adds a '\n' character (or '\r', in particular if the user file ends with '\r' then it adds another '\r' rather than '\n'), but that is added after the limit, i.e. at buffer->rlimit[0]. Now, if the routine handles occassional bumping of pos to buffer->rlimit + 1, I think it is just the assert that needs changing, usually we read from *pos if pos < limit and then e.g. if it is '\r', look at the following character (which could be one of those '\n' or '\r' at buffer->rlimit[0]). There is also the case where for '\\' before the limit we read following character and if it is '\n', do one thing, if it is '\r' read another character. But in that case if '\\' was the last char in the TU, the limit char will be '\n', so we are ok. 2021-02-03 Jakub Jelinek <jakub@redhat.com> PR preprocessor/98882 * lex.c (cpp_directive_only_process): Don't assert that rlimit[-1] is a newline, instead assert that rlimit[0] is either newline or carriage return. When seeing '\\' followed by '\r', check limit before accessing pos[1]. * gcc.dg/cpp/pr98882.c: New test.
2021-01-19testsuite: aix testsuite adjustmentsDavid Edelsohn1-2/+2
This patch re-enables the DWARF5 tests that seem to be functioning again. It adds a comment to pr41445-7.c that any changes in lines need to be reflected in the expected output. The patch also allows for additional failures in ucs.c and reflects that builtin-sprintf-warn-20.c requires 4 byte wide char support. gcc/testsuite/ChangeLog: * gcc.dg/cpp/ucs.c: Expect Invalid warning for 2byte wchar. * gcc.dg/debug/dwarf2/inline6.c: Remove skip AIX. * gcc.dg/debug/dwarf2/lang-c11.c: Remove skip AIX. * gcc.dg/debug/dwarf2/pr41445-7.c: Remove skip AIX. * gcc.dg/debug/dwarf2/pr41445-8.c: Remove skip AIX. * gcc.dg/tree-ssa/builtin-sprintf-warn-20.c: Require 4byte wchar.
2021-01-04Update copyright years.Jakub Jelinek3-3/+3
2020-12-01driver: Don't imply -dD for -g3 -g0 [PR97989]Jakub Jelinek2-0/+16
The driver enables -dD when preprocessing when -g3 is specified, for obvious reasons that we need the macros to be preserved somewhere for them to make up the debug info. But it enables it even if -g3 is later overridden to -g2, -g1 or -g0, where we in the end don't emit .debug_mac{ros,info}. The following patch passes -dD only if we'll need it. 2020-12-01 Jakub Jelinek <jakub@redhat.com> PR debug/97989 * gcc.c (cpp_unique_options): Add -dD if %:debug-level-gt(2) rather than g3|ggdb3|gstabs3|gxcoff3|gvms3. * gcc.dg/cpp/pr97989-1.c: New test. * gcc.dg/cpp/pr97989-2.c: New test.
2020-11-27preprocessor: Fix #line overflow check [PR97602]Joseph Myers2-0/+10
The preprocessor check for overflow (of linenum_type = unsigned int) when reading the line number in a #line directive is incomplete; it checks "reg < reg_prev" which doesn't cover all cases where multiplying by 10 overflowed. Fix this by checking for overflow before rather than after it occurs (using essentially the same logic as used by e.g. glibc printf when reading width and precision values from strings). Bootstrapped with no regressions for x86_64-pc-linux-gnu. libcpp/ 2020-11-27 Joseph Myers <joseph@codesourcery.com> PR preprocessor/97602 * directives.c (strtolinenum): Check for overflow before it occurs. Correct comment. gcc/testsuite/ 2020-11-27 Joseph Myers <joseph@codesourcery.com> PR preprocessor/97602 * gcc.dg/cpp/line9.c, gcc.dg/cpp/line10.c: New tests.
2020-10-20preprocessor: Further fix for EOF in macro args [PR97471]Nathan Sidwell2-15/+0
My previous attempt at fixing this was incorrect. The problem occurs earlier in that _cpp_lex_direct processes the unwinding EOF needs in collect_args mode. This patch changes it not to do that, in the same way as directive parsing works. Also collect_args shouldn't push_back such fake EOFs, and neither should funlike_invocation_p. libcpp/ * lex.c (_cpp_lex_direct): Do not complete EOF processing when parsing_args. * macro.c (collect_args): Do not unwind fake EOF. (funlike_invocation_p): Do not unwind fake EOF. (cpp_context): Replace abort with gcc_assert. gcc/testsuite/ * gcc.dg/cpp/endif.c: Move to ... * c-c++-common/cpp/endif.c: ... here. * gcc.dg/cpp/endif.h: Move to ... * c-c++-common/cpp/endif.h: ... here. * c-c++-common/cpp/eof-2.c: Adjust diagnostic. * c-c++-common/cpp/eof-3.c: Adjust diagnostic.
2020-05-08preprocessor: Reimplement directives only processing, support raw literals.Nathan Sidwell11-161/+0
The existing directives-only code (a) punched a hole through the libcpp interface and (b) didn't support raw string literals. This reimplements this preprocessing mode. I added a proper callback interface, and adjusted c-ppoutput to use it. Sadly I cannot get rid of the libcpp/internal.h include for unrelated reasons. The new scanner is in lex.x, and works doing some backwards scanning when it finds a charater of interest. This reduces the number of cases one has to deal with in forward scanning. It may have different failure mode than forward scanning on bad tokenization. Finally, Moved some cpp tests from the c-specific dg.gcc/cpp directory to the c-c++-common/cpp shared directory, libcpp/ * directives-only.c: Delete. * Makefile.in (libcpp_a_OBJS, libcpp_a_SOURCES): Remove it. * include/cpplib.h (enum CPP_DO_task): New enum. (cpp_directive_only_preprocess): Declare. * internal.h (_cpp_dir_only_callbacks): Delete. (_cpp_preprocess_dir_only): Delete. * lex.c (do_peek_backslask, do_peek_next, do_peek_prev): New. (cpp_directives_only_process): New implementation. gcc/c-family/ Reimplement directives only processing. * c-ppoutput.c (token_streamer): Ne. (directives_only_cb): New. Swallow ... (print_lines_directives_only): ... this. (scan_translation_unit_directives_only): Reimplment using the published interface. gcc/testsuite/ * gcc.dg/cpp/counter-[23].c: Move to c-c+_-common/cpp. * gcc.dg/cpp/dir-only-*: Likewise. * c-c++-common/cpp/dir-only-[78].c: New.
2020-05-07Fix various dg directives.Manfred Schwarb1-1/+1
* gcc.dg/20050121-1.c: Fix broken dg directives. * gcc.dg/analzyer/pr93382.c: Likewise. * gcc.dg/autopar/pr68460.c: Likewise. * gcc.dg/c90-fordecl-1.c: Likewise. * gcc.dg/cpp/trad/funlike-5.c: Likewise. * gcc.dg/debug/dwarf2/dwarf-dfp.c: Likewise. * gcc.dg/debug/dwarf2/dwarf-float.c: Likewise. * gcc.dg/lto/pr52634_0.c: Likewise. * gcc.dg/pr32069.c: Likewise. * gcc.dg/pr35445.c: Likewise. * gcc.dg/pr40172-3.c: Likewise. * gcc.dg/pr87347.c: Likewise. * gcc.dg/pr88660.c: Likewise. * gcc.dg/pr89689.c: Likewise. * gcc.dg/sinatan-2.c: Likewise. * gcc.dg/sinhatanh-1.c: Likewise. * gcc.dg/sinhovercosh-1.c: Likewise. * gcc.dg/tls/opt-9.c: Likewise. * gcc.dg/torture/builtins-1.c: Likewise. * gcc.dg/torture/pr51106-1.c: Likewise. * gcc.dg/torture/pr51106-2.c: Likewise. * gcc.dg/torture/pr80281.c: Likewise. * gcc.dg/torture/pr92252.c: Likewise. * gcc.dg/tree-ssa/pr79448-2.c: Likewise. * gcc.dg/tree-ssa/pr79448.c: Likewise. * gcc.dg/tree-ssa/pr92163.c: Likewise. * gcc.dg/tree-ssa/reassoc-28.c: Likewise. * gcc.dg/tree-ssa/upcast-1.c: Likewise. * gcc.dg/two-types-6.c: Likewise. * gcc.dg/ubsan/c-shift-1.c: Likewise. * gcc.dg/var-expand3.c: Likewise. * gcc.dg/vect/costmodel/x86_64/costmodel-pr30843.c: Likewise. * gcc.dg/vect/pr71264.c: Likewise.
2020-01-01Update copyright years.Jakub Jelinek3-3/+3
From-SVN: r279813
2019-12-30Prevent redefinition of WCHAR_MAX from testsuite/gcc.dg/cpp/ucs.cOlivier Hainque1-0/+4
gcc/testsuite/gcc.dg/cpp/ucs.c #include <limits.h> and then crafts a definition of WCHAR_MAX depending on __WCHAR_TYPE__. The test fails in VxWorks configurations because WCHAR_MAX is already exposed by the system limits.h. The patch simply guards the tentative definition by a check verifying if the macro is defined already, so we're using the value exposed by limits.h in this case. 2019-12-30 Olivier Hainque <hainque@adacore.com> * testsuite/gcc.dg/cpp/ucs.c: Prevent redefinition of WCHAR_MAX if already exposed by limits.h. From-SVN: r279795
2019-12-09Byte vs column awareness for diagnostic-show-locus.c (PR 49973)Lewis Hyatt1-1/+1
contrib/ChangeLog 2019-12-09 Lewis Hyatt <lhyatt@gmail.com> PR preprocessor/49973 * unicode/from_glibc/unicode_utils.py: Support script from glibc (commit 464cd3) to extract character widths from Unicode data files. * unicode/from_glibc/utf8_gen.py: Likewise. * unicode/UnicodeData.txt: Unicode v. 12.1.0 data file. * unicode/EastAsianWidth.txt: Likewise. * unicode/PropList.txt: Likewise. * unicode/gen_wcwidth.py: New utility to generate libcpp/generated_cpp_wcwidth.h with help from the glibc support scripts and the Unicode data files. * unicode/unicode-license.txt: Added. * unicode/README: New explanatory file. libcpp/ChangeLog 2019-12-09 Lewis Hyatt <lhyatt@gmail.com> PR preprocessor/49973 * generated_cpp_wcwidth.h: New file generated by ../contrib/unicode/gen_wcwidth.py, supports new cpp_wcwidth function. * charset.c (compute_next_display_width): New function to help implement display columns. (cpp_byte_column_to_display_column): Likewise. (cpp_display_column_to_byte_column): Likewise. (cpp_wcwidth): Likewise. * include/cpplib.h (cpp_byte_column_to_display_column): Declare. (cpp_display_column_to_byte_column): Declare. (cpp_wcwidth): Declare. (cpp_display_width): New function. gcc/ChangeLog 2019-12-09 Lewis Hyatt <lhyatt@gmail.com> PR preprocessor/49973 * input.c (location_compute_display_column): New function to help with multibyte awareness in diagnostics. (test_cpp_utf8): New self-test. (input_c_tests): Call the new test. * input.h (location_compute_display_column): Declare. * diagnostic-show-locus.c: Pervasive changes to add multibyte awareness to all classes and functions. (enum column_unit): New enum. (class exploc_with_display_col): New class. (class layout_point): Convert m_column member to array m_columns[2]. (layout_range::contains_point): Add col_unit argument. (test_layout_range_for_single_point): Pass new argument. (test_layout_range_for_single_line): Likewise. (test_layout_range_for_multiple_lines): Likewise. (line_bounds::convert_to_display_cols): New function. (layout::get_state_at_point): Add col_unit argument. (make_range): Use empty filename rather than dummy filename. (get_line_width_without_trailing_whitespace): Rename to... (get_line_bytes_without_trailing_whitespace): ...this. (test_get_line_width_without_trailing_whitespace): Rename to... (test_get_line_bytes_without_trailing_whitespace): ...this. (class layout): m_exploc changed to exploc_with_display_col from plain expanded_location. (layout::get_linenum_width): New accessor member function. (layout::get_x_offset_display): Likewise. (layout::calculate_linenum_width): New subroutine for the constuctor. (layout::calculate_x_offset_display): Likewise. (layout::layout): Use the new subroutines. Add multibyte awareness. (layout::print_source_line): Add multibyte awareness. (layout::print_line): Likewise. (layout::print_annotation_line): Likewise. (line_label::line_label): Likewise. (layout::print_any_labels): Likewise. (layout::annotation_line_showed_range_p): Likewise. (get_printed_columns): Likewise. (class line_label): Rename m_length to m_display_width. (get_affected_columns): Rename to... (get_affected_range): ...this; add col_unit argument and multibyte awareness. (class correction): Add m_affected_bytes and m_display_cols members. Rename m_len to m_byte_length for clarity. Add multibyte awareness throughout. (correction::insertion_p): Add multibyte awareness. (correction::compute_display_cols): New function. (correction::ensure_terminated): Use new member name m_byte_length. (line_corrections::add_hint): Add multibyte awareness. (layout::print_trailing_fixits): Likewise. (layout::get_x_bound_for_row): Likewise. (test_one_liner_simple_caret_utf8): New self-test analogous to the one with _utf8 suffix removed, testing multibyte awareness. (test_one_liner_caret_and_range_utf8): Likewise. (test_one_liner_multiple_carets_and_ranges_utf8): Likewise. (test_one_liner_fixit_insert_before_utf8): Likewise. (test_one_liner_fixit_insert_after_utf8): Likewise. (test_one_liner_fixit_remove_utf8): Likewise. (test_one_liner_fixit_replace_utf8): Likewise. (test_one_liner_fixit_replace_non_equal_range_utf8): Likewise. (test_one_liner_fixit_replace_equal_secondary_range_utf8): Likewise. (test_one_liner_fixit_validation_adhoc_locations_utf8): Likewise. (test_one_liner_many_fixits_1_utf8): Likewise. (test_one_liner_many_fixits_2_utf8): Likewise. (test_one_liner_labels_utf8): Likewise. (test_diagnostic_show_locus_one_liner_utf8): Likewise. (test_overlapped_fixit_printing_utf8): Likewise. (test_overlapped_fixit_printing): Adapt for changes to get_affected_columns, get_printed_columns and class corrections. (test_overlapped_fixit_printing_2): Likewise. (test_linenum_sep): New constant. (test_left_margin): Likewise. (test_offset_impl): Helper function for new test. (test_layout_x_offset_display_utf8): New test. (diagnostic_show_locus_c_tests): Call new tests. gcc/testsuite/ChangeLog: 2019-12-09 Lewis Hyatt <lhyatt@gmail.com> PR preprocessor/49973 * gcc.dg/plugin/diagnostic_plugin_test_show_locus.c (test_show_locus): Tweak so that expected output is the same as before the diagnostic-show-locus.c changes. * gcc.dg/cpp/pr66415-1.c: Likewise. From-SVN: r279137
2019-10-02Handle :: tokens in C for C2x.Joseph Myers11-0/+90
As part of adding [[]]-style attributes, C2x adds the token :: for use in scoped attribute names. This patch adds corresponding support for that token in C to GCC. The token is supported both for C2x and for older gnu* standards (on the basis that extensions are normally supported in older gnu* versions; people will expect to be able to use [[]] attributes, before C2x is the default, without needing to use -std=gnu2x). There are no cases in older C standards where the token : can be followed by a token starting with : in syntactically valid sources; the only cases the :: token could break in older standard C thus are ones involving concatenation of pp-tokens where the result does not end up as tokens (e.g., gets stringized). In GNU C extensions, the main case where :: might appear in existing sources is in asm statements, and the C parser is thus made to handle it like two consecutive : tokens, which the C++ parser already does. A limited test of various positionings of :: in asm statements is added to the testsuite (in particular, to cover the syntax error when :: means too many colons but a single : would be OK), but existing tests cover a variety of styles there anyway. Technically there are cases in Objective-C and OpenMP for which this also changes how previously valid code is lexed: the objc-selector-arg syntax allows multiple consecutive : tokens (although I don't think they are particularly useful there), while OpenMP syntax includes array section syntax such as [:] which, before :: was a token, could also be written as [::> (there might be other OpenMP cases potentially affected, I didn't check all the OpenMP syntax in detail). I don't think either of those cases affects the basis for supporting the :: token in all -std=gnu* modes, or that there is any obvious need to special-case handling of CPP_SCOPE tokens for those constructs the way there is for asm statements. cpp_avoid_paste, which determines when spaces need adding between tokens in preprocessed output where there wouldn't otherwise be whitespace between them (e.g. if stringized), already inserts space between : and : unconditionally, rather than only for C++, so no change is needed there (but a C2x test is added that such space is indeed inserted). Bootstrapped with no regressions on x86-64-pc-linux-gnu. gcc/c: * c-parser.c (c_parser_asm_statement): Handle CPP_SCOPE like two CPP_COLON tokens. gcc/testsuite: * gcc.dg/asm-scope-1.c, gcc.dg/cpp/c11-scope-1.c, gcc.dg/cpp/c17-scope-1.c, gcc.dg/cpp/c2x-scope-1.c, gcc.dg/cpp/c2x-scope-2.c, gcc.dg/cpp/c90-scope-1.c, gcc.dg/cpp/c94-scope-1.c, gcc.dg/cpp/c99-scope-1.c, gcc.dg/cpp/gnu11-scope-1.c, gcc.dg/cpp/gnu17-scope-1.c, gcc.dg/cpp/gnu89-scope-1.c, gcc.dg/cpp/gnu99-scope-1.c: New tests. libcpp: * include/cpplib.h (struct cpp_options): Add member scope. * init.c (struct lang_flags, lang_defaults): Likewise. (cpp_set_lang): Set scope member of pfile. * lex.c (_cpp_lex_direct): Test CPP_OPTION (pfile, scope) not CPP_OPTION (pfile, cplusplus) for creating CPP_SCOPE tokens. From-SVN: r276434
2019-09-26charset.c (UCS_LIMIT): New macro.Eric Botcazou2-3/+5
* charset.c (UCS_LIMIT): New macro. (ucn_valid_in_identifier): Use it instead of a hardcoded constant. (_cpp_valid_ucn): Issue a pedantic warning for UCNs larger than UCS_LIMIT outside of identifiers in C and in C++2a or later. From-SVN: r276167
2019-09-19Support extended characters in C/C++ identifiers (PR c/67224)Lewis Hyatt13-0/+168
libcpp/ChangeLog 2019-09-19 Lewis Hyatt <lhyatt@gmail.com> PR c/67224 * charset.c (_cpp_valid_utf8): New function to help lex UTF-8 tokens. * internal.h (_cpp_valid_utf8): Declare. * lex.c (forms_identifier_p): Use it to recognize UTF-8 identifiers. (_cpp_lex_direct): Handle UTF-8 in identifiers and CPP_OTHER tokens. Do all work in "default" case to avoid slowing down typical code paths. Also handle $ and UCN in the default case for consistency. gcc/Changelog 2019-09-19 Lewis Hyatt <lhyatt@gmail.com> PR c/67224 * doc/cpp.texi: Document support for extended characters in identifiers. * doc/cppopts.texi: Likewise. gcc/testsuite/ChangeLog 2019-09-19 Lewis Hyatt <lhyatt@gmail.com> PR c/67224 * c-c++-common/cpp/ucnid-2011-1-utf8.c: New test. * g++.dg/cpp/ucnid-1-utf8.C: New test. * g++.dg/cpp/ucnid-2-utf8.C: New test. * g++.dg/cpp/ucnid-3-utf8.C: New test. * g++.dg/cpp/ucnid-4-utf8.C: New test. * g++.dg/other/ucnid-1-utf8.C: New test. * gcc.dg/cpp/ucnid-1-utf8.c: New test. * gcc.dg/cpp/ucnid-10-utf8.c: New test. * gcc.dg/cpp/ucnid-11-utf8.c: New test. * gcc.dg/cpp/ucnid-12-utf8.c: New test. * gcc.dg/cpp/ucnid-13-utf8.c: New test. * gcc.dg/cpp/ucnid-14-utf8.c: New test. * gcc.dg/cpp/ucnid-15-utf8.c: New test. * gcc.dg/cpp/ucnid-2-utf8.c: New test. * gcc.dg/cpp/ucnid-3-utf8.c: New test. * gcc.dg/cpp/ucnid-4-utf8.c: New test. * gcc.dg/cpp/ucnid-6-utf8.c: New test. * gcc.dg/cpp/ucnid-7-utf8.c: New test. * gcc.dg/cpp/ucnid-9-utf8.c: New test. * gcc.dg/ucnid-1-utf8.c: New test. * gcc.dg/ucnid-10-utf8.c: New test. * gcc.dg/ucnid-11-utf8.c: New test. * gcc.dg/ucnid-12-utf8.c: New test. * gcc.dg/ucnid-13-utf8.c: New test. * gcc.dg/ucnid-14-utf8.c: New test. * gcc.dg/ucnid-15-utf8.c: New test. * gcc.dg/ucnid-16-utf8.c: New test. * gcc.dg/ucnid-2-utf8.c: New test. * gcc.dg/ucnid-3-utf8.c: New test. * gcc.dg/ucnid-4-utf8.c: New test. * gcc.dg/ucnid-5-utf8.c: New test. * gcc.dg/ucnid-6-utf8.c: New test. * gcc.dg/ucnid-7-utf8.c: New test. * gcc.dg/ucnid-8-utf8.c: New test. * gcc.dg/ucnid-9-utf8.c: New test. From-SVN: r275979
2019-06-24[Darwin, testsuite] Fix isystem-2.c.Iain Sandoe2-2/+9
For the test to succeed there needs to be some header that is to be found in the 'expected' place i.e. <sysroot>/usr/include/. It's important that it is not the name of a header for which fixincludes have been applied, since such headers will be found in the gcc include-fixed dir and, in general, reference additional headers. The dummy sysroot will prevent the additional headers from being found, resulting in a failed test. The fix is to use a header name that isn't expected to be present in a real sysroot. 2019-06-24 Iain Sandoe <iain@sandoe.co.uk> * gcc.dg/cpp/isysroot-1.c (main): Use <example.h> as the test header. * gcc.dg/cpp/usr/include/stdio.h: Rename... * gcc.dg/cpp/usr/include/example.h: ... to this. From-SVN: r272625
2019-05-17trans.c (check_inlining_for_nested_subprog): Quote reserved names.Martin Sebor1-1/+1
gcc/ada/ChangeLog: * gcc-interface/trans.c (check_inlining_for_nested_subprog): Quote reserved names. gcc/brig/ChangeLog: * brigfrontend/brig-control-handler.cc (brig_directive_control_handler::operator): Remove trailing newline from a diagnostic. * brigfrontend/brig-module-handler.cc (brig_directive_module_handler::operator): Remove a duplicated space from a diagnostic. gcc/c/ChangeLog: * c-decl.c (start_decl): Quote keywords, operators, and types in diagnostics. (finish_decl): Same. * c-parser.c (c_parser_asm_statement): Same. (c_parser_conditional_expression): Same. (c_parser_transaction_cancel): Same. * c-typeck.c (c_common_type): Same. (build_conditional_expr): Same. (digest_init): Same. (process_init_element): Same. (build_binary_op): Same. gcc/c-family/ChangeLog: * c-attribs.c (handle_no_sanitize_attribute): Quote identifiers, keywords, operators, and types in diagnostics. (handle_scalar_storage_order_attribute): Same. (handle_mode_attribute): Same. (handle_visibility_attribute): Same. (handle_assume_aligned_attribute): Same. (handle_no_split_stack_attribute): Same. * c-common.c (shorten_compare): Same. (c_common_truthvalue_conversion): Same. (cb_get_source_date_epoch): Same. * c-lex.c (cb_def_pragma): Quote keywords, operators, and types in diagnostics. (interpret_float): Same. * c-omp.c (c_finish_omp_for): Same. * c-opts.c (c_common_post_options): Same. * c-pch.c (c_common_pch_pragma): Same. * c-pragma.c (pop_alignment): Same. (handle_pragma_pack): Same. (apply_pragma_weak): Same. (handle_pragma_weak): Same. (handle_pragma_scalar_storage_order): Same. (handle_pragma_redefine_extname): Same. (add_to_renaming_pragma_list): Same. (maybe_apply_renaming_pragma): Same. (push_visibility): Same. (handle_pragma_visibility): Same. (handle_pragma_optimize): Same. (handle_pragma_message): Same. * c-warn.c (warn_for_omitted_condop): Same. (lvalue_error): Same. gcc/cp/ChangeLog: * call.c (print_z_candidate): Wrap diagnostic text in a gettext macro. Adjust. (print_z_candidates): Same. (build_conditional_expr_1): Quote keywords, operators, and types in diagnostics. (build_op_delete_call): Same. (maybe_print_user_conv_context): Wrap diagnostic text in a gettext macro. (convert_like_real): Same. (convert_arg_to_ellipsis): Quote keywords, operators, and types in diagnostics. (build_over_call): Same. (joust): Break up an overlong line. Wrap diagnostic text in a gettext macro. * constexpr.c (cxx_eval_check_shift_p): Spell out >= in English. (cxx_eval_constant_expression): Quote keywords, operators, and types in diagnostics. (potential_constant_expression_1): Same. * cp-gimplify.c (cp_genericize_r): Same. * cvt.c (maybe_warn_nodiscard): Quote keywords, operators, and types in diagnostics. (type_promotes_to): Same. * decl.c (check_previous_goto_1): Same. (check_goto): Same. (start_decl): Same. (cp_finish_decl): Avoid parenthesizing a sentence for consistency. (grok_op_properties): Quote keywords, operators, and types in diagnostics. * decl2.c (grokfield): Same. (coerce_delete_type): Same. * except.c (is_admissible_throw_operand_or_catch_parameter): Same. * friend.c (do_friend): Quote C++ tokens. * init.c (build_new_1): Quote keywords, operators, and types in diagnostics. (build_vec_delete_1): Same. (build_delete): Same. * lex.c (parse_strconst_pragma): Same. (handle_pragma_implementation): Same. (unqualified_fn_lookup_error): Same. * mangle.c (write_type): Same. * method.c (defaulted_late_check): Avoid two consecutive punctuators. * name-lookup.c (cp_binding_level_debug): Remove a trailing newline. (pop_everything): Same. * parser.c (cp_lexer_start_debugging): Quote a macro name. in a diagnostic (cp_lexer_stop_debugging): Same. (cp_parser_userdef_numeric_literal): Quote a C++ header name in a diagnostic. (cp_parser_nested_name_specifier_opt): Quote keywords, operators, and types in diagnostics. (cp_parser_question_colon_clause): Same. (cp_parser_asm_definition): Same. (cp_parser_init_declarator): Same. (cp_parser_template_declaration_after_parameters): Avoid capitalizing a sentence in a diagnostic. (cp_parser_omp_declare_reduction): Quote keywords, operators, and types in diagnostics. (cp_parser_transaction): Same. * pt.c (maybe_process_partial_specialization): Replace second call to permerror with inform for consistency with other uses. (expand_integer_pack): Quote keywords, operators, and types in diagnostics. * rtti.c (get_typeid): Quote keywords, operators, and types in diagnostics. (build_dynamic_cast_1): Same. * semantics.c (finish_asm_stmt): Same. (finish_label_decl): Same. (finish_bases): Same. (finish_offsetof): Same. (cp_check_omp_declare_reduction): Same. (finish_decltype_type): Same. * tree.c (handle_init_priority_attribute): Same. Add detail to diagnostics. (maybe_warn_zero_as_null_pointer_constant): Same. * typeck.c (cp_build_binary_op): Quote keywords, operators, and types in diagnostics. (cp_build_unary_op): Same. (check_for_casting_away_constness): Same. (build_static_cast): Same. (build_const_cast_1): Same. (maybe_warn_about_returning_address_of_local): Same. (check_return_expr): Same. * typeck2.c (abstract_virtuals_error_sfinae): Same. (digest_init_r): Replace a tab with spaces in a diagnostic. (build_functional_cast): Quote keywords, operators, and types in diagnostics. gcc/d/ChangeLog: * d-builtins.cc (d_init_builtins): Quote keywords, operators, and types in diagnostics. * d-codegen.cc (get_array_length): Same. Replace can't with cannot. * d-convert.cc (convert_expr): Same. * d-frontend.cc (getTypeInfoType): Quote an option name in a diagnostic. * d-lang.cc (d_handle_option): Same. (d_parse_file): Same. * decl.cc: Remove a trailing period from a diagnostic. * expr.cc: Use a directive for an apostrophe. * toir.cc: Quote keywords, operators, and types in diagnostics. * typeinfo.cc (build_typeinfo): Quote an option name in a diagnostic. gcc/fortran/ChangeLog: * gfortranspec.c (append_arg): Spell out the word "argument." gcc/ChangeLog: * config/i386/i386-expand.c (get_element_number): Quote keywords and other internal names in diagnostics. Adjust other diagnostic formatting issues noted by -Wformat-diag. * config/i386/i386-features.c (ix86_mangle_function_version_assembler_name): Same. * config/i386/i386-options.c (ix86_handle_abi_attribute): Same. * config/i386/i386.c (ix86_function_type_abi): Same. (ix86_function_ms_hook_prologue): Same. (classify_argument): Same. (ix86_expand_prologue): Same. (ix86_md_asm_adjust): Same. (ix86_memmodel_check): Same. gcc/ChangeLog: * builtins.c (expand_builtin_atomic_always_lock_free): Quote identifiers, keywords, operators, and types in diagnostics. Correct quoting, spelling, and sentence capitalization issues. (expand_builtin_atomic_is_lock_free): Same. (fold_builtin_next_arg): Same. * cfgexpand.c (expand_one_var): Same. (tree_conflicts_with_clobbers_p): Same. (expand_asm_stmt): Same. (verify_loop_structure): Same. * cgraphunit.c (process_function_and_variable_attributes): Same. * collect-utils.c (collect_execute): Same. * collect2.c (maybe_run_lto_and_relink): Same. (is_lto_object_file): Same. (scan_prog_file): Same. * convert.c (convert_to_real_1): Same. * dwarf2out.c (dwarf2out_begin_prologue): Same. * except.c (verify_eh_tree): Same. * gcc.c (execute): Same. (eval_spec_function): Same. (run_attempt): Same. (driver::set_up_specs): Same. (compare_debug_auxbase_opt_spec_function): Same. * gcov-tool.c (unlink_gcda_file): Same. (do_merge): Same. (do_rewrite): Same. * gcse.c (gcse_or_cprop_is_too_expensive): Same. * gimplify.c (gimplify_asm_expr): Same. (gimplify_adjust_omp_clauses): Same. * hsa-gen.c (gen_hsa_addr_insns): Same. (gen_hsa_insns_for_load): Same. (gen_hsa_cmp_insn_from_gimple): Same. (gen_hsa_insns_for_operation_assignment): Same. (gen_get_level): Same. (gen_hsa_alloca): Same. (omp_simple_builtin::generate): Same. (gen_hsa_atomic_for_builtin): Same. (gen_hsa_insns_for_call): Same. * input.c (dump_location_info): Same. * ipa-devirt.c (compare_virtual_tables): Same. * ira.c (ira_setup_eliminable_regset): Same. * lra-assigns.c (lra_assign): Same. * lra-constraints.c (lra_constraints): Same. * lto-streamer-in.c (lto_input_mode_table): Same. * lto-wrapper.c (get_options_from_collect_gcc_options): Same. (merge_and_complain): Same. (compile_offload_image): Same. (compile_images_for_offload_targets): Same. (debug_objcopy): Same. (run_gcc): Same. (main): Same. * opts.c (print_specific_help): Same. (parse_no_sanitize_attribute): Same. (print_help): Same. (handle_param): Same. * plugin.c (add_new_plugin): Same. (parse_plugin_arg_opt): Same. (try_init_one_plugin): Same. * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords, operators, and types in diagnostics. Correct quoting and spelling issues. * read-rtl-function.c (parse_edge_flag_token): Same. (function_reader::parse_enum_value): Same. * reg-stack.c (check_asm_stack_operands): Same. * regcprop.c (validate_value_data): Same. * sched-rgn.c (make_pass_sched_fusion): Same. * stmt.c (check_unique_operand_names): Same. * targhooks.c (default_target_option_pragma_parse): Same. * tlink.c (recompile_files): Same. * toplev.c (process_options): Same. (do_compile): Same. * trans-mem.c (diagnose_tm_1): Same. (ipa_tm_scan_irr_block): Same. (ipa_tm_diagnose_transaction): Same. * tree-cfg.c (verify_address): Same. Use get_tree_code_name to format a tree code name in a diagnostic. (verify_types_in_gimple_min_lval): Same. (verify_types_in_gimple_reference): Same. (verify_gimple_call): Same. (verify_gimple_assign_unary): Same. (verify_gimple_assign_binary): Same. (verify_gimple_assign_ternary): Same. (verify_gimple_assign_single): Same. (verify_gimple_switch): Same. (verify_gimple_label): Same. (verify_gimple_phi): Same. (verify_gimple_in_seq): Same. (verify_eh_throw_stmt_node): Same. (collect_subblocks): Same. (gimple_verify_flow_info): Same. (do_warn_unused_result): Same. * tree-inline.c (expand_call_inline): Same. * tree-into-ssa.c (update_ssa): Same. * tree.c (tree_int_cst_elt_check_failed): Same. (tree_vec_elt_check_failed): Same. (omp_clause_operand_check_failed): Same. (verify_type_variant): Same. (verify_type): Same. * value-prof.c (verify_histograms): Same. * varasm.c (assemble_start_function): Same. gcc/lto/ChangeLog: * lto-dump.c (lto_main): Same. * lto.c (stream_out): Same. gcc/objc/ChangeLog: * objc-act.c (objc_begin_catch_clause): Quote keywords and options in diagnostics. (objc_build_throw_stmt): Same. (objc_finish_message_expr): Same. (get_super_receiver): Same. * objc-next-runtime-abi-01.c (objc_next_runtime_abi_01_init): Spell out "less than" in English./ * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init): Spell out "greater" in English. gcc/testsuite/ChangeLog: * c-c++-common/Wbool-operation-1.c: Adjust text of expected diagnostics. * c-c++-common/Wvarargs-2.c: Same. * c-c++-common/Wvarargs.c: Same. * c-c++-common/pr51768.c: Same. * c-c++-common/tm/inline-asm.c: Same. * c-c++-common/tm/safe-1.c: Same. * g++.dg/asm-qual-1.C: Same. * g++.dg/asm-qual-3.C: Same. * g++.dg/conversion/dynamic1.C: Same. * g++.dg/cpp0x/constexpr-89599.C: Same. * g++.dg/cpp0x/constexpr-cast.C: Same. * g++.dg/cpp0x/constexpr-shift1.C: Same. * g++.dg/cpp0x/lambda/lambda-conv11.C: Same. * g++.dg/cpp0x/nullptr04.C: Same. * g++.dg/cpp0x/static_assert12.C: Same. * g++.dg/cpp0x/static_assert8.C: Same. * g++.dg/cpp1y/lambda-conv1.C: Same. * g++.dg/cpp1y/pr79393-3.C: Same. * g++.dg/cpp1y/static_assert1.C: Same. * g++.dg/cpp1z/constexpr-if4.C: Same. * g++.dg/cpp1z/constexpr-if5.C: Same. * g++.dg/cpp1z/constexpr-if9.C: Same. * g++.dg/eh/goto2.C: Same. * g++.dg/eh/goto3.C: Same. * g++.dg/expr/static_cast8.C: Same. * g++.dg/ext/flexary5.C: Same. * g++.dg/ext/utf-array-short-wchar.C: Same. * g++.dg/ext/utf-array.C: Same. * g++.dg/ext/utf8-2.C: Same. * g++.dg/gomp/loop-4.C: Same. * g++.dg/gomp/macro-4.C: Same. * g++.dg/gomp/udr-1.C: Same. * g++.dg/init/initializer-string-too-long.C: Same. * g++.dg/other/offsetof9.C: Same. * g++.dg/ubsan/pr63956.C: Same. * g++.dg/warn/Wbool-operation-1.C: Same. * g++.dg/warn/Wtype-limits-Wextra.C: Same. * g++.dg/warn/Wtype-limits.C: Same. * g++.dg/wrappers/pr88680.C: Same. * g++.old-deja/g++.mike/eh55.C: Same. * gcc.dg/Wsign-compare-1.c: Same. * gcc.dg/Wtype-limits-Wextra.c: Same. * gcc.dg/Wtype-limits.c: Same. * gcc.dg/Wunknownprag.c: Same. * gcc.dg/Wunsuffixed-float-constants-1.c: Same. * gcc.dg/asm-6.c: Same. * gcc.dg/asm-qual-1.c: Same. * gcc.dg/cast-1.c: Same. * gcc.dg/cast-2.c: Same. * gcc.dg/cast-3.c: Same. * gcc.dg/cpp/source_date_epoch-2.c: Same. * gcc.dg/debug/pr85252.c: Same. * gcc.dg/dfp/cast-bad.c: Same. * gcc.dg/format/gcc_diag-1.c: Same. * gcc.dg/format/gcc_diag-11.c: Same.New test. * gcc.dg/gcc_diag-11.c: Same.New test. * gcc.dg/gnu-cond-expr-2.c: Same. * gcc.dg/gnu-cond-expr-3.c: Same. * gcc.dg/gomp/macro-4.c: Same. * gcc.dg/init-bad-1.c: Same. * gcc.dg/init-bad-2.c: Same. * gcc.dg/init-bad-3.c: Same. * gcc.dg/pr27528.c: Same. * gcc.dg/pr48552-1.c: Same. * gcc.dg/pr48552-2.c: Same. * gcc.dg/pr59846.c: Same. * gcc.dg/pr61096-1.c: Same. * gcc.dg/pr8788-1.c: Same. * gcc.dg/pr90082.c: Same. * gcc.dg/simd-2.c: Same. * gcc.dg/spellcheck-params-2.c: Same. * gcc.dg/spellcheck-params.c: Same. * gcc.dg/strlenopt-49.c: Same. * gcc.dg/tm/pr52141.c: Same. * gcc.dg/torture/pr51106-1.c: Same. * gcc.dg/torture/pr51106-2.c: Same. * gcc.dg/utf-array-short-wchar.c: Same. * gcc.dg/utf-array.c: Same. * gcc.dg/utf8-2.c: Same. * gcc.dg/warn-sprintf-no-nul.c: Same. * gcc.target/i386/asm-flag-0.c: Same. * gcc.target/i386/inline_error.c: Same. * gcc.target/i386/pr30848.c: Same. * gcc.target/i386/pr39082-1.c: Same. * gcc.target/i386/pr39678.c: Same. * gcc.target/i386/pr57756.c: Same. * gcc.target/i386/pr68843-1.c: Same. * gcc.target/i386/pr79804.c: Same. * gcc.target/i386/pr82673.c: Same. * obj-c++.dg/class-protocol-1.mm: Same. * obj-c++.dg/exceptions-3.mm: Same. * obj-c++.dg/exceptions-4.mm: Same. * obj-c++.dg/exceptions-5.mm: Same. * obj-c++.dg/exceptions-6.mm: Same. * obj-c++.dg/method-12.mm: Same. * obj-c++.dg/method-13.mm: Same. * obj-c++.dg/method-6.mm: Same. * obj-c++.dg/method-7.mm: Same. * obj-c++.dg/method-9.mm: Same. * obj-c++.dg/method-lookup-1.mm: Same. * obj-c++.dg/proto-lossage-4.mm: Same. * obj-c++.dg/protocol-qualifier-2.mm: Same. * objc.dg/call-super-2.m: Same. * objc.dg/class-protocol-1.m: Same. * objc.dg/desig-init-1.m: Same. * objc.dg/exceptions-3.m: Same. * objc.dg/exceptions-4.m: Same. * objc.dg/exceptions-5.m: Same. * objc.dg/exceptions-6.m: Same. * objc.dg/method-19.m: Same. * objc.dg/method-2.m: Same. * objc.dg/method-5.m: Same. * objc.dg/method-6.m: Same. * objc.dg/method-7.m: Same. * objc.dg/method-lookup-1.m: Same. * objc.dg/proto-hier-1.m: Same. * objc.dg/proto-lossage-4.m: Same. From-SVN: r271338
2019-03-11Wrap option names in gcc internal messages with %< and %>.Martin Liska3-3/+3
2019-03-11 Martin Liska <mliska@suse.cz> * check-internal-format-escaping.py: New file. 2019-03-11 Martin Liska <mliska@suse.cz> * builtins.c (expand_builtin_thread_pointer): Wrap an option name in a string format message and fix GNU coding style. (expand_builtin_set_thread_pointer): Likewise. * common/config/aarch64/aarch64-common.c (aarch64_rewrite_selected_cpu): Likewise. * common/config/alpha/alpha-common.c (alpha_handle_option): Likewise. * common/config/arc/arc-common.c (arc_handle_option): Likewise. * common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise. * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise. * common/config/i386/i386-common.c (ix86_handle_option): Likewise. * common/config/ia64/ia64-common.c (ia64_handle_option): Likewise. * common/config/m68k/m68k-common.c (m68k_handle_option): Likewise. * common/config/msp430/msp430-common.c (msp430_handle_option): Likewise. * common/config/nds32/nds32-common.c (nds32_handle_option): Likewise. * common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option): Likewise. * common/config/riscv/riscv-common.c (riscv_subset_list::parsing_subset_version): Likewise. (riscv_subset_list::parse_std_ext): Likewise. (riscv_subset_list::parse_sv_or_non_std_ext): Likewise. (riscv_subset_list::parse): Likewise. * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise. * config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise. (aarch64_override_options_internal): Likewise. (aarch64_validate_mcpu): Likewise. (aarch64_validate_march): Likewise. (aarch64_validate_mtune): Likewise. (aarch64_override_options): Likewise. * config/alpha/alpha.c (alpha_option_override): Likewise. * config/arc/arc.c (arc_init): Likewise. (parse_mrgf_banked_regs_option): Likewise. (arc_override_options): Likewise. (arc_expand_builtin_aligned): Likewise. * config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise. (arm_expand_builtin): Likewise. * config/arm/arm.c (arm_option_check_internal): Likewise. (arm_configure_build_target): Likewise. (arm_option_override): Likewise. (arm_options_perform_arch_sanity_checks): Likewise. (arm_handle_cmse_nonsecure_entry): Likewise. (arm_handle_cmse_nonsecure_call): Likewise. (arm_tls_referenced_p): Likewise. (thumb1_expand_prologue): Likewise. * config/avr/avr.c (avr_option_override): Likewise. * config/bfin/bfin.c (bfin_option_override): Likewise. * config/c6x/c6x.c (c6x_option_override): Likewise. * config/cr16/cr16.c (cr16_override_options): Likewise. * config/cris/cris.c (cris_option_override): Likewise. * config/csky/csky.c (csky_handle_isr_attribute): Likewise. * config/darwin-c.c (macosx_version_as_macro): Likewise. * config/darwin.c (darwin_override_options): Likewise. * config/frv/frv.c (frv_expand_builtin): Likewise. * config/h8300/h8300.c (h8300_option_override): Likewise. * config/i386/i386.c (parse_mtune_ctrl_str): Likewise. (ix86_option_override_internal): Likewise. (warn_once_call_ms2sysv_xlogues): Likewise. (ix86_expand_prologue): Likewise. (split_stack_prologue_scratch_regno): Likewise. (ix86_warn_parameter_passing_abi): Likewise. * config/ia64/ia64.c (fix_range): Likewise. * config/m68k/m68k.c (m68k_option_override): Likewise. * config/microblaze/microblaze.c (microblaze_option_override): Likewise. * config/mips/mips.c (mips_emit_probe_stack_range): Likewise. (mips_set_compression_mode): Likewise. * config/mmix/mmix.c (mmix_option_override): Likewise. * config/mn10300/mn10300.c (mn10300_option_override): Likewise. * config/msp430/msp430.c (msp430_option_override): Likewise. * config/nds32/nds32.c (nds32_option_override): Likewise. * config/nios2/nios2.c (nios2_custom_check_insns): Likewise. (nios2_option_override): Likewise. (nios2_expand_custom_builtin): Likewise. * config/nvptx/mkoffload.c (main): Likewise. * config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise. * config/pa/pa.c (fix_range): Likewise. (pa_option_override): Likewise. * config/riscv/riscv.c (riscv_parse_cpu): Likewise. (riscv_option_override): Likewise. * config/rl78/rl78.c (rl78_option_override): Likewise. * config/rs6000/aix61.h: Likewise. * config/rs6000/aix71.h: Likewise. * config/rs6000/aix72.h: Likewise. * config/rs6000/driver-rs6000.c (elf_platform): Likewise. * config/rs6000/freebsd64.h: Likewise. * config/rs6000/linux64.h: Likewise. * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise. (rs6000_expand_zeroop_builtin): Likewise. (rs6000_expand_mtfsb_builtin): Likewise. (rs6000_expand_set_fpscr_rn_builtin): Likewise. (rs6000_expand_set_fpscr_drn_builtin): Likewise. (rs6000_invalid_builtin): Likewise. (rs6000_expand_split_stack_prologue): Likewise. * config/rs6000/rtems.h: Likewise. * config/rx/rx.c (valid_psw_flag): Likewise. (rx_expand_builtin): Likewise. * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise. * config/s390/s390.c (s390_expand_builtin): Likewise. (s390_function_profiler): Likewise. (s390_option_override_internal): Likewise. (s390_option_override): Likewise. * config/sh/sh.c (sh_option_override): Likewise. (sh_builtin_saveregs): Likewise. (sh_fix_range): Likewise. * config/sh/vxworks.h: Likewise. * config/sparc/sparc.c (sparc_option_override): Likewise. * config/spu/spu.c (spu_option_override): Likewise. (fix_range): Likewise. * config/visium/visium.c (visium_option_override): Likewise. (visium_handle_interrupt_attr): Likewise. * config/xtensa/xtensa.c (xtensa_option_override): Likewise. * dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise. (dbg_cnt_process_opt): Likewise. * dwarf2out.c (output_dwarf_version): Likewise. * except.c (expand_eh_return): Likewise. * gcc.c (defined): Likewise. (driver_handle_option): Likewise. (process_command): Likewise. (compare_files): Likewise. (driver::prepare_infiles): Likewise. (driver::do_spec_on_infiles): Likewise. (driver::maybe_run_linker): Likewise. * omp-offload.c (oacc_parse_default_dims): Likewise. * opts-global.c (handle_common_deferred_options): Likewise. * opts.c (parse_sanitizer_options): Likewise. (common_handle_option): Likewise. (enable_warning_as_error): Likewise. * passes.c (enable_disable_pass): Likewise. * plugin.c (parse_plugin_arg_opt): Likewise. (default_plugin_dir_name): Likewise. * targhooks.c (default_expand_builtin_saveregs): Likewise. (default_pch_valid_p): Likewise. * toplev.c (init_asm_output): Likewise. (process_options): Likewise. (toplev::run_self_tests): Likewise. * tree-cfg.c (verify_gimple_call): Likewise. * tree-inline.c (inline_forbidden_p_stmt): Likewise. (tree_inlinable_function_p): Likewise. * var-tracking.c (vt_find_locations): Likewise. 2019-03-11 Martin Liska <mliska@suse.cz> * gcc-interface/misc.c (gnat_post_options) Wrap an option name in a string format message and fix GNU coding style.: 2019-03-11 Martin Liska <mliska@suse.cz> * c-attribs.c (handle_nocf_check_attribute): Wrap an option name in a string format message and fix GNU coding style. * c-common.c (vector_types_convertible_p): Likewise. (c_build_vec_perm_expr): Likewise. * c-indentation.c (get_visual_column): Likewise. * c-opts.c (c_common_handle_option): Likewise. (c_common_post_options): Likewise. (sanitize_cpp_opts): Likewise. * c-pch.c (c_common_pch_pragma): Likewise. * c-pragma.c (handle_pragma_pack): Likewise. 2019-03-11 Martin Liska <mliska@suse.cz> * c-decl.c (check_for_loop_decls): Wrap an option name in a string format message and fix GNU coding style. * c-parser.c (c_parser_declspecs): Likewise. 2019-03-11 Martin Liska <mliska@suse.cz> * call.c (convert_arg_to_ellipsis): Wrap an option name in a string format message and fix GNU coding style. (build_over_call): Likewise. * class.c (check_field_decl): Likewise. (layout_nonempty_base_or_field): Likewise. * constexpr.c (cxx_eval_loop_expr): Likewise. * cvt.c (type_promotes_to): Likewise. * decl.c (cxx_init_decl_processing): Likewise. (mark_inline_variable): Likewise. (grokdeclarator): Likewise. * decl2.c (record_mangling): Likewise. * error.c (maybe_warn_cpp0x): Likewise. * except.c (doing_eh): Likewise. * mangle.c (maybe_check_abi_tags): Likewise. * parser.c (cp_parser_diagnose_invalid_type_name): Likewise. (cp_parser_userdef_numeric_literal): Likewise. (cp_parser_primary_expression): Likewise. (cp_parser_unqualified_id): Likewise. (cp_parser_pseudo_destructor_name): Likewise. (cp_parser_builtin_offsetof): Likewise. (cp_parser_lambda_expression): Likewise. (cp_parser_lambda_introducer): Likewise. (cp_parser_lambda_declarator_opt): Likewise. (cp_parser_selection_statement): Likewise. (cp_parser_init_statement): Likewise. (cp_parser_decomposition_declaration): Likewise. (cp_parser_function_specifier_opt): Likewise. (cp_parser_static_assert): Likewise. (cp_parser_simple_type_specifier): Likewise. (cp_parser_namespace_definition): Likewise. (cp_parser_using_declaration): Likewise. (cp_parser_ctor_initializer_opt_and_function_body): Likewise. (cp_parser_initializer_list): Likewise. (cp_parser_type_parameter_key): Likewise. (cp_parser_member_declaration): Likewise. (cp_parser_try_block): Likewise. (cp_parser_std_attribute_spec): Likewise. (cp_parser_requires_clause_opt): Likewise. * pt.c (check_template_variable): Likewise. (check_default_tmpl_args): Likewise. (push_tinst_level_loc): Likewise. (instantiate_pending_templates): Likewise. (invalid_nontype_parm_type_p): Likewise. * repo.c (get_base_filename): Likewise. * rtti.c (typeid_ok_p): Likewise. (build_dynamic_cast_1): Likewise. * tree.c (maybe_warn_parm_abi): Likewise. 2019-03-11 Martin Liska <mliska@suse.cz> * decl.c (match_record_decl): Wrap an option name in a string format message and fix GNU coding style. (gfc_match_pointer): Likewise. * expr.c (find_array_section): Likewise. * intrinsic.c (gfc_is_intrinsic): Likewise. * options.c (gfc_post_options): Likewise. * primary.c (match_integer_constant): Likewise. * trans-common.c (translate_common): Likewise. 2019-03-11 Martin Liska <mliska@suse.cz> * lto-lang.c (lto_post_options): Wrap an option name in a string format message and fix GNU coding style. * lto-symtab.c (lto_symtab_merge_decls_2): Likewise. 2019-03-11 Martin Liska <mliska@suse.cz> * g++.dg/conversion/simd3.C (foo): Wrap option names with apostrophe character. * g++.dg/cpp1z/decomp3.C (test): Likewise. (test3): Likewise. * g++.dg/cpp1z/decomp4.C (test): Likewise. * g++.dg/cpp1z/decomp44.C (foo): Likewise. * g++.dg/cpp1z/decomp45.C (f): Likewise. * g++.dg/opt/pr34036.C: Likewise. * g++.dg/spellcheck-c++-11-keyword.C: Likewise. * gcc.dg/c90-fordecl-1.c (foo): Likewise. * gcc.dg/cpp/dir-only-4.c: Likewise. * gcc.dg/cpp/dir-only-5.c: Likewise. * gcc.dg/cpp/pr71591.c: Likewise. * gcc.dg/format/opt-1.c: Likewise. * gcc.dg/format/opt-2.c: Likewise. * gcc.dg/format/opt-3.c: Likewise. * gcc.dg/format/opt-4.c: Likewise. * gcc.dg/format/opt-5.c: Likewise. * gcc.dg/format/opt-6.c: Likewise. * gcc.dg/pr22231.c: Likewise. * gcc.dg/pr33007.c: Likewise. * gcc.dg/simd-1.c (hanneke): Likewise. * gcc.dg/simd-5.c: Likewise. * gcc.dg/simd-6.c: Likewise. * gcc.dg/spellcheck-options-14.c: Likewise. * gcc.dg/spellcheck-options-15.c: Likewise. * gcc.dg/spellcheck-options-16.c: Likewise. * gcc.dg/spellcheck-options-17.c: Likewise. * gcc.dg/tree-ssa/pr23109.c: Likewise. * gcc.dg/tree-ssa/recip-5.c: Likewise. * gcc.target/i386/cet-notrack-1a.c (func): Likewise. (__attribute__): Likewise. * gcc.target/i386/cet-notrack-icf-1.c (fn3): Likewise. * gcc.target/i386/cet-notrack-icf-3.c (__attribute__): Likewise. * gcc.target/powerpc/warn-1.c: Likewise. * gcc.target/powerpc/warn-2.c: Likewise. From-SVN: r269586
2019-01-01Update copyright years.Jakub Jelinek3-3/+3
From-SVN: r267494
2018-08-16[PATCH] Macro definition parameter parsingNathan Sidwell2-8/+8
https://gcc.gnu.org/ml/gcc-patches/2018-08/msg00977.html libcpp/ * internal.h (_cpp_save_parameter): Take parmno, not macro. (_cpp_unsave_parameters): Declare. * macro.c (_cpp_save_parameter): Take parm number, not macro. Return true on success. (_cpp_unsave_parameters): New. (parse_params): Take parm_no and variadic pointers, not macro. Reimplement parsing logic. (create_iso_definition): Adjust parse_params changes. Call _cpp_unsave_parameters here. (_cpp_create_definition): Don't unsave params here. * traditional.c (scan_parameters): Take n_param pointer, adjust. (_cpp_create_trad_definition): Ajust scan_parameters change. Call _cpp_unsave_parameters. gcc/testsuite/ * gcc.dg/cpp/macsyntx.c: Adjust expected errors. * gcc.dg/cpp/macsyntx2.c: likewise. From-SVN: r263600
2018-08-15diagnostics: add labeling of source rangesDavid Malcolm1-0/+2
This patch adds the ability to label source ranges within a rich_location, to be printed by diagnostic_show_locus. For example: pr69554-1.c:11:18: error: invalid operands to binary + (have 'const char *' and 'const char *') 11 | return (p + 1) + (q + 1); | ~~~~~~~ ^ ~~~~~~~ | | | | | const char * | const char * The patch implements labels for various type mismatch errors in the C and C++ frontends, and in -Wformat. I implemented it wherever accurate location information was guaranteed (there are other places that could benefit, but we need better location information in those places). The labels can be disabled via -fno-diagnostics-show-labels. Similarly: param-type-mismatch.C: In function 'int test_1(int, int, float)': param-type-mismatch.C:11:27: error: invalid conversion from 'int' to 'const char*' [-fpermissive] 11 | return callee_1 (first, second, third); | ^~~~~~ | | | int param-type-mismatch.C:7:43: note: initializing argument 2 of 'int callee_1(int, const char*, float)' 7 | extern int callee_1 (int one, const char *two, float three); | ~~~~~~~~~~~~^~~ where the first "error" describing the bad argument gets a label describing the type inline (since it's non-obvious from "second"). The "note" describing the type of the param of the callee *doesn't* get a label, since that information is explicit there in the source ("const char *two"). The idea is that in any diagnostic where two aspects of the source aren't in sync it ought to be easier for the user if we directly show them the mismatching aspects inline (e.g. types). As well as type mismatch errors, perhaps labels could also be used for buffer overflow warnings, for describing the capacity of the destination buffer vs the size of what's being written: sprintf (buf, "filename: %s\n", file); ^~~ ~~~~~~~~~~~^~~ | | capacity: 32 10 + strlen(file) + 2 or somesuch. Another idea might be for macro expansion warnings: warning: repeated side effects in macro expansion... x = MIN (p++, q++); ~~~~^~~~~~~~~~ note: ...expanded here as #define MIN(X,Y) (X<Y?X:Y) ^~~ ~ ~ ~ ~ ~ ~ | | | | | | | | | | | q++ | | | | p++ | | | q++ | q++ p++ p++ The patch removes some logic from multiline.exp which special-cased lines ending with a '|' character (thus complicating testing of this patch). I believe that this was a vestige from experiments I did to support strippng dg directives from the output; it was present in the earliest version of multiline.exp I posted: "[RFC, stage1] Richer source location information for gcc 6 (location ranges etc)" https://gcc.gnu.org/ml/gcc-patches/2015-03/msg00837.html and I believe was neved used. gcc/c-family/ChangeLog: * c-format.c: Include "selftest-diagnostic.h" and "gcc-rich-location.h". (format_warning_at_char): Pass NULL for new label params of format_warning_va. (class indirection_suffix): New class. (class range_label_for_format_type_mismatch): New class. (format_type_warning): Move logic for generating "*" suffix to class indirection_suffix. Create "fmt_label" and "param_label" to show their types, and pass them to the format_warning_at_substring calls. (selftest::test_type_mismatch_range_labels): New test. (selftest::c_format_c_tests): Call it. gcc/c/ChangeLog: * c-objc-common.c: Include "gcc-rich-location.h". (c_tree_printer): Move implemenation of '%T' to... (print_type): ...this new function. (range_label_for_type_mismatch::get_text): New function. * c-typeck.c (convert_for_assignment): Add type labels to the rhs range for the various ic_argpass cases. (class maybe_range_label_for_tree_type_mismatch): New class. (build_binary_op): Use it when calling binary_op_error. gcc/cp/ChangeLog: * call.c: Include "gcc-rich-location.h". (convert_like_real): Add range label for "invalid conversion" diagnostic. (perform_implicit_conversion_flags): Add type label to the "could not convert" error. * error.c: Include "gcc-rich-location.h". (range_label_for_type_mismatch::get_text): New function. * typeck.c (convert_for_assignment): Add type label to the "cannot convert" error if a location is available. gcc/ChangeLog: * common.opt (fdiagnostics-show-labels): New option. * diagnostic-show-locus.c (class layout_range): Add field "m_label". (class layout): Add field "m_show_labels_p". (layout_range::layout_range): Add param "label" and use it to initialize m_label. (make_range): Pass in NULL for new "label" param of layout_range's ctor. (layout::layout): Initialize m_show_labels_p. (layout::maybe_add_location_range): Pass in loc_range->m_label when constructing layout_range instances. (struct line_label): New struct. (layout::print_any_labels): New member function. (layout::print_line): Call it if label-printing is enabled. (selftest::test_one_liner_labels): New test. (selftest::test_diagnostic_show_locus_one_liner): Call it. * diagnostic.c (diagnostic_initialize): Initialize context->show_labels_p. * diagnostic.h (struct diagnostic_context): Add field "show_labels_p". * doc/invoke.texi (Diagnostic Message Formatting Options): Add -fno-diagnostics-show-labels. * dwarf2out.c (gen_producer_string): Add OPT_fdiagnostics_show_labels to the ignored options. * gcc-rich-location.c (gcc_rich_location::add_expr): Add "label" param. (gcc_rich_location::maybe_add_expr): Likewise. * gcc-rich-location.h (gcc_rich_location::gcc_rich_location): Add label" param, defaulting to NULL. (gcc_rich_location::add_expr): Add "label" param. (gcc_rich_location::maybe_add_expr): Likewise. (class text_range_label): New class. (class range_label_for_type_mismatch): New class. * gimple-ssa-sprintf.c (fmtwarn): Pass NULL for new label params of format_warning_va. (fmtwarn_n): Likewise for new params of format_warning_n_va. * lto-wrapper.c (merge_and_complain): Add OPT_fdiagnostics_show_labels to the "pick one setting" options. (append_compiler_options): Likewise to the dropped options. (append_diag_options): Likewise to the passed-on options. * opts.c (common_handle_option): Handle the new option. * selftest-diagnostic.c (test_diagnostic_context::test_diagnostic_context): Enable show_labels_p. * substring-locations.c: Include "gcc-rich-location.h". (format_warning_n_va): Add "fmt_label" and "param_label" params and use them as appropriate. (format_warning_va): Add "fmt_label" and "param_label" params, passing them on to format_warning_n_va. (format_warning_at_substring): Likewise. (format_warning_at_substring_n): Likewise. * substring-locations.h (format_warning_va): Add "fmt_label" and "param_label" params. (format_warning_n_va): Likewise. (format_warning_at_substring): Likewise. (format_warning_at_substring_n): Likewise. * toplev.c (general_init): Initialize global_dc->show_labels_p. gcc/testsuite/ChangeLog: * g++.dg/diagnostic/aka3.C: New test. * g++.dg/diagnostic/param-type-mismatch-2.C: Update expected output to show range labels. * g++.dg/diagnostic/param-type-mismatch.C: Likewise. * g++.dg/plugin/plugin.exp (plugin_test_list): Add... * g++.dg/plugin/show-template-tree-color-labels.C: New test. * gcc.dg/bad-binary-ops.c: Update expected output to show range labels. Add an "aka" example. * gcc.dg/cpp/pr66415-1.c: Update expected output to show range labels. * gcc.dg/format/diagnostic-ranges.c: Likewise. * gcc.dg/format/pr72858.c: Likewise. * gcc.dg/format/pr78498.c: Likewise. * gcc.dg/param-type-mismatch.c: Add "-Wpointer-sign" to options. Update expected output to show range labels. Add examples of -Wincompatible-pointer-types and -Wpointer-sign for parameters. * gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers.c: Update expected output to show range labels. * gcc.dg/plugin/diagnostic-test-show-locus-bw.c: Likewise. (test_very_wide_line): Adjust so that label is at left-clipping boundary. (test_very_wide_line_2): New test. * gcc.dg/plugin/diagnostic-test-show-locus-color-line-numbers.c: Update expected output to show range labels. * gcc.dg/plugin/diagnostic-test-show-locus-color.c: Likewise. * gcc.dg/plugin/diagnostic-test-show-locus-no-labels.c: New test. * gcc.dg/plugin/diagnostic_plugin_show_trees.c (show_tree): Update for new param to gcc_rich_location::add_expr. * gcc.dg/plugin/diagnostic_plugin_test_show_locus.c (add_range): Add "label" param. (test_show_locus): Add examples of labels to various tests. Tweak the "very wide_line" test case and duplicate it, to cover the boundary values for clipping of labels against the left-margin. * gcc.dg/plugin/plugin.exp (plugin_test_list): Add diagnostic-test-show-locus-no-labels.c. * gcc.dg/pr69554-1.c: Update expected output to show range labels. Update line numbers of dg-locus directives. * gcc.dg/pr69627.c: Update expected output to show range labels. * lib/multiline.exp (proc _build_multiline_regex): Remove special-case handling of lines with trailing '|'. libcpp/ChangeLog: * include/line-map.h (struct location_range): Add "m_label" field. (class rich_location): Add description of labels to leading comment. (rich_location::rich_location): Add "label" param, defaulting to NULL. (rich_location::add_range): Likewise. (struct label_text): New struct. (class range_label): New abstract base class. * line-map.c (rich_location::rich_location): Add "label" param; use it. (rich_location::add_range): Likewise. From-SVN: r263564
2018-07-18re PR c/69558 (glib2 warning pragmas stopped working)Bernd Edlinger1-4/+4
libcpp: 2018-07-18 Bernd Edlinger <bernd.edlinger@hotmail.de> PR 69558 * macro.c (enter_macro_context): Change the location info for builtin macros and _Pragma from location of the closing parenthesis to location of the macro expansion point. testsuite: 2018-07-18 Bernd Edlinger <bernd.edlinger@hotmail.de> PR 69558 * c-c++-common/cpp/diagnostic-pragma-2.c: New test. * c-c++-common/pr69558.c: Remove xfail. * gcc.dg/cpp/builtin-macro-1.c: Adjust test expectations. * gcc.dg/pr61817-1.c: Likewise. * gcc.dg/pr61817-2.c: Likewise. * g++.dg/plugin/pragma_plugin.c: Warn at expansion_point_location. From-SVN: r262861
2018-07-17lex.c (_cpp_lex_direct): Use CPP_DL_NOTE instead of CPP_DL_PEDWARN...Jakub Jelinek4-3/+15
* lex.c (_cpp_lex_direct): Use CPP_DL_NOTE instead of CPP_DL_PEDWARN, CPP_DL_WARNING or CPP_DL_ERROR for note that diagnostics for C++ style comments is reported only once per file and guard those calls on the preceding cpp_error returning true. * gcc.dg/cpp/pr61854-c90.c (foo): Expect a note, rather than error. * gcc.dg/cpp/pr61854-c94.c (foo): Likewise. * gcc.dg/cpp/pr61854-4.c (foo): Likewise. * gcc.dg/cpp/pr61854-8.c: New test. From-SVN: r262832
2018-01-31re PR preprocessor/69869 (internal compiler error: Segmentation fault in ↵Jakub Jelinek1-0/+8
call to skip_macro_block_comment when using '-traditional-cpp') PR preprocessor/69869 * traditional.c (skip_macro_block_comment): Return bool, true if the macro block comment is unterminated. (copy_comment): Use return value from skip_macro_block_comment instead of always false. * gcc.dg/cpp/trad/pr69869.c: New test. From-SVN: r257220
2018-01-03Update copyright years.Jakub Jelinek3-3/+3
From-SVN: r256169
2017-11-17re PR testsuite/82997 (gcc.dg/cpp/sysmac1.c and gcc.dg/cpp/macsyntx.c fail ↵Jakub Jelinek5-6/+114
starting with r254707) PR testsuite/82997 * gcc.dg/cpp/macsyntx.c (var1, rest): Don't expect "requires at least one" warning. * gcc.dg/cpp/sysmac1.c (foo): Likewise. * gcc.dg/cpp/macsyntx2.c: New test. * gcc.dg/cpp/sysmac3.c: New test. * gcc.dg/cpp/sysmac3.h: New file. From-SVN: r254857
2017-11-13[Diagnostic Patch] don't print column zeroNathan Sidwell30-371/+371
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg01911.html * diagnostic.c (maybe_line_and_column): New. (diagnostic_get_location_text): Use it. (diagnostic_report_current_module): Likewise. (test_diagnostic_get_location_text): Add tests. * lib/gcc-dg.exp (process-message): Use -: for no column. * c-c++-common/cilk-plus/CK/cilk_for_grain_errors.c: Mark elided column messages. * c-c++-common/cpp/pr58844-1.c: Likewise. * c-c++-common/cpp/pr58844-2.c: Likewise. * c-c++-common/cpp/warning-zero-location.c: Likewise. * g++.dg/diagnostic/pr77949.C: Likewise. * g++.dg/gomp/macro-4.C: Likewise. * gcc.dg/Wunknownprag.c: Likewise. * gcc.dg/builtin-redefine.c: Likewise. * gcc.dg/cpp/Wunknown-pragmas-1.c: Likewise. * gcc.dg/cpp/Wunused.c: Likewise. * gcc.dg/cpp/misspelled-directive-1.c: Likewise. * gcc.dg/cpp/redef2.c: Likewise. * gcc.dg/cpp/redef3.c: Likewise. * gcc.dg/cpp/redef4.c: Likewise. * gcc.dg/cpp/trad/Wunused.c: Likewise. * gcc.dg/cpp/trad/argcount.c: Likewise. * gcc.dg/cpp/trad/comment-3.c: Likewise. * gcc.dg/cpp/trad/comment.c: Likewise. * gcc.dg/cpp/trad/defined.c: Likewise. * gcc.dg/cpp/trad/directive.c: Likewise. * gcc.dg/cpp/trad/funlike-3.c: Likewise. * gcc.dg/cpp/trad/funlike.c: Likewise. * gcc.dg/cpp/trad/literals-2.c: Likewise. * gcc.dg/cpp/trad/macro.c: Likewise. * gcc.dg/cpp/trad/pr65238-4.c: Likewise. * gcc.dg/cpp/trad/recurse-1.c: Likewise. * gcc.dg/cpp/trad/recurse-2.c: Likewise. * gcc.dg/cpp/trad/redef2.c: Likewise. * gcc.dg/cpp/ucnid-11.c: Likewise. * gcc.dg/cpp/unc1.c: Likewise. * gcc.dg/cpp/unc2.c: Likewise. * gcc.dg/cpp/unc3.c: Likewise. * gcc.dg/cpp/unc4.c: Likewise. * gcc.dg/cpp/undef2.c: Likewise. * gcc.dg/cpp/warn-redefined-2.c: Likewise. * gcc.dg/cpp/warn-redefined.c: Likewise. * gcc.dg/cpp/warn-unused-macros-2.c: Likewise. * gcc.dg/cpp/warn-unused-macros.c: Likewise. * gcc.dg/empty-source-2.c: Likewise. * gcc.dg/empty-source-3.c: Likewise. * gcc.dg/gomp/macro-4.c: Likewise. * gcc.dg/noncompile/pr35447-1.c: Likewise. * gcc.dg/plugin/location-overflow-test-1.c: Likewise. * gcc.dg/pr20245-1.c: Likewise. * gcc.dg/pr28419.c: Likewise. * gcc.dg/rtl/truncated-rtl-file.c: Likewise. * gcc.dg/unclosed-init.c: Likewise. From-SVN: r254691
2017-05-26Replace absolute line numbers in gcc.dgTom de Vries16-68/+56
2017-05-26 Tom de Vries <tom@codesourcery.com> PR testsuite/80557 * gcc.dg/20011021-1.c: Replace absolute line numbers. * gcc.dg/Wcxx-compat-8.c: Same. * gcc.dg/Wobjsize-1.c: Same. * gcc.dg/Wshadow-local-2.c: Same. * gcc.dg/Wstrict-aliasing-converted-assigned.c: Same. * gcc.dg/anon-struct-6.c: Same. * gcc.dg/asm-wide-1.c: Same. * gcc.dg/builtin-inf-1.c: Same. * gcc.dg/builtin-redefine.c: Same. * gcc.dg/c90-array-lval-6.c: Same. * gcc.dg/c90-array-lval-7.c: Same. * gcc.dg/c90-fordecl-1.c: Same. * gcc.dg/c99-fordecl-2.c: Same. * gcc.dg/cast-lvalue-1.c: Same. * gcc.dg/cast-lvalue-2.c: Same. * gcc.dg/compound-lvalue-1.c: Same. * gcc.dg/cond-lvalue-1.c: Same. * gcc.dg/cpp/20000419-1.c: Same. * gcc.dg/cpp/backslash.c: Same. * gcc.dg/cpp/backslash2.c: Same. * gcc.dg/cpp/macspace1.c: Same. * gcc.dg/cpp/macspace2.c: Same. * gcc.dg/cpp/multiline-2.c: Same. * gcc.dg/cpp/pr27777.c: Same. * gcc.dg/cpp/pr30786.c: Same. * gcc.dg/cpp/pr34602.c: Same. * gcc.dg/cpp/redef1.c: Same. * gcc.dg/cpp/tr-warn1.c: Same. * gcc.dg/cpp/tr-warn3.c: Same. * gcc.dg/cpp/tr-warn6.c: Same. * gcc.dg/cpp/trad/hash.c: Same. * gcc.dg/cpp/trad/redef1.c: Same. * gcc.dg/cpp/ucs.c: Same. * gcc.dg/declspec-10.c: Same. * gcc.dg/declspec-11.c: Same. * gcc.dg/declspec-18.c: Same. * gcc.dg/format/c99-strftime-1.c: Same. * gcc.dg/format/ext-3.c: Same. * gcc.dg/format/pr72858.c: Same. * gcc.dg/gomp/appendix-a/a.24.1.c: Same. * gcc.dg/init-string-1.c: Same. * gcc.dg/label-decl-3.c: Same. * gcc.dg/m-un-2.c: Same. * gcc.dg/nofixed-point-2.c: Same. * gcc.dg/noncompile/20020213-1.c: Same. * gcc.dg/pch/counter-2.c: Same. * gcc.dg/plugin/diagnostic-test-string-literals-2.c: Same. * gcc.dg/pr27528.c: Same. * gcc.dg/pr27953.c: Same. * gcc.dg/pr35899.c: Same. * gcc.dg/pr37561.c: Same. * gcc.dg/pr45461.c: Same. * gcc.dg/pr45750.c: Same. * gcc.dg/pr53196-2.c: Same. * gcc.dg/pr53265.c: Same. * gcc.dg/redecl-1.c: Same. * gcc.dg/tls/thr-init-1.c: Same. * gcc.dg/torture/pr51106-1.c: Same. * gcc.dg/torture/pr51106-2.c: Same. * gcc.dg/uninit-19.c: Same. * gcc.dg/uninit-pr20644.c: Same. From-SVN: r248484
2017-05-24Reinstate absolute line number in gcc.dg/cpp/19940712-1.cTom de Vries1-1/+1
2017-05-24 Tom de Vries <tom@codesourcery.com> * gcc.dg/cpp/19940712-1.c: Reinstate absolute line number. From-SVN: r248418
2017-04-28Remove superfluous "" in dg-(error|warning|message|bogus)Tom de Vries4-5/+5
find $(find -type d -name testsuite) -type f \ | xargs sed -ri 's#(dg-(error|warning|message|bogus).*)" "" \}#\1" }#' 2017-04-28 Tom de Vries <tom@codesourcery.com> * g++.dg/abi/bitfield3.C: Remove superfluous "" in dg-(error|warning|message|bogus). * g++.dg/conversion/dr195-1.C: Same. * g++.dg/conversion/dr195.C: Same. * g++.dg/cpp0x/constexpr-reinterpret1.C: Same. * g++.dg/cpp0x/gen-attrs-14.C: Same. * g++.dg/cpp0x/inline-ns7.C: Same. * g++.dg/cpp0x/variadic105.C: Same. * g++.dg/cpp0x/variadic65.C: Same. * g++.dg/expr/call2.C: Same. * g++.dg/expr/member-of-incomplete-type-1.C: Same. * g++.dg/expr/pmf-1.C: Same. * g++.dg/ext/altivec-types-1.C: Same. * g++.dg/ext/altivec-types-2.C: Same. * g++.dg/ext/altivec-types-3.C: Same. * g++.dg/ext/attrib14.C: Same. * g++.dg/ext/complit1.C: Same. * g++.dg/ext/forscope2.C: Same. * g++.dg/ext/gnu-inline-global-reject.C: Same. * g++.dg/ext/label13.C: Same. * g++.dg/ext/member-attr.C: Same. * g++.dg/ext/visibility/anon7.C: Same. * g++.dg/ext/visibility/visibility-7.C: Same. * g++.dg/ext/vla2.C: Same. * g++.dg/inherit/access2.C: Same. * g++.dg/inherit/covariant12.C: Same. * g++.dg/inherit/covariant14.C: Same. * g++.dg/inherit/namespace-as-base.C: Same. * g++.dg/inherit/template-as-base.C: Same. * g++.dg/lookup/ambig1.C: Same. * g++.dg/lookup/ambig2.C: Same. * g++.dg/lookup/ambig3.C: Same. * g++.dg/lookup/class-member-1.C: Same. * g++.dg/lookup/conv-1.C: Same. * g++.dg/lookup/decl1.C: Same. * g++.dg/lookup/koenig1.C: Same. * g++.dg/lookup/scoped1.C: Same. * g++.dg/lookup/scoped2.C: Same. * g++.dg/lookup/two-stage4.C: Same. * g++.dg/lookup/used-before-declaration.C: Same. * g++.dg/lookup/using.C: Same. * g++.dg/lookup/using17.C: Same. * g++.dg/lookup/using2.C: Same. * g++.dg/other/abstract2.C: Same. * g++.dg/other/classkey1.C: Same. * g++.dg/other/component1.C: Same. * g++.dg/other/const1.C: Same. * g++.dg/other/const2.C: Same. * g++.dg/other/conversion1.C: Same. * g++.dg/other/do1.C: Same. * g++.dg/other/error1.C: Same. * g++.dg/other/error10.C: Same. * g++.dg/other/error3.C: Same. * g++.dg/other/error4.C: Same. * g++.dg/other/error5.C: Same. * g++.dg/other/error8.C: Same. * g++.dg/other/error9.C: Same. * g++.dg/other/field1.C: Same. * g++.dg/other/init1.C: Same. * g++.dg/other/ptrmem2.C: Same. * g++.dg/other/return1.C: Same. * g++.dg/overload/builtin3.C: Same. * g++.dg/overload/error1.C: Same. * g++.dg/overload/error2.C: Same. * g++.dg/overload/koenig2.C: Same. * g++.dg/overload/pmf1.C: Same. * g++.dg/parse/args1.C: Same. * g++.dg/parse/attr3.C: Same. * g++.dg/parse/constant4.C: Same. * g++.dg/parse/crash10.C: Same. * g++.dg/parse/crash18.C: Same. * g++.dg/parse/crash19.C: Same. * g++.dg/parse/crash20.C: Same. * g++.dg/parse/crash21.C: Same. * g++.dg/parse/crash22.C: Same. * g++.dg/parse/crash32.C: Same. * g++.dg/parse/decl-specifier-1.C: Same. * g++.dg/parse/error58.C: Same. * g++.dg/parse/local-class1.C: Same. * g++.dg/parse/non-dependent2.C: Same. * g++.dg/parse/parameter-declaration-1.C: Same. * g++.dg/parse/ptrmem2.C: Same. * g++.dg/parse/ptrmem3.C: Same. * g++.dg/parse/saved1.C: Same. * g++.dg/tc1/dr101.C: Same. * g++.dg/tc1/dr142.C: Same. * g++.dg/tc1/dr176.C: Same. * g++.dg/template/conv4.C: Same. * g++.dg/template/crash56.C: Same. * g++.dg/template/dependent-expr2.C: Same. * g++.dg/template/error1.C: Same. * g++.dg/template/error2.C: Same. * g++.dg/template/explicit6.C: Same. * g++.dg/template/init-list.C: Same. * g++.dg/template/local1.C: Same. * g++.dg/template/lookup2.C: Same. * g++.dg/template/meminit2.C: Same. * g++.dg/template/nontype25.C: Same. * g++.dg/template/ptrmem2.C: Same. * g++.dg/template/qualttp19.C: Same. * g++.dg/template/qualttp20.C: Same. * g++.dg/template/ttp3.C: Same. * g++.dg/template/unify4.C: Same. * g++.dg/template/unify6.C: Same. * g++.dg/template/unify7.C: Same. * g++.dg/template/warn1.C: Same. * g++.dg/tree-ssa/dom-invalid.C: Same. * g++.dg/ubsan/shift-1.C: Same. * g++.dg/warn/Wunused-2.C: Same. * g++.dg/warn/Wunused-4.C: Same. * g++.dg/warn/Wunused-6.C: Same. * g++.dg/warn/deprecated-6.C: Same. * g++.dg/warn/deprecated.C: Same. * g++.dg/warn/effc1.C: Same. * g++.dg/warn/effc3.C: Same. * g++.dg/warn/incomplete1.C: Same. * g++.dg/warn/inline1.C: Same. * g++.dg/warn/noeffect2.C: Same. * g++.dg/warn/noeffect4.C: Same. * g++.dg/warn/oldcast1.C: Same. * g++.dg/warn/sentinel.C: Same. * g++.dg/warn/unit-1.C: Same. * g++.old-deja/g++.pt/inherit2.C: Same. * g++.old-deja/g++.pt/overload8.C: Same. * gcc.dg/20000926-1.c: Same. * gcc.dg/20040223-1.c: Same. * gcc.dg/Warray-bounds-7.c: Same. * gcc.dg/alias-1.c: Same. * gcc.dg/alias-12.c: Same. * gcc.dg/alias-13.c: Same. * gcc.dg/alias-2.c: Same. * gcc.dg/array-13.c: Same. * gcc.dg/array-4.c: Same. * gcc.dg/attr-ifunc-2.c: Same. * gcc.dg/attr-invalid.c: Same. * gcc.dg/attr-noinline.c: Same. * gcc.dg/bitfld-2.c: Same. * gcc.dg/c90-const-expr-7.c: Same. * gcc.dg/c99-const-expr-7.c: Same. * gcc.dg/cpp/20000625-1.c: Same. * gcc.dg/cpp/charconst-4.c: Same. * gcc.dg/cpp/include2.c: Same. * gcc.dg/cpp/include2a.c: Same. * gcc.dg/decl-4.c: Same. * gcc.dg/deprecated-4.c: Same. * gcc.dg/deprecated.c: Same. * gcc.dg/dfp/altivec-types.c: Same. * gcc.dg/float-range-1.c: Same. * gcc.dg/pack-test-3.c: Same. * gcc.dg/pr11492.c: Same. * gcc.dg/pr15360-1.c: Same. * gcc.dg/pr37908.c: Same. * gcc.dg/pr53265.c: Same. * gcc.dg/pr57287-2.c: Same. * gcc.dg/pr57287.c: Same. * gcc.dg/redecl-1.c: Same. * gcc.dg/sync-3.c: Same. * gcc.dg/two-types-1.c: Same. * gcc.dg/two-types-2.c: Same. * gcc.dg/two-types-4.c: Same. * gcc.dg/two-types-5.c: Same. * gcc.dg/two-types-6.c: Same. * gcc.dg/two-types-7.c: Same. * gcc.dg/two-types-8.c: Same. * gcc.dg/two-types-9.c: Same. * gcc.dg/uninit-I.c: Same. * gcc.dg/uninit-pr19430.c: Same. * gcc.dg/visibility-7.c: Same. * gcc.dg/winline-10.c: Same. * gcc.dg/winline-2.c: Same. * gcc.dg/winline-3.c: Same. * gcc.dg/winline-9.c: Same. * gcc.target/i386/attr-returns_twice-1.c: Same. * gcc.target/i386/chkp-const-check-2.c: Same. * gcc.target/i386/chkp-label-address.c: Same. * gcc.target/i386/chkp-remove-bndint-2.c: Same. * gcc.target/i386/pr39162.c: Same. * gcc.target/i386/sse-5.c: Same. * gcc.target/powerpc/altivec-types-1.c: Same. * gcc.target/powerpc/altivec-types-2.c: Same. * gcc.target/powerpc/altivec-types-3.c: Same. * gcc.target/powerpc/float128-mix.c: Same. * gcc.target/powerpc/no-r11-3.c: Same. * gcc.target/spu/Wmain.c: Same. * gcc.target/spu/ea/errors2.c: Same. * gfortran.dg/assignment_1.f90: Same. * gfortran.dg/common_3.f90: Same. * gfortran.dg/der_io_1.f90: Same. * gfortran.dg/g77/20030326-1.f: Same. * gfortran.dg/g77/9263.f: Same. * gfortran.dg/g77/960317-1.f: Same. * gfortran.dg/g77/970625-2.f: Same. * gfortran.dg/g77/980615-0.f: Same. * gfortran.dg/g77/check0.f: Same. * gfortran.dg/g77/dnrm2.f: Same. * gfortran.dg/g77/pr9258.f: Same. * gfortran.dg/ichar_1.f90: Same. * gfortran.dg/interface_1.f90: Same. * gfortran.dg/namelist_1.f90: Same. * gfortran.dg/namelist_2.f90: Same. * gfortran.dg/namelist_3.f90: Same. * gfortran.dg/namelist_print_2.f: Same. * gfortran.dg/oldstyle_1.f90: Same. * gfortran.dg/runtime_warning_1.f90: Same. * gfortran.dg/underflow.f90: Same. * gnat.dg/specs/integer_value.ads: Same. * obj-c++.dg/fsf-package-0.m: Same. * objc.dg/two-types-1.m: Same. From-SVN: r247389
2017-04-28Remove superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus)Tom de Vries1-1/+1
find $(find -type d -name testsuite) -type f \ | xargs sed -ri \ 's#(dg-(error|warning|message|bogus).*) \{ target \*-\*-\* \} \}#\1 }#' 2017-04-28 Tom de Vries <tom@codesourcery.com> * g++.dg/parse/error2.C: Remove superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus). * g++.dg/parse/parameter-declaration-1.C: Same. * g++.dg/warn/Wstrict-aliasing-float-ref-int-obj.C: Same. * gcc.dg/Wpointer-sign-Wall.c: Same. * gcc.dg/Wpointer-sign-pedantic.c: Same. * gcc.dg/cpp/19990413-1.c: Same. * gcc.dg/dg-test-1.c: Same. * gcc.dg/empty-source-2.c: Same. * gcc.dg/empty-source-3.c: Same. * gcc.dg/format/c99-printf-1.c: Same. * gcc.dg/format/c99-scanf-1.c: Same. * gcc.dg/label-decl-2.c: Same. * gcc.dg/m-un-2.c: Same. * gcc.dg/uninit-pr20644-O0.c: Same. * gfortran.dg/pr70006.f90: Same. * obj-c++.dg/fsf-package-0.m: Same. * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus). From-SVN: r247364
2017-04-28Remove superfluous ' . ' in dg-(error|warning|message|bogus)Tom de Vries1-1/+1
find $(find -type d -name testsuite) -type f \ | xargs sed -ri 's#(dg-(error|warning|message|bogus).*) \. \}#\1 }#' 2017-04-28 Tom de Vries <tom@codesourcery.com> * c-c++-common/Wimplicit-fallthrough-6.c: Remove superfluous ' . ' in dg-(error|warning|message|bogus). * c-c++-common/Wimplicit-fallthrough-7.c: Same. * c-c++-common/cilk-plus/AN/pr61963.c: Same. * c-c++-common/cilk-plus/CK/no_args_error.c: Same. * c-c++-common/pr20000.c: Same. * c-c++-common/pr49706.c: Same. * g++.dg/ext/utf16-4.C: Same. * g++.dg/parse/error2.C: Same. * g++.dg/warn/Wtype-limits-Wextra.C: Same. * g++.dg/warn/Wtype-limits.C: Same. * g++.dg/warn/overflow-warn-1.C: Same. * g++.dg/warn/overflow-warn-3.C: Same. * gcc.dg/Wpointer-sign-Wall.c: Same. * gcc.dg/Wpointer-sign-pedantic.c: Same. * gcc.dg/Wtype-limits-Wextra.c: Same. * gcc.dg/Wtype-limits.c: Same. * gcc.dg/cpp/19990413-1.c: Same. * gcc.dg/dg-test-1.c: Same. * gcc.dg/empty-source-2.c: Same. * gcc.dg/empty-source-3.c: Same. * gcc.dg/label-decl-2.c: Same. * gcc.dg/m-un-2.c: Same. * gcc.dg/uninit-pr19430-O0.c: Same. * gcc.dg/uninit-pr19430.c: Same. * gcc.dg/uninit-pr20644-O0.c: Same. * gcc.dg/utf16-4.c: Same. * gfortran.dg/pr70006.f90: Same. * obj-c++.dg/fsf-package-0.m: Same. From-SVN: r247363
2017-04-19Use relative line number for subsequent dg directivesTom de Vries19-34/+34
2017-04-19 Tom de Vries <tom@codesourcery.com> PR testsuite/80221 * c-c++-common/Wimplicit-fallthrough-6.c: Use relative line number for subsequent dg directives. * c-c++-common/Wimplicit-fallthrough-7.c: Same. * c-c++-common/Wint-to-pointer-cast-3.c: Same. * c-c++-common/attr-fallthrough-2.c: Same. * c-c++-common/cilk-plus/AN/parser_errors2.c: Same. * c-c++-common/cilk-plus/AN/parser_errors3.c: Same. * c-c++-common/cilk-plus/AN/pr61191.c: Same. * c-c++-common/cilk-plus/AN/pr61963.c: Same. * c-c++-common/cilk-plus/AN/pr62008.c: Same. * c-c++-common/cilk-plus/AN/rank_mismatch.c: Same. * c-c++-common/cilk-plus/CK/cilk_for_errors.c: Same. * c-c++-common/cilk-plus/CK/errors.c: Same. * c-c++-common/cilk-plus/CK/no_args_error.c: Same. * c-c++-common/cilk-plus/PS/clauses1.c: Same. * c-c++-common/cilk-plus/SE/vlength_errors.c: Same. * c-c++-common/cpp/pr57580.c: Same. * c-c++-common/goacc/asyncwait-1.c: Same. * c-c++-common/goacc/cache-2.c: Same. * c-c++-common/goacc/declare-2.c: Same. * c-c++-common/goacc/deviceptr-1.c: Same. * c-c++-common/goacc/routine-5.c: Same. * c-c++-common/gomp/clauses-2.c: Same. * c-c++-common/gomp/ordered-3.c: Same. * c-c++-common/gomp/pr67501.c: Same. * c-c++-common/pr20000.c: Same. * c-c++-common/pr43395.c: Same. * c-c++-common/pr49706.c: Same. * c-c++-common/pr77624-1.c: Same. * c-c++-common/pr77624-2.c: Same. * c-c++-common/raw-string-14.c: Same. * c-c++-common/raw-string-16.c: Same. * c-c++-common/raw-string-3.c: Same. * c-c++-common/raw-string-4.c: Same. * c-c++-common/raw-string-5.c: Same. * c-c++-common/raw-string-6.c: Same. * g++.dg/abi/mangle41.C: Same. * g++.dg/conversion/nullptr1.C: Same. * g++.dg/cpp0x/alias-decl-80296.C: Same. * g++.dg/cpp0x/auto27.C: Same. * g++.dg/cpp0x/constexpr-98.C: Same. * g++.dg/cpp0x/constexpr-diag2.C: Same. * g++.dg/cpp0x/diag2.C: Same. * g++.dg/cpp0x/lambda/lambda-syntax1.C: Same. * g++.dg/cpp0x/nullptr15.C: Same. * g++.dg/cpp0x/pr31431-2.C: Same. * g++.dg/cpp0x/pr31431.C: Same. * g++.dg/cpp0x/pr79118.C: Same. * g++.dg/cpp0x/static_assert3.C: Same. * g++.dg/cpp0x/temp_default2.C: Same. * g++.dg/cpp0x/trailing4.C: Same. * g++.dg/cpp0x/variadic-ex10.C: Same. * g++.dg/cpp0x/variadic-ex13.C: Same. * g++.dg/cpp0x/variadic-ex14.C: Same. * g++.dg/cpp0x/variadic-ex3.C: Same. * g++.dg/cpp0x/variadic-ex4.C: Same. * g++.dg/cpp0x/variadic59.C: Same. * g++.dg/cpp0x/vt-37737-2.C: Same. * g++.dg/cpp0x/vt-57397-1.C: Same. * g++.dg/cpp0x/vt-57397-2.C: Same. * g++.dg/cpp1z/constexpr-lambda8.C: Same. * g++.dg/cpp1z/gen-attrs1.C: Same. * g++.dg/diagnostic/pr71075.C: Same. * g++.dg/eh/goto2.C: Same. * g++.dg/eh/goto3.C: Same. * g++.dg/expr/bitfield4.C: Same. * g++.dg/expr/bitfield5.C: Same. * g++.dg/expr/bitfield6.C: Same. * g++.dg/expr/bool1.C: Same. * g++.dg/expr/bool3.C: Same. * g++.dg/expr/cond10.C: Same. * g++.dg/expr/cond11.C: Same. * g++.dg/expr/lval3.C: Same. * g++.dg/expr/lval4.C: Same. * g++.dg/ext/anon-struct4.C: Same. * g++.dg/ext/attrib44.C: Same. * g++.dg/ext/builtin3.C: Same. * g++.dg/ext/dllimport7.C: Same. * g++.dg/ext/label5.C: Same. * g++.dg/ext/no-asm-1.C: Same. * g++.dg/ext/utf16-4.C: Same. * g++.dg/ext/vla2.C: Same. * g++.dg/gomp/block-1.C: Same. * g++.dg/gomp/block-2.C: Same. * g++.dg/gomp/block-3.C: Same. * g++.dg/gomp/block-5.C: Same. * g++.dg/gomp/linear-2.C: Same. * g++.dg/gomp/target-1.C: Same. * g++.dg/gomp/target-2.C: Same. * g++.dg/gomp/taskgroup-1.C: Same. * g++.dg/gomp/teams-1.C: Same. * g++.dg/inherit/pure1.C: Same. * g++.dg/init/array43.C: Same. * g++.dg/init/array46.C: Same. * g++.dg/init/const10.C: Same. * g++.dg/init/ctor4-1.C: Same. * g++.dg/init/ctor4.C: Same. * g++.dg/init/new37.C: Same. * g++.dg/init/pr25811.C: Same. * g++.dg/init/pr29043.C: Same. * g++.dg/init/pr29571.C: Same. * g++.dg/lookup/duperr1.C: Same. * g++.dg/lookup/error1.C: Same. * g++.dg/lookup/koenig5.C: Same. * g++.dg/lookup/pr77549.C: Same. * g++.dg/lookup/suggestions1.C: Same. * g++.dg/lookup/using16.C: Same. * g++.dg/lookup/using7.C: Same. * g++.dg/other/anon-union3.C: Same. * g++.dg/other/array2.C: Same. * g++.dg/other/error13.C: Same. * g++.dg/other/error34.C: Same. * g++.dg/overload/builtin1.C: Same. * g++.dg/overload/conv-op1.C: Same. * g++.dg/overload/error3.C: Same. * g++.dg/overload/koenig1.C: Same. * g++.dg/overload/operator5.C: Same. * g++.dg/overload/template5.C: Same. * g++.dg/overload/unknown1.C: Same. * g++.dg/overload/using2.C: Same. * g++.dg/parse/constructor1.C: Same. * g++.dg/parse/crash36.C: Same. * g++.dg/parse/crash63.C: Same. * g++.dg/parse/error11.C: Same. * g++.dg/parse/error12.C: Same. * g++.dg/parse/error14.C: Same. * g++.dg/parse/error2.C: Same. * g++.dg/parse/error21.C: Same. * g++.dg/parse/error26.C: Same. * g++.dg/parse/error36.C: Same. * g++.dg/parse/friend12.C: Same. * g++.dg/parse/invalid-op1.C: Same. * g++.dg/parse/missing-template1.C: Same. * g++.dg/parse/parser-pr28152-2.C: Same. * g++.dg/parse/parser-pr28152.C: Same. * g++.dg/parse/pr16696-permissive.C: Same. * g++.dg/parse/pr16696.C: Same. * g++.dg/parse/pr69628.C: Same. * g++.dg/parse/ret-type2.C: Same. * g++.dg/parse/specialization1.C: Same. * g++.dg/parse/template3.C: Same. * g++.dg/parse/template9.C: Same. * g++.dg/parse/typename11.C: Same. * g++.dg/plugin/attribute_plugin-test-1.C: Same. * g++.dg/pr45330.C: Same. * g++.dg/rtti/typeid6.C: Same. * g++.dg/spellcheck-fields.C: Same. * g++.dg/spellcheck-typenames.C: Same. * g++.dg/tc1/dr108.C: Same. * g++.dg/tc1/dr147.C: Same. * g++.dg/template/arg7.C: Same. * g++.dg/template/conv11.C: Same. * g++.dg/template/crash13.C: Same. * g++.dg/template/crash55.C: Same. * g++.dg/template/dependent-expr5.C: Same. * g++.dg/template/error17.C: Same. * g++.dg/template/error33.C: Same. * g++.dg/template/error4.C: Same. * g++.dg/template/error50.C: Same. * g++.dg/template/error53.C: Same. * g++.dg/template/friend.C: Same. * g++.dg/template/func2.C: Same. * g++.dg/template/local6.C: Same. * g++.dg/template/member5.C: Same. * g++.dg/template/meminit1.C: Same. * g++.dg/template/nested3.C: Same. * g++.dg/template/nontype6.C: Same. * g++.dg/template/overload12.C: Same. * g++.dg/template/ptrmem8.C: Same. * g++.dg/template/qualified-id1.C: Same. * g++.dg/template/spec15.C: Same. * g++.dg/template/static1.C: Same. * g++.dg/template/static10.C: Same. * g++.dg/template/static2.C: Same. * g++.dg/template/ttp25.C: Same. * g++.dg/template/typedef2.C: Same. * g++.dg/template/typename2.C: Same. * g++.dg/template/unify10.C: Same. * g++.dg/template/unify6.C: Same. * g++.dg/template/unify7.C: Same. * g++.dg/template/unify9.C: Same. * g++.dg/template/varmod1.C: Same. * g++.dg/ubsan/div-by-zero-1.C: Same. * g++.dg/ubsan/pr63956.C: Same. * g++.dg/warn/Waddress-1.C: Same. * g++.dg/warn/Wconversion2.C: Same. * g++.dg/warn/Wnull-conversion-1.C: Same. * g++.dg/warn/Wsubobject-linkage-1.C: Same. * g++.dg/warn/Wsubobject-linkage-3.C: Same. * g++.dg/warn/Wswitch-1.C: Same. * g++.dg/warn/Wtype-limits-Wextra.C: Same. * g++.dg/warn/Wtype-limits.C: Same. * g++.dg/warn/Wunused-parm-5.C: Same. * g++.dg/warn/deprecated-6.C: Same. * g++.dg/warn/deprecated.C: Same. * g++.dg/warn/incomplete1.C: Same. * g++.dg/warn/multiple-overflow-warn-1.C: Same. * g++.dg/warn/multiple-overflow-warn-2.C: Same. * g++.dg/warn/multiple-overflow-warn-3.C: Same. * g++.dg/warn/overflow-warn-1.C: Same. * g++.dg/warn/overflow-warn-3.C: Same. * g++.dg/warn/overflow-warn-4.C: Same. * g++.dg/warn/pr12242.C: Same. * g++.dg/warn/pr30551-2.C: Same. * g++.dg/warn/pr30551.C: Same. * g++.old-deja/g++.benjamin/16077.C: Same. * g++.old-deja/g++.bob/inherit1.C: Same. * g++.old-deja/g++.brendan/crash56.C: Same. * g++.old-deja/g++.brendan/template17.C: Same. * g++.old-deja/g++.eh/ctor1.C: Same. * g++.old-deja/g++.jason/bool5.C: Same. * g++.old-deja/g++.jason/cond.C: Same. * g++.old-deja/g++.jason/operator.C: Same. * g++.old-deja/g++.jason/pmf5.C: Same. * g++.old-deja/g++.law/ctors5.C: Same. * g++.old-deja/g++.law/missed-error2.C: Same. * g++.old-deja/g++.law/operators9.C: Same. * g++.old-deja/g++.law/temps1.C: Same. * g++.old-deja/g++.mike/for2.C: Same. * g++.old-deja/g++.mike/ns5.C: Same. * g++.old-deja/g++.mike/ns7.C: Same. * g++.old-deja/g++.mike/p10769b.C: Same. * g++.old-deja/g++.niklas/t120.C: Same. * g++.old-deja/g++.niklas/t121.C: Same. * g++.old-deja/g++.ns/koenig5.C: Same. * g++.old-deja/g++.oliva/overload1.C: Same. * g++.old-deja/g++.other/crash24.C: Same. * g++.old-deja/g++.other/crash25.C: Same. * g++.old-deja/g++.other/decl5.C: Same. * g++.old-deja/g++.other/lineno5.C: Same. * g++.old-deja/g++.other/null3.C: Same. * g++.old-deja/g++.other/overcnv2.C: Same. * g++.old-deja/g++.other/ptrmem7.C: Same. * g++.old-deja/g++.other/typename1.C: Same. * g++.old-deja/g++.other/vaarg3.C: Same. * g++.old-deja/g++.pt/crash10.C: Same. * g++.old-deja/g++.pt/crash28.C: Same. * g++.old-deja/g++.pt/crash38.C: Same. * g++.old-deja/g++.pt/explicit70.C: Same. * g++.old-deja/g++.pt/explicit77.C: Same. * g++.old-deja/g++.pt/expr2.C: Same. * g++.old-deja/g++.pt/spec5.C: Same. * g++.old-deja/g++.pt/spec6.C: Same. * g++.old-deja/g++.pt/typename3.C: Same. * g++.old-deja/g++.pt/typename5.C: Same. * g++.old-deja/g++.pt/typename6.C: Same. * g++.old-deja/g++.pt/typename7.C: Same. * g++.old-deja/g++.pt/unify4.C: Same. * g++.old-deja/g++.pt/unify8.C: Same. * g++.old-deja/g++.pt/vaarg3.C: Same. * g++.old-deja/g++.robertl/eb22.C: Same. * g++.old-deja/g++.robertl/eb4.C: Same. * g++.old-deja/g++.robertl/eb44.C: Same. * g++.old-deja/g++.robertl/eb69.C: Same. * g++.old-deja/g++.robertl/eb98.C: Same. * gcc.dg/20031223-1.c: Same. * gcc.dg/940510-1.c: Same. * gcc.dg/990506-0.c: Same. * gcc.dg/Walloca-1.c: Same. * gcc.dg/Walloca-2.c: Same. * gcc.dg/Wconversion-integer.c: Same. * gcc.dg/Wcxx-compat-8.c: Same. * gcc.dg/Wimplicit-int-1.c: Same. * gcc.dg/Wimplicit-int-2.c: Same. * gcc.dg/Wimplicit-int-4.c: Same. * gcc.dg/Wpointer-sign-Wall.c: Same. * gcc.dg/Wpointer-sign-pedantic.c: Same. * gcc.dg/Wshadow-1.c: Same. * gcc.dg/Wshadow-3.c: Same. * gcc.dg/Wswitch-enum-error.c: Same. * gcc.dg/Wswitch-enum.c: Same. * gcc.dg/Wswitch-error.c: Same. * gcc.dg/Wswitch.c: Same. * gcc.dg/Wtype-limits-Wextra.c: Same. * gcc.dg/Wtype-limits.c: Same. * gcc.dg/Wvla-larger-than-2.c: Same. * gcc.dg/anon-struct-5.c: Same. * gcc.dg/array-10.c: Same. * gcc.dg/array-11.c: Same. * gcc.dg/array-15.c: Same. * gcc.dg/array-2.c: Same. * gcc.dg/array-8.c: Same. * gcc.dg/array-const-2.c: Same. * gcc.dg/array-const-3.c: Same. * gcc.dg/bitfld-1.c: Same. * gcc.dg/bitfld-8.c: Same. * gcc.dg/builtin-redefine.c: Same. * gcc.dg/c11-noreturn-1.c: Same. * gcc.dg/c11-noreturn-2.c: Same. * gcc.dg/c11-static-assert-3.c: Same. * gcc.dg/c90-arraydecl-1.c: Same. * gcc.dg/c90-complex-1.c: Same. * gcc.dg/c90-complit-1.c: Same. * gcc.dg/c90-const-expr-11.c: Same. * gcc.dg/c90-const-expr-7.c: Same. * gcc.dg/c90-const-expr-8.c: Same. * gcc.dg/c90-enum-comma-1.c: Same. * gcc.dg/c90-flex-array-1.c: Same. * gcc.dg/c90-hexfloat-1.c: Same. * gcc.dg/c90-idem-qual-1.c: Same. * gcc.dg/c90-idem-qual-2.c: Same. * gcc.dg/c90-idem-qual-3.c: Same. * gcc.dg/c90-mixdecl-1.c: Same. * gcc.dg/c90-restrict-1.c: Same. * gcc.dg/c90-return-1.c: Same. * gcc.dg/c99-array-nonobj-1.c: Same. * gcc.dg/c99-arraydecl-1.c: Same. * gcc.dg/c99-complex-1.c: Same. * gcc.dg/c99-complex-2.c: Same. * gcc.dg/c99-complit-2.c: Same. * gcc.dg/c99-const-expr-7.c: Same. * gcc.dg/c99-const-expr-8.c: Same. * gcc.dg/c99-flex-array-3.c: Same. * gcc.dg/c99-flex-array-7.c: Same. * gcc.dg/c99-flex-array-typedef-7.c: Same. * gcc.dg/c99-impl-decl-1.c: Same. * gcc.dg/c99-impl-int-1.c: Same. * gcc.dg/c99-impl-int-2.c: Same. * gcc.dg/c99-init-3.c: Same. * gcc.dg/c99-restrict-1.c: Same. * gcc.dg/c99-return-1.c: Same. * gcc.dg/c99-tag-1.c: Same. * gcc.dg/c99-tag-3.c: Same. * gcc.dg/call-diag-2.c: Same. * gcc.dg/cpp/19940712-1.c: Same. * gcc.dg/cpp/19951025-1.c: Same. * gcc.dg/cpp/19990413-1.c: Same. * gcc.dg/cpp/direct2.c: Same. * gcc.dg/cpp/direct2s.c: Same. * gcc.dg/cpp/pr28709.c: Same. * gcc.dg/cpp/pr61854-c90.c: Same. * gcc.dg/cpp/pr61854-c94.c: Same. * gcc.dg/cpp/pragma-1.c: Same. * gcc.dg/cpp/pragma-2.c: Same. * gcc.dg/cpp/trad/escaped-eof.c: Same. * gcc.dg/cpp/trad/literals-2.c: Same. * gcc.dg/cpp/warn-comments-2.c: Same. * gcc.dg/cpp/warn-comments-3.c: Same. * gcc.dg/cpp/warn-comments.c: Same. * gcc.dg/cpp/warn-long-long-2.c: Same. * gcc.dg/cpp/warn-long-long.c: Same. * gcc.dg/cpp/warn-redefined-2.c: Same. * gcc.dg/cpp/warn-redefined.c: Same. * gcc.dg/darwin-cfstring-2.c: Same. * gcc.dg/darwin-cfstring-format-1.c: Same. * gcc.dg/decl-9.c: Same. * gcc.dg/declspec-1.c: Same. * gcc.dg/declspec-10.c: Same. * gcc.dg/declspec-11.c: Same. * gcc.dg/declspec-13.c: Same. * gcc.dg/declspec-18.c: Same. * gcc.dg/declspec-4.c: Same. * gcc.dg/declspec-5.c: Same. * gcc.dg/declspec-6.c: Same. * gcc.dg/declspec-8.c: Same. * gcc.dg/deprecated-4.c: Same. * gcc.dg/deprecated.c: Same. * gcc.dg/dfp/composite-type.c: Same. * gcc.dg/empty-source-2.c: Same. * gcc.dg/empty-source-3.c: Same. * gcc.dg/format/attr-6.c: Same. * gcc.dg/format/branch-1.c: Same. * gcc.dg/format/c90-printf-1.c: Same. * gcc.dg/format/c90-strftime-2.c: Same. * gcc.dg/format/c99-strftime-1.c: Same. * gcc.dg/format/cmn-err-1.c: Same. * gcc.dg/format/few-1.c: Same. * gcc.dg/format/ms_branch-1.c: Same. * gcc.dg/format/ms_unnamed-1.c: Same. * gcc.dg/format/ms_va-1.c: Same. * gcc.dg/format/unnamed-1.c: Same. * gcc.dg/format/va-1.c: Same. * gcc.dg/format/xopen-1.c: Same. * gcc.dg/funcdef-var-1.c: Same. * gcc.dg/funcdef-var-2.c: Same. * gcc.dg/gnu89-const-expr-1.c: Same. * gcc.dg/gnu89-const-expr-2.c: Same. * gcc.dg/gnu90-const-expr-1.c: Same. * gcc.dg/gnu99-const-expr-1.c: Same. * gcc.dg/gnu99-const-expr-2.c: Same. * gcc.dg/gnu99-init-2.c: Same. * gcc.dg/gomp/_Atomic-5.c: Same. * gcc.dg/gomp/appendix-a/a.24.1.c: Same. * gcc.dg/gomp/atomic-5.c: Same. * gcc.dg/gomp/linear-1.c: Same. * gcc.dg/gomp/pr67500.c: Same. * gcc.dg/init-bad-1.c: Same. * gcc.dg/init-bad-2.c: Same. * gcc.dg/init-bad-3.c: Same. * gcc.dg/init-string-1.c: Same. * gcc.dg/label-compound-stmt-1.c: Same. * gcc.dg/label-decl-2.c: Same. * gcc.dg/label-decl-4.c: Same. * gcc.dg/large-size-array-2.c: Same. * gcc.dg/large-size-array-4.c: Same. * gcc.dg/lvalue-6.c: Same. * gcc.dg/m-un-2.c: Same. * gcc.dg/multiple-overflow-warn-1.c: Same. * gcc.dg/multiple-overflow-warn-2.c: Same. * gcc.dg/multiple-overflow-warn-3.c: Same. * gcc.dg/nested-redef-1.c: Same. * gcc.dg/no-asm-1.c: Same. * gcc.dg/no-asm-3.c: Same. * gcc.dg/no-asm-4.c: Same. * gcc.dg/noncompile/20010524-1.c: Same. * gcc.dg/noncompile/incomplete-5.c: Same. * gcc.dg/noncompile/pr44517.c: Same. * gcc.dg/noncompile/pr52290.c: Same. * gcc.dg/noreturn-1.c: Same. * gcc.dg/overflow-warn-1.c: Same. * gcc.dg/overflow-warn-2.c: Same. * gcc.dg/overflow-warn-3.c: Same. * gcc.dg/overflow-warn-4.c: Same. * gcc.dg/parm-mismatch-1.c: Same. * gcc.dg/parser-pr28152-2.c: Same. * gcc.dg/parser-pr28152.c: Same. * gcc.dg/pedwarn-init.c: Same. * gcc.dg/pointer-arith-2.c: Same. * gcc.dg/pointer-arith-3.c: Same. * gcc.dg/pointer-arith-4.c: Same. * gcc.dg/pr14475.c: Same. * gcc.dg/pr18596-3.c: Same. * gcc.dg/pr18809-1.c: Same. * gcc.dg/pr27953.c: Same. * gcc.dg/pr30457.c: Same. * gcc.dg/pr30551-2.c: Same. * gcc.dg/pr30551-3.c: Same. * gcc.dg/pr30551-4.c: Same. * gcc.dg/pr30551-5.c: Same. * gcc.dg/pr30551-6.c: Same. * gcc.dg/pr30551.c: Same. * gcc.dg/pr36997.c: Same. * gcc.dg/pr41842.c: Same. * gcc.dg/pr48552-1.c: Same. * gcc.dg/pr48552-2.c: Same. * gcc.dg/pr59717.c: Same. * gcc.dg/pr61077.c: Same. * gcc.dg/pr61096-1.c: Same. * gcc.dg/pr63626.c: Same. * gcc.dg/pr64223-1.c: Same. * gcc.dg/pr64223-2.c: Same. * gcc.dg/pr8788-1.c: Same. * gcc.dg/pr8927-1.c: Same. * gcc.dg/pragma-darwin.c: Same. * gcc.dg/pragma-diag-5.c: Same. * gcc.dg/pragma-message.c: Same. * gcc.dg/redecl-1.c: Same. * gcc.dg/simd-1.c: Same. * gcc.dg/simd-5.c: Same. * gcc.dg/simd-6.c: Same. * gcc.dg/spellcheck-fields.c: Same. * gcc.dg/spellcheck-typenames.c: Same. * gcc.dg/struct-semi-2.c: Same. * gcc.dg/struct-semi-3.c: Same. * gcc.dg/transparent-union-3.c: Same. * gcc.dg/ucnid-8.c: Same. * gcc.dg/uninit-pr19430-O0.c: Same. * gcc.dg/uninit-pr19430.c: Same. * gcc.dg/uninit-pr20644-O0.c: Same. * gcc.dg/utf-dflt.c: Same. * gcc.dg/utf-dflt2.c: Same. * gcc.dg/utf16-4.c: Same. * gcc.dg/vla-11.c: Same. * gcc.dg/vla-20.c: Same. * gcc.dg/vla-init-1.c: Same. * gcc.dg/vla-init-2.c: Same. * gcc.dg/vla-init-3.c: Same. * gcc.dg/weak/weak-6.c: Same. * gcc.dg/weak/weak-7.c: Same. * gcc.dg/wtr-int-type-1.c: Same. * gcc.target/aarch64/mgeneral-regs_1.c: Same. * gcc.target/arm/polytypes.c: Same. * gcc.target/i386/spellcheck-options-4.c: Same. * gcc.target/powerpc/20030218-1.c: Same. * gcc.target/sh/pr21255-4.c: Same. * gcc.test-framework/dg-error-exp-XP.c: Same. * gfortran.dg/array_constructor_30.f03: Same. * gfortran.dg/class_30.f90: Same. * gfortran.dg/goacc/subarrays.f95: Same. * gfortran.dg/gomp/appendix-a/a.23.5.f90: Same. * gfortran.dg/gomp/appendix-a/a.24.1.f90: Same. * gfortran.dg/intrinsic_std_1.f90: Same. * gfortran.dg/pr70006.f90: Same. * gfortran.dg/warning-directive-1.F90: Same. * gfortran.dg/warning-directive-2.F90: Same. * gfortran.dg/warning-directive-3.F90: Same. * gfortran.dg/warning-directive-4.F90: Same. * obj-c++.dg/attributes/method-noreturn-1.mm: Same. * obj-c++.dg/class-extension-1.mm: Same. * obj-c++.dg/class-extension-2.mm: Same. * obj-c++.dg/class-protocol-1.mm: Same. * obj-c++.dg/cxx-ivars-1.mm: Same. * obj-c++.dg/duplicate-class-1.mm: Same. * obj-c++.dg/exceptions-3.mm: Same. * obj-c++.dg/exceptions-4.mm: Same. * obj-c++.dg/exceptions-5.mm: Same. * obj-c++.dg/fsf-nsstring-format-1.mm: Same. * obj-c++.dg/fsf-package-0.m: Same. * obj-c++.dg/invalid-type-1.mm: Same. * obj-c++.dg/method-12.mm: Same. * obj-c++.dg/method-13.mm: Same. * obj-c++.dg/method-15.mm: Same. * obj-c++.dg/method-16.mm: Same. * obj-c++.dg/method-6.mm: Same. * obj-c++.dg/method-7.mm: Same. * obj-c++.dg/property/at-property-1.mm: Same. * obj-c++.dg/property/at-property-14.mm: Same. * obj-c++.dg/property/at-property-17.mm: Same. * obj-c++.dg/property/at-property-21.mm: Same. * obj-c++.dg/property/at-property-5.mm: Same. * obj-c++.dg/property/dotsyntax-4.mm: Same. * obj-c++.dg/property/dynamic-3.mm: Same. * obj-c++.dg/property/dynamic-4.mm: Same. * obj-c++.dg/property/property-neg-1.mm: Same. * obj-c++.dg/property/property-neg-6.mm: Same. * obj-c++.dg/property/synthesize-11.mm: Same. * obj-c++.dg/property/synthesize-5.mm: Same. * obj-c++.dg/property/synthesize-6.mm: Same. * obj-c++.dg/proto-lossage-4.mm: Same. * obj-c++.dg/protocol-qualifier-2.mm: Same. * obj-c++.dg/strings/strings-1.mm: Same. * obj-c++.dg/super-class-1.mm: Same. * obj-c++.dg/syntax-error-6.mm: Same. * obj-c++.dg/syntax-error-7.mm: Same. * obj-c++.dg/syntax-error-9.mm: Same. * obj-c++.dg/try-catch-13.mm: Same. * objc.dg/attributes/method-noreturn-1.m: Same. * objc.dg/bad-receiver-type-2.m: Same. * objc.dg/bad-receiver-type.m: Same. * objc.dg/call-super-2.m: Same. * objc.dg/class-2.m: Same. * objc.dg/class-extension-1.m: Same. * objc.dg/class-extension-2.m: Same. * objc.dg/class-protocol-1.m: Same. * objc.dg/desig-init-1.m: Same. * objc.dg/duplicate-class-1.m: Same. * objc.dg/exceptions-3.m: Same. * objc.dg/exceptions-4.m: Same. * objc.dg/exceptions-5.m: Same. * objc.dg/foreach-6.m: Same. * objc.dg/foreach-7.m: Same. * objc.dg/fsf-nsstring-format-1.m: Same. * objc.dg/fsf-package-0.m: Same. * objc.dg/invalid-type-1.m: Same. * objc.dg/method-11.m: Same. * objc.dg/method-19.m: Same. * objc.dg/method-2.m: Same. * objc.dg/method-20.m: Same. * objc.dg/method-5.m: Same. * objc.dg/method-6.m: Same. * objc.dg/method-7.m: Same. * objc.dg/method-9.m: Same. * objc.dg/missing-proto-3.m: Same. * objc.dg/private-1.m: Same. * objc.dg/property/at-property-1.m: Same. * objc.dg/property/at-property-14.m: Same. * objc.dg/property/at-property-17.m: Same. * objc.dg/property/at-property-21.m: Same. * objc.dg/property/at-property-5.m: Same. * objc.dg/property/dynamic-3.m: Same. * objc.dg/property/dynamic-4.m: Same. * objc.dg/property/property-neg-1.m: Same. * objc.dg/property/property-neg-6.m: Same. * objc.dg/property/synthesize-11.m: Same. * objc.dg/property/synthesize-5.m: Same. * objc.dg/property/synthesize-6.m: Same. * objc.dg/proto-hier-1.m: Same. * objc.dg/proto-lossage-4.m: Same. * objc.dg/protocol-qualifier-2.m: Same. * objc.dg/strings/strings-1.m: Same. * objc.dg/type-size-1.m: Same. From-SVN: r246988
2017-04-16Remove braces around line number in dejagnu directiveTom de Vries3-5/+5
2017-04-16 Tom de Vries <tom@codesourcery.com> * g++.dg/parse/error11.C: Remove braces around line number in dejagnu directive. * g++.dg/parse/error3.C: Same. * g++.old-deja/g++.pt/niklas01a.C: Same. * gcc.dg/990506-0.c: Same. * gcc.dg/cpp/19990413-1.c: Same. * gcc.dg/cpp/pragma-1.c: Same. * gcc.dg/cpp/pragma-2.c: Same. * gcc.dg/m-un-2.c: Same. * objc.dg/private-1.m: Same. From-SVN: r246945
2017-01-23re PR lto/79061 ([LTO][ASAN] LTO plus ASAN fails with "AddressSanitizer: ↵Maxim Ostapenko1-1/+1
initialization-order-fiasco") Revert fix for PR lto/79061 due to this regresses compile-time by 100% on some fortran cases. From-SVN: r244773
2017-01-18re PR lto/79061 ([LTO][ASAN] LTO plus ASAN fails with "AddressSanitizer: ↵Maxim Ostapenko1-1/+1
initialization-order-fiasco") PR lto/79061 gcc/ * asan.c (get_translation_unit_decl): New function. (asan_add_global): Extract modules file name from globals TRANSLATION_UNIT_DECL in lto mode. * tree.c (build_translation_unit_decl): Add source location for newly built TRANSLATION_UNIT_DECL. gcc/lto/ * lto.c (lto_read_decls): accept location cache for TRANSLATION_UNIT_DECL. gcc/testsuite/ * gcc.dg/cpp/mi1.c: Adjust testcase. * gcc.dg/pch/cpp-3.c: Likewise. From-SVN: r244581
2017-01-01Update copyright years.Jakub Jelinek3-3/+3
From-SVN: r243994
2016-12-15Introduce selftest::locate_fileDavid Malcolm1-1/+1
gcc/ChangeLog: * Makefile.in (SELFTEST_FLAGS): Add path argument to -fself-test. (s-selftest): Add dependency on the selftests data directory. * common.opt (fself-test): Rename to... (fself-test=): ...this, documenting the meaning of the argument. * selftest-run-tests.c (along): Likewise. * selftest-run-tests.c: Include "options.h". (selftest::run_tests): Initialize selftest::path_to_selftest_files from flag_self_test. * selftest.c (selftest::path_to_selftest_files): New global. (selftest::locate_file): New function. (selftest::test_locate_file): New function. (selftest_c_tests): Likewise. (selftest::selftest_c_tests): Call test_locate_file. * selftest.h (selftest::locate_file): New decl. (selftest::path_to_selftest_files): New decl. gcc/testsuite/ChangeLog: PR target/78213 * gcc.dg/cpp/pr71591.c: Add a fake value for the argument of -fself-test. * gcc.dg/pr78213.c: Disable this test. * selftests/example.txt: New file. From-SVN: r243681
2016-11-23system.h (HAVE_DESIGNATED_INITIALIZERS, [...]): Do not use "defined" in macros.Paolo Bonzini6-7/+154
gcc: 2016-11-23 Paolo Bonzini <bonzini@gnu.org> * system.h (HAVE_DESIGNATED_INITIALIZERS, HAVE_DESIGNATED_UNION_INITIALIZERS): Do not use "defined" in macros. * doc/cpp.texi (Defined): Mention -Wexpansion-to-defined. * doc/cppopts.texi (Invocation): Document -Wexpansion-to-defined. * doc/invoke.texi (Warning Options): Document -Wexpansion-to-defined. gcc/c-family: 2016-11-23 Paolo Bonzini <bonzini@gnu.org> * c.opt (Wexpansion-to-defined): New. gcc/testsuite: 2016-11-23 Paolo Bonzini <bonzini@gnu.org> * gcc.dg/cpp/defined.c: Mark newly introduced warnings and adjust for warning->pedwarn change. * gcc.dg/cpp/defined-syshdr.c, gcc.dg/cpp/defined-Wexpansion-to-defined.c, gcc.dg/cpp/defined-Wextra-Wno-expansion-to-defined.c, gcc.dg/cpp/defined-Wextra.c, gcc.dg/cpp/defined-Wno-expansion-to-defined.c: New testcases. libcpp: 2016-11-23 Paolo Bonzini <bonzini@gnu.org> * include/cpplib.h (struct cpp_options): Add new member warn_expansion_to_defined. (CPP_W_EXPANSION_TO_DEFINED): New enum member. * expr.c (parse_defined): Warn for all uses of "defined" in macros, and tie warning to CPP_W_EXPANSION_TO_DEFINED. Make it a pedwarning instead of a warning. * system.h (HAVE_DESIGNATED_INITIALIZERS): Do not use "defined" in macros. From-SVN: r242743
2016-11-16Fix test names for trad.exp testsTamar Christina1-2/+2
PR testsuite/78136 * gcc.dg/cpp/trad/trad.exp (dg-runtest): Moved $srcdir/$subdir/ to DEFAULT_TRADCPPFLAGS. From-SVN: r242500
2016-11-08Fix traditional cpp test failureTamar Christina2-9/+3
* gcc.dg/cpp/trad/trad.exp (dg-runtest): Added $srcdir/$subdir/ to Include dirs. * gcc.dg/cpp/trad/include.c: Use local header file. From-SVN: r241957
2016-10-21re PR preprocessor/71681 (header.gcc file lookup is broken for -remap)Andris Pavenis6-0/+14
2016-10-21 Andris Pavenis <andris.pavenis@iki.fi> PR preprocessor/71681 * gcc.dg/cpp/pr71681-1.c: New testcase * gcc.dg/cpp/pr71681-2.c: Likewise * gcc.dg/cpp/remap/header.gcc: File for added test-cases * gcc.dg/cpp/remap/a/header.gcc: Likewise * gcc.dg/cpp/remap/a/t_1.h: Likewise * gcc.dg/cpp/remap/a/t_2.h: Likewise From-SVN: r241415
2016-08-22re PR c/52952 (Wformat location info is bad (wrong column number))Bernd Edlinger1-0/+1
2016-08-22 Bernd Edlinger <bernd.edlinger@hotmail.de> PR c/52952 * gcc.dg/cpp/pr66415-1.c: Fix sporadic failure. From-SVN: r239649
2016-08-19expr.c (eval_token): Append "evaluates to 0" to Wundef diagnostic.Prathamesh Kulkarni2-2/+2
2016-08-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> libcpp/ * expr.c (eval_token): Append "evaluates to 0" to Wundef diagnostic. testsuite/ * gcc.dg/cpp/warn-undef.c: Append "evaluates to 0" to dg-error. * gcc.dg/cpp/warn-undef-2.c: Likewise. From-SVN: r239609
2016-08-18Spelling suggestions for misspelled preprocessor directivesDavid Malcolm2-0/+33
This patch allows the preprocessor to offer suggestions for misspelled directives, taking us from e.g.: test.c:5:2: error: invalid preprocessing directive #endfi #endfi ^~~~~ to: test.c:5:2: error: invalid preprocessing directive #endfi; did you mean #endif? #endfi ^~~~~ endif gcc/c-family/ChangeLog: * c-common.c: Include "spellcheck.h". (cb_get_suggestion): New function. * c-common.h (cb_get_suggestion): New decl. * c-lex.c (init_c_lex): Initialize cb->get_suggestion to cb_get_suggestion. gcc/testsuite/ChangeLog: * gcc.dg/cpp/misspelled-directive-1.c: New testcase. * gcc.dg/cpp/misspelled-directive-2.c: New testcase. libcpp/ChangeLog: * directives.c (directive_names): New array. (_cpp_handle_directive): Offer spelling suggestions for misspelled directives. * errors.c (cpp_diagnostic_at_richloc): New function. (cpp_error_at_richloc): New function. * include/cpplib.h (struct cpp_callbacks): Add field "get_suggestion". (cpp_error_at_richloc): New decl. From-SVN: r239585
2016-08-08Use class substring_loc in c-format.c (PR c/52952)David Malcolm1-1/+7
gcc/c-family/ChangeLog: PR c/52952 * c-format.c: Include "diagnostic.h". (location_column_from_byte_offset): Delete. (location_from_offset): Delete. (format_warning_va): New function. (format_warning_at_substring): New function. (format_warning_at_char): New function. (check_format_arg): Capture location of format_tree and pass to check_format_info_main. (argument_parser): Add fields "start_of_this_format" and "format_string_cst". (flag_chars_t::validate): Add param "format_string_cst". Convert warning_at call using location_from_offset to call to format_warning_at_char. (argument_parser::argument_parser): Add param "format_string_cst_" and use use it to initialize field "format_string_cst". Initialize new field "start_of_this_format". (argument_parser::read_format_flags): Convert warning_at call using location_from_offset to a call to format_warning_at_char. (argument_parser::read_any_format_left_precision): Likewise. (argument_parser::read_any_format_precision): Likewise. (argument_parser::read_any_other_modifier): Likewise. (argument_parser::find_format_char_info): Likewise, in three places. (argument_parser::parse_any_scan_set): Likewise, in one place. (argument_parser::handle_conversions): Likewise, in two places. (argument_parser::check_argument_type): Add param "fmt_param_loc" and use it to make a substring_loc. Pass the latter to check_format_types. (check_format_info_main): Add params "fmt_param_loc" and "format_string_cst". Convert warning_at calls using location_from_offset to calls to format_warning_at_char. Pass the new params to the arg_parser ctor. Pass "format_string_cst" to flag_chars.validate. Pass "fmt_param_loc" to arg_parser.check_argument_type. (check_format_types): Convert first param from a location_t to a const substring_loc & and rename to "fmt_loc". Attempt to extract the range of the relevant parameter and pass it to format_type_warning. (format_type_warning): Convert first param from a location_t to a const substring_loc & and rename to "fmt_loc". Add params "param_range" and "type". Replace calls to warning_at with calls to format_warning_at_substring. gcc/testsuite/ChangeLog: PR c/52952 * gcc.dg/cpp/pr66415-1.c: Likewise. * gcc.dg/format/asm_fprintf-1.c: Update column numbers. * gcc.dg/format/c90-printf-1.c: Likewise. * gcc.dg/format/diagnostic-ranges.c: New test case. From-SVN: r239253