aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2019-06-24re PR tree-optimization/90930 (Excessive memory consumption)Richard Biener2-0/+8
2019-06-24 Richard Biener <rguenther@suse.de> PR tree-optimization/90930 PR tree-optimization/90316 * tree-ssa-alias.c (walk_non_aliased_vuses): Add missing decrement of limit. From-SVN: r272621
2019-06-24compiler: use builtin memcmp directlyIan Lance Taylor3-3/+4
Instead of going through a C function __go_memcmp, we can just use __builtin_memcmp directly. This allows more optimizations in the compiler backend. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/183537 From-SVN: r272620
2019-06-24utils.c (handle_nonnull_attribute): Quote attribute name.Martin Sebor10-15/+36
gcc/ada/ChangeLog: * gcc-interface/utils.c (handle_nonnull_attribute): Quote attribute name. gcc/c/ChangeLog: * c-typeck.c (build_binary_op): Hyphenate floating-point. gcc/testsuite/ChangeLog: * gcc.dg/Wfloat-equal-1.c: Adjust text of expected diagnostic. * gcc.dg/misc-column.c: Ditto. gcc/ChangeLog: * tree-pretty-print.h: Remove unnecessary punctuation characters from a diagnostic. * tree-ssa.c (release_defs_bitset): Correct preprocessor conditional. From-SVN: r272619
2019-06-24Don't use a separate CLASSTYPE_AS_BASE if it's the same size.Jason Merrill2-0/+11
* class.c (layout_class_type): Don't use a separate CLASSTYPE_AS_BASE if it's the same size. From-SVN: r272618
2019-06-24Define C11 macros such as FLT_DECIMAL_DIG for C++17Jonathan Wakely2-1/+8
* testsuite/18_support/headers/cfloat/values_c++17.cc: New test. From-SVN: r272615
2019-06-24Daily bump.GCC Administrator1-1/+1
From-SVN: r272613
2019-06-23compiler: edit error messages to avoid -Wformat-diag warningsIan Lance Taylor12-38/+45
GCC recently introduced -Wformat-diag to scrutinize GCC error messages. It reports a number of warnings about gofrontend code, such as: ../../trunk/gcc/go/gofrontend/import.cc: In member function ‘Type* Import::type_for_index(int, const string&, size_t, bool*)’: ../../trunk/gcc/go/gofrontend/import.cc:1129:48: warning: unquoted operator ‘>=’ in format [-Wformat-diag] 1129 | "error in %s at %lu: bad type index %d >= %d", | ^~ ../../trunk/gcc/go/gofrontend/ast-dump.cc: In member function ‘void Ast_dump_context::dump(Gogo*, const char*)’: ../../trunk/gcc/go/gofrontend/ast-dump.cc:203:25: warning: unquoted option name ‘-fgo-dump-ast’ in format [-Wformat-diag] 203 | "cannot open %s:%m, -fgo-dump-ast ignored", dumpname.c_str()); | ^~~~~~~~~~~~~ ../../trunk/gcc/go/gofrontend/expressions.cc: In static member function ‘static Bexpression* Func_expression::get_code_pointer(Gogo*, Named_object*, Location)’: ../../trunk/gcc/go/gofrontend/expressions.cc:1350:29: warning: misspelled term ‘builtin function’ in format; use ‘built-in function’ instead [-Wformat-diag] 1350 | "invalid use of special builtin function %qs; must be called", | ^~~~~~~~~~~~~~~~ ../../trunk/gcc/go/gofrontend/gogo.cc: In member function ‘void Gogo::add_linkname(const string&, bool, const string&, Location)’: ../../trunk/gcc/go/gofrontend/gogo.cc:2527:4: warning: unquoted sequence of 2 consecutive punctuation characters ‘//’ in format [-Wformat-diag] 2527 | ("%s is not a function; " | ~^~~~~~~~~~~~~~~~~~~~~~~~ 2528 | "//go:linkname is only supported for functions"), | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This CL edits error messages to avoid these warnings. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/183497 * go.test/test/blank1.go: Update for diagnostic message changes. From-SVN: r272608
2019-06-23compiler: add go_debug and use it for debug messagesIan Lance Taylor6-103/+137
GCC recently added a new warning -Wformat-diag which does a lot of rigorous checks on GCC diagnostic messages. This produces a number of unnecessary diagnostics on gofrontend diagnostic output, such as ../../trunk/gcc/go/gofrontend/escape.cc: In member function ‘virtual int Escape_analysis_assign::statement(Block*, size_t*, Statement*)’: ../../trunk/gcc/go/gofrontend/escape.cc:1336:33: warning: spurious leading punctuation sequence ‘[’ in format [-Wformat-diag] 1336 | go_inform(s->location(), "[%d] %s esc: %s", | ^ ../../trunk/gcc/go/gofrontend/escape.cc: In member function ‘void Escape_analysis_assign::call(Call_expression*)’: ../../trunk/gcc/go/gofrontend/escape.cc:1964:17: warning: unquoted operator ‘::’ in format [-Wformat-diag] 1964 | "esccall:: indirect call <- %s, untracked", | ^~ ../../trunk/gcc/go/gofrontend/escape.cc:1964:34: warning: unbalanced punctuation character ‘<’ in format [-Wformat-diag] 1964 | "esccall:: indirect call <- %s, untracked", | ^ Avoid these messages by adding a new function go_debug that uses only printf formatting, not GCC diagnostic formatting, and change all the optimization debugging messages to use it. None of the debugging messages used the GCC diagnostic formatting specifiers anyhow. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/183437 From-SVN: r272607
2019-06-23[Darwin, PPC, testsuite] Fix builtins-2 for Darwin.Iain Sandoe2-0/+5
This cannot pass for current Darwin, since it requires VSX and we don't have any hardware supporting that. Add a dg-requires clause for this. 2019-06-23 Iain Sandoe <iain@sandoe.co.uk> * gcc.target/powerpc/builtins-2.c: Require VSX hardware support. From-SVN: r272606
2019-06-23[Darwin, PPC, testsuite] Fix pr80125 testcase for Darwin.Iain Sandoe2-1/+6
Darwin (unlike most of the members of the PowerPC port family) defaults to signed chars, so the test was failing to compile with a "mismatched parameters" error. 2019-06-23 Iain Sandoe <iain@sandoe.co.uk> * gcc.target/powerpc/pr80125.c (foo): Use an unsigned char vector explicitly for the vec_perm. From-SVN: r272605
2019-06-23[Darwin, PPC, testsuite] Fix builtins-1 testcase for Darwin.Iain Sandoe2-4/+9
This needs to account for Darwin's __USER_LABEL_PREFIX__. 2019-06-23 Iain Sandoe <iain@sandoe.co.uk> * gcc.target/powerpc/builtins-1.c: Account for Darwin's use of __USER_LABEL_PREFIX__. From-SVN: r272604
2019-06-23[Darwin, PPC] Handle GCC target pragma.Iain Sandoe2-0/+5
For compatibility with other members of the port. Note, that we do not handle the longcall attribute, since longcall is not required/used on current Darwin. 2019-06-23 Iain Sandoe <iain@sandoe.co.uk> * config/rs6000/darwin.h: Handle GCC target pragma. From-SVN: r272603
2019-06-23[Darwin, PPC] Emit uppercase versions of ppc defines.Iain Sandoe2-0/+6
Emit __PPC__ (32b) and __PPC64__ (64bit) as per the other members of the PowerPC port. 2019-06-23 Iain Sandoe <iain@sandoe.co.uk> * config/rs6000/darwin.h: (__PPC__, __PPC64__): New. From-SVN: r272602
2019-06-23[Darwin, PPC, testsuite] Fix pr71785 testcase for Darwin.Iain Sandoe2-1/+12
Firstly, we adjust the test conditions to use non-PIC code for Darwin. Secondly, we have to account for out-of-line GPR restores which gives a false positive on one of the scan-assembler-not. Lastly, we make the test a bit more specific for Darwin - that it looks for absence of branches to local labels. 2019-06-23 Iain Sandoe <iain@sandoe.co.uk> * gcc.target/powerpc/pr71785.c: For Darwin, make test non-PIC, expect the out-of-line GPR restore, and test specifically for absence of branches to local labels. From-SVN: r272601
2019-06-23Rename DEFAULT_ARG to DEFERRED_PARSE.Marek Polacek13-52/+100
From-SVN: r272600
2019-06-23Daily bump.GCC Administrator1-1/+1
From-SVN: r272599
2019-06-22Fix typo in ChangeLogJerry DeLisle1-1/+1
From-SVN: r272595
2019-06-22re PR fortran/89782 (Can do an internal READ of a character array when it is ↵Jerry DeLisle4-0/+32
a parameter, but not a scalar character parameter) 2019-06-22 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/89782 * io.c (gfc_resolve_dt): Check that internal units are not character PARAMETER. * gfortran.dg/io_constraints.f90: New test. From-SVN: r272594
2019-06-22[Darwin, PPC, testsuite] Add requires for DFP to two tests.Iain Sandoe3-0/+7
The two tests use decimal floating point, add the relevant dg-requires so that they are unsupported on platforms without DFP. 2019-06-22 Iain Sandoe <iain@sandoe.co.uk> * gcc.target/powerpc/pr64205.c: Require effective target dfp. * gcc.target/powerpc/pr79909.c: Likewise. From-SVN: r272592
2019-06-22[Darwin, PPC, testsuite] Fix darwin-bool-1.c.Iain Sandoe2-0/+7
This test is failing because of a pedantic warning that is unrelated to the purpose of the test. Fixed by suppressing that warning. 2019-06-22 Iain Sandoe <iain@sandoe.co.uk> * gcc.target/powerpc/darwin-bool-1.c: Suppress the pedantic warning about _Bool. From-SVN: r272591
2019-06-22* config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.Jeff Law2-3/+4
From-SVN: r272590
2019-06-22re PR c++/65707 (internal compiler error: in unify, at cp/pt.c:18577)Marek Polacek4-0/+49
PR c++/65707 PR c++/89480 PR c++/58836 * g++.dg/cpp0x/nondeduced5.C: New test. * g++.dg/cpp0x/nondeduced6.C: New test. * g++.dg/cpp0x/nondeduced7.C: New test. From-SVN: r272589
2019-06-22re PR c++/66256 (noexcept evaluation done before end of class)Marek Polacek2-0/+15
PR c++/66256 * g++.dg/cpp0x/noexcept54.C: New test. From-SVN: r272588
2019-06-22alias-access-path-6.c: New testcase.Jan Hubicka4-9/+45
* gcc.dg/tree-ssa/alias-access-path-6.c: New testcase. * tree-ssa-alias.c (nonoverlapping_component_refs_p): Do not give up on bitfields; continue searching for different refs appearing later. From-SVN: r272587
2019-06-22PR c++/86476 - noexcept-specifier is a complete-class context.Marek Polacek21-58/+722
PR c++/52869 * cp-tree.def (DEFAULT_ARG): Update commentary. * cp-tree.h (UNPARSED_NOEXCEPT_SPEC_P): New macro. (tree_default_arg): Use tree_base instead of tree_common. (do_push_parm_decls, maybe_check_overriding_exception_spec): Declare. * decl.c (do_push_parm_decls): New function, broken out of... (store_parm_decls): ...here. Call it. * except.c (nothrow_spec_p): Accept DEFAULT_ARG in the assert. * parser.c (cp_parser_noexcept_specification_opt, cp_parser_late_noexcept_specifier, noexcept_override_late_checks): Forward-declare. (unparsed_noexcepts): New macro. (push_unparsed_function_queues): Update initializer. (cp_parser_direct_declarator): Pass FRIEND_P to cp_parser_exception_specification_opt. (inject_parm_decls): New. (pop_injected_parms): New. (cp_parser_class_specifier_1): Implement delayed parsing of noexcept-specifiers. (cp_parser_save_noexcept): New. (cp_parser_late_noexcept_specifier): New. (noexcept_override_late_checks): New. (cp_parser_noexcept_specification_opt): Add FRIEND_P parameter. Call cp_parser_save_noexcept instead of the normal processing if needed. (cp_parser_exception_specification_opt): Add FRIEND_P parameter and pass it to cp_parser_noexcept_specification_opt. (cp_parser_save_member_function_body): Fix comment. (cp_parser_save_default_args): Maybe save the noexcept-specifier to post process. (cp_parser_transaction): Update call to cp_parser_noexcept_specification_opt. (cp_parser_transaction_expression): Likewise. * parser.h (cp_unparsed_functions_entry): Add new field to carry a noexcept-specifier. * pt.c (dependent_type_p_r): Handle unparsed noexcept expression. * search.c (maybe_check_overriding_exception_spec): New function, broken out of... (check_final_overrider): ...here. Call maybe_check_overriding_exception_spec. * tree.c (canonical_eh_spec): Handle UNPARSED_NOEXCEPT_SPEC_P. (cp_tree_equal): Handle DEFAULT_ARG. * g++.dg/cpp0x/noexcept45.C: New test. * g++.dg/cpp0x/noexcept46.C: New test. * g++.dg/cpp0x/noexcept47.C: New test. * g++.dg/cpp0x/noexcept48.C: New test. * g++.dg/cpp0x/noexcept49.C: New test. * g++.dg/cpp0x/noexcept50.C: New test. * g++.dg/cpp0x/noexcept51.C: New test. * g++.dg/cpp0x/noexcept52.C: New test. * g++.dg/cpp0x/noexcept53.C: New test. * g++.dg/eh/shadow1.C: Adjust dg-error. From-SVN: r272586
2019-06-22PR c++/90881 - bogus -Wunused-value in unevaluated context.Marek Polacek4-1/+33
* cvt.c (convert_to_void): Don't emit unused warnings in an unevaluated context. * g++.dg/cpp0x/Wunused-value1.C: New test. From-SVN: r272585
2019-06-22decl.c (grokdeclarator): Use id_loc...Paolo Carlini12-18/+54
/cp 2019-06-22 Paolo Carlini <paolo.carlini@oracle.com> * decl.c (grokdeclarator): Use id_loc, typespec_loc, and locations[ds_storage_class] in a few additional places. /testsuite 2019-06-22 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/diagnostic/auto-storage-1.C: New. * g++.dg/diagnostic/no-type-1.C: Likewise. * g++.dg/diagnostic/no-type-2.C: Likewise. * g++.dg/diagnostic/top-level-auto-1.C: Likewise. * g++.dg/cpp0x/auto9.C: Test some locations too. * g++.dg/cpp1z/register1.C: Likewise. * g++.dg/cpp1z/register2.C: Likewise. * g++.dg/cpp1z/register3.C: Likewise. * g++.dg/other/error34.C: Likewise. From-SVN: r272584
2019-06-22Daily bump.GCC Administrator1-1/+1
From-SVN: r272583
2019-06-21compiler: intrinsify some math/bits functionsCherry Zhang6-9/+192
Let the Go frontend recognize some math/bits functions and turn them into intrinsics. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/183266 * go-gcc.cc (Gcc_backend::Gcc_backend): Define math/bits builtins. From-SVN: r272579
2019-06-21runtime: inline and remove eqtypeIan Lance Taylor1-1/+1
Now that type equality is just a pointer equality, write it inlined and remove the eqtype function. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/182978 From-SVN: r272578
2019-06-21compiler: open code some type assertionsIan Lance Taylor6-38/+41
Now that type equality is just simple pointer equality, we can open code some type assertions instead of making runtime calls. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/182977 From-SVN: r272577
2019-06-21re PR c++/90909 (call devirtualized to pure virtual)Paolo Carlini2-0/+16
2019-06-21 Paolo Carlini <paolo.carlini@oracle.com> PR c++/90909 * g++.dg/other/final7.C: New. From-SVN: r272576
2019-06-21tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle even zero ↵Jakub Jelinek5-31/+61
DR_OFFSET... * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle even zero DR_OFFSET, but DR_BASE_ADDRESS of POINTER_PLUS_EXPR containing the offset as possible simd lane access. Look through widening conversion. Move the TREE_CODE (DR_INIT (newdr)) == INTEGER_CST test earlier and reindent. * g++.dg/vect/simd-2.cc: Don't xfail, instead expect vectorization on x86. * g++.dg/vect/simd-5.cc: Likewise. From-SVN: r272575
2019-06-21re PR c++/90909 (call devirtualized to pure virtual)Paolo Carlini3-63/+0
/cp 2019-06-21 Paolo Carlini <paolo.carlini@oracle.com> PR c++/90909 Revert: 2019-05-21 Paolo Carlini <paolo.carlini@oracle.com> PR c++/67184 PR c++/69445 * call.c (build_over_call): Devirtualize when the final overrider comes from the base. /testsuite 2019-06-21 Paolo Carlini <paolo.carlini@oracle.com> PR c++/90909 Revert: 2019-05-21 Paolo Carlini <paolo.carlini@oracle.com> PR c++/67184 PR c++/69445 * g++.dg/other/final3.C: New. * g++.dg/other/final4.C: Likewise. * g++.dg/other/final5.C: Likewise. * g++.dg/other/final6.C: New. From-SVN: r272574
2019-06-21re PR c++/90909 (call devirtualized to pure virtual)Paolo Carlini4-1/+35
/cp 2019-06-21 Paolo Carlini <paolo.carlini@oracle.com> PR c++/90909 Revert: 2019-05-21 Paolo Carlini <paolo.carlini@oracle.com> PR c++/67184 PR c++/69445 * call.c (build_over_call): Devirtualize when the final overrider comes from the base. /testsuite 2019-06-21 Paolo Carlini <paolo.carlini@oracle.com> PR c++/90909 Revert: 2019-05-21 Paolo Carlini <paolo.carlini@oracle.com> PR c++/67184 PR c++/69445 * g++.dg/other/final3.C: New. * g++.dg/other/final4.C: Likewise. * g++.dg/other/final5.C: Likewise. * g++.dg/other/final6.C: New. From-SVN: r272573
2019-06-21PR c++/61490 - qualified-id in friend function definition.Marek Polacek5-3/+46
* decl.c (grokdeclarator): Diagnose qualified-id in friend function definition. Improve location for diagnostics of friend functions. * g++.dg/diagnostic/friend2.C: New test. * g++.dg/diagnostic/friend3.C: New test. From-SVN: r272572
2019-06-21PR c++/60223 - ICE with T{} in non-deduced context.Marek Polacek7-7/+81
* pt.c (unify): Allow COMPOUND_LITERAL_P in a non-deduced context. * g++.dg/cpp0x/nondeduced1.C: New test. * g++.dg/cpp0x/nondeduced2.C: New test. * g++.dg/cpp0x/nondeduced3.C: New test. * g++.dg/cpp0x/nondeduced4.C: New test. From-SVN: r272571
2019-06-21PR c++/64235 - missing syntax error with invalid alignas.Marek Polacek4-0/+25
* parser.c (cp_parser_std_attribute_spec): Commit to tentative parse if there's a missing close paren. * g++.dg/parse/alignas1.C: New test. From-SVN: r272570
2019-06-21re PR fortran/67884 (Missing error message on required allocatable attribute)Steven G. Kargl5-4/+41
2019-06-21 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/67884 * resolve.c (deferred_requirements) : Check only the result variable. (resolve_fl_procedure): Check deferred requirements on functions. 2019-06-21 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/67884 * gfortran.dg/dummy_procedure_8.f90: Remove a test that is ... * gfortran.dg/pr67884.f90: ... covered here. New test. From-SVN: r272569
2019-06-21PR c++/90490 - fix decltype issues in noexcept-specifier.Marek Polacek5-2/+37
* except.c (build_noexcept_spec): Call instantiate_non_dependent_expr_sfinae before build_converted_constant_expr instead of calling instantiate_non_dependent_expr after it. Add processing_template_decl_sentinel. * g++.dg/cpp0x/noexcept43.C: New test. * g++.dg/cpp0x/noexcept44.C: New test. From-SVN: r272568
2019-06-21PR c++/90875 - added -Wswitch-outside-range optionMatthew Beliveau4-0/+35
From-SVN: r272567
2019-06-21re PR tree-optimization/90930 (Excessive memory consumption)Richard Biener2-0/+7
2019-06-21 Richard Biener <rguenther@suse.de> PR tree-optimization/90930 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited flag on new stmts to avoid re-processing them. From-SVN: r272560
2019-06-21PR c++/90875 - added -Wswitch-outside-range optionMatthew Beliveau6-7/+38
* doc/invoke.texi (Wswitch-outside-range): Document. * c.opt (Wswitch-outside-range): Added new option. * c-warn.c (c_do_switch_warnings): Use OPT_Wswitch-outside-range. * c-c++-common/Wswitch-outside-range-1.c: New test. * c-c++-common/Wswitch-outside-range-2.c: New test. * c-c++-common/Wswitch-outside-range-3.c: New test. * c-c++-common/Wswitch-outside-range-4.c: New test. From-SVN: r272559
2019-06-21re PR fortran/51991 (Wrong error message with variables named "SAVE*")Steven G. Kargl4-2/+39
2019-06-21 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/51991 * decl.c (gfc_match_save): If SAVE was not seen, return MATCH_NO instead issuing an error message and returning MATCH_ERROR. 2019-06-21 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/51991 gfortran.dg/pr51991.f90 From-SVN: r272556
2019-06-21re PR tree-optimization/90949 (null pointer check removed)Jeff Law5-7/+64
PR tree-optimization/90949 * tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info. * tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state. * gcc.c-torture/execute/pr90949.c: New test. From-SVN: r272555
2019-06-21Fix missing name in ChangeLogRichard Sandiford2-0/+4
Fix another case in which a name in the commit message wasn't copied to the ChangeLog -- sorry! From-SVN: r272553
2019-06-21PR c++/90953 - ICE with -Wmissing-format-attribute.Marek Polacek4-3/+44
* c-common.c (check_function_arguments_recurse): Use get_attribute_name. (check_missing_format_attribute): Likewise. * g++.dg/warn/miss-format-7.C: New test. From-SVN: r272552
2019-06-21Fix missing name in ChangeLogRichard Sandiford1-0/+1
It was in the commit message but got dropped from the ChangeLog entry due to a scripting bug. From-SVN: r272551
2019-06-21compiler: omit write barrier for assignment to *(convert(&local))Ian Lance Taylor2-1/+21
Assignments to local variables don't need a write barrier. But currently the compiler inserts a write barrier if the LHS is a local variable with type converted, as *(convert(&local)). Let the compiler recognize this pattern and omit the write barrier. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/182541 From-SVN: r272550
2019-06-21compiler: open code string slice expressionsIan Lance Taylor5-22/+74
Currently a string slice expression is implemented with a runtime call __go_string_slice. Change it to open code it, which is more efficient, and allows the backend to further optimize it. Also omit the write barrier for length-only update (i.e. s = s[:n]). Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/182540 From-SVN: r272549