1. 25 Jun, 2019 7 commits
  2. 24 Jun, 2019 13 commits
    • ipa-utils.h (type_with_linkage_p): Verify that type is CXX_ODR_P. · f4af4019
      
      	* ipa-utils.h (type_with_linkage_p): Verify that type is
      	CXX_ODR_P.
      	(odr_type_p): Remove extra return.
      	* lto-streamer-out.c (hash_tree): Hash TYPE_CXX_ODR_P;
      	hash STRING_FLAG only for arrays and integers.
      	* tree-stremaer-in.c (unpack_ts_type_common_value_fields):
      	Update analogously.
      	* tree-streamer-out.c (pack_ts_type_common_value_fields):
      	Likewise.
      	* print-tree.c (print_node): Print cxx-odr-p
      	and string-flag.
      	* tree.c (need_assembler_name_p): Also check that type
      	is CXX_ODR_TYPE_P
      	(verify_type_variant): Update verification of SRING_FLAG;
      	also check CXX_ODR_P.
      	* tree.h (ARRAY_OR_INTEGER_TYPE_CHECK): New macro.
      	(TYPE_STRING_FLAG): Use it.
      	(TYPE_CXX_ODR_P): New macro.
      
      	* lto-common.c (compare_tree_sccs_1): Compare CXX_ODR_P;
      	compare STRING_FLAG only for arrays and integers.
      
      	* gcc-interface/decl.c (gnat_to_gnu_entity): Check that
      	type is array or integer prior checking string flag.
      	* gcc-interface/gigi.h (gnat_signed_type_for,
      	maybe_character_value): Likewise.
      
      	* c-common.c (braced_lists_to_strings): Check that
      	type is array or integer prior checking string flag.
      
      	* lex.c (cxx_make_type): Set TYPE_CXX_ODR_P.
      
      	* dwarf2out.c (gen_array_type_die): First check that type
      	is an array and then test string flag.
      
      	* trans-expr.c (gfc_conv_substring): Check that
      	type is array or integer prior checking string flag.
      	(gfc_conv_string_parameter): Likewise.
      	* trans-openmp.c (gfc_omp_scalar_p): Likewise.
      	* trans.c (gfc_build_array_ref): Likewise.
      
      From-SVN: r272628
      Jan Hubicka committed
    • [Darwin, PPC, testsuite] Skip tests for unimplemented functionality. · cd57f4d8
      The -mno-speculate-indirect-jumps functionality is not implemented for
      Darwin and, given that it's deprecated, is unlikely to be.
      
      2019-06-24  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* gcc.target/powerpc/safe-indirect-jump-1.c: Skip for Darwin.
      	* gcc.target/powerpc/safe-indirect-jump-7.c: Likewise.
      
      From-SVN: r272627
      Iain Sandoe committed
    • [Darwin, PPC, testsuite] Fix spec-barr-1.c for Darwin. · 4de1ded2
      We just needed to adjust the regex to accept Darwin's register names.
      
      2019-06-24  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* gcc.target/powerpc/spec-barr-1.c: Adjust scan assembler regex
      	to recognise Darwin's register names.
      
      From-SVN: r272626
      Iain Sandoe committed
    • [Darwin, testsuite] Fix isystem-2.c. · 367e5f9e
      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
      Iain Sandoe committed
    • compiler: open code string equality · 609c7da9
          
          Open code string equality with builtin memcmp. This allows
          further optimizations in the backend.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/183538
      
      From-SVN: r272624
      Ian Lance Taylor committed
    • re PR target/90972 (ICE in fold_convert_loc, at fold-const.c:2429) · d611cec3
      2019-06-24  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/90972
      	* tree-vect-stmts.c (vect_init_vector): Handle CONSTANT_CLASS_P
      	in common code, dealing with STRING_CST properly.
      
      	* gcc.dg/torture/pr90972.c: New testcase.
      
      From-SVN: r272623
      Richard Biener committed
    • re PR tree-optimization/90930 (Excessive memory consumption) · bab9de71
      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
      Richard Biener committed
    • compiler: use builtin memcmp directly · 2b92d5c6
          
          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
      Ian Lance Taylor committed
    • utils.c (handle_nonnull_attribute): Quote attribute name. · 1e3d475e
      
      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
      Martin Sebor committed
    • Don't use a separate CLASSTYPE_AS_BASE if it's the same size. · c3337b44
      	* class.c (layout_class_type): Don't use a separate
      	CLASSTYPE_AS_BASE if it's the same size.
      
      From-SVN: r272618
      Jason Merrill committed
    • Fix std::midpoint for denormal values · a3c8d7fb
      	* include/std/numeric (midpoint(T, T)): Change implementation for
      	floating-point types to avoid incorrect rounding of denormals.
      	* testsuite/26_numerics/midpoint/floating.cc: Add check for correct
      	rounding with denormals.
      	* testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line numbers.
      	* testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
      
      From-SVN: r272616
      Jonathan Wakely committed
    • Define C11 macros such as FLT_DECIMAL_DIG for C++17 · ff164b60
      	* testsuite/18_support/headers/cfloat/values_c++17.cc: New test.
      
      From-SVN: r272615
      Jonathan Wakely committed
    • Daily bump. · efe8764f
      From-SVN: r272613
      GCC Administrator committed
  3. 23 Jun, 2019 10 commits
    • compiler: edit error messages to avoid -Wformat-diag warnings · 587bd425
          
          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
      Ian Lance Taylor committed
    • compiler: add go_debug and use it for debug messages · 26fcb396
          
          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
      Ian Lance Taylor committed
    • [Darwin, PPC, testsuite] Fix builtins-2 for Darwin. · d7e96c46
      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
      Iain Sandoe committed
    • [Darwin, PPC, testsuite] Fix pr80125 testcase for Darwin. · 5fe35245
      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
      Iain Sandoe committed
    • [Darwin, PPC, testsuite] Fix builtins-1 testcase for Darwin. · fb007b0d
      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
      Iain Sandoe committed
    • [Darwin, PPC] Handle GCC target pragma. · deb9c4eb
      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
      Iain Sandoe committed
    • [Darwin, PPC] Emit uppercase versions of ppc defines. · 64ce6cc2
      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
      Iain Sandoe committed
    • [Darwin, PPC, testsuite] Fix pr71785 testcase for Darwin. · 63e6229c
      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
      Iain Sandoe committed
    • Rename DEFAULT_ARG to DEFERRED_PARSE. · 7b49e3da
      From-SVN: r272600
      Marek Polacek committed
    • Daily bump. · 35e2848f
      From-SVN: r272599
      GCC Administrator committed
  4. 22 Jun, 2019 10 commits
    • Fix typo in ChangeLog · 5b635004
      From-SVN: r272595
      Jerry DeLisle committed
    • re PR fortran/89782 (Can do an internal READ of a character array when it is a… · b1be0054
      re PR fortran/89782 (Can do an internal READ of a character array when it is 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
      Jerry DeLisle committed
    • [Darwin, PPC, testsuite] Add requires for DFP to two tests. · d9fe6cc4
      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
      Iain Sandoe committed
    • [Darwin, PPC, testsuite] Fix darwin-bool-1.c. · 2d8a7648
      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
      Iain Sandoe committed
    • * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove. · f162b26c
      From-SVN: r272590
      Jeff Law committed
    • re PR c++/65707 (internal compiler error: in unify, at cp/pt.c:18577) · 943e7063
      	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
      Marek Polacek committed
    • re PR c++/66256 (noexcept evaluation done before end of class) · ec121f15
      	PR c++/66256
      	* g++.dg/cpp0x/noexcept54.C: New test.
      
      From-SVN: r272588
      Marek Polacek committed
    • alias-access-path-6.c: New testcase. · 1240df7b
      	* 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
      Jan Hubicka committed
    • PR c++/86476 - noexcept-specifier is a complete-class context. · 78f7607d
      	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
      Marek Polacek committed
    • PR c++/90881 - bogus -Wunused-value in unevaluated context. · 7f3db013
      	* 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
      Marek Polacek committed