Martin Liska [Tue, 25 Jun 2019 11:49:36 +0000 (13:49 +0200)]
Do not call strlen with NULL argument in libgcov.
2019-06-25 Martin Liska <mliska@suse.cz>
* libgcov-driver-system.c (replace_filename_variables): Do not
call strlen with NULL argument.
From-SVN: r272650
Kwok Cheung Yeung [Tue, 25 Jun 2019 11:41:38 +0000 (11:41 +0000)]
Enable full GFortran library for AMD GCN
2019-06-25 Kwok Cheung Yeung <kcy@codesourcery.com>
Andrew Stubbs <ams@codesourcery.com>
libgfortran/
* configure: Regenerate.
* configure.ac (LIBGFOR_MINIMAL): Do not use on AMD GCN.
Co-Authored-By: Andrew Stubbs <ams@codesourcery.com>
From-SVN: r272649
Andrew Stubbs [Tue, 25 Jun 2019 11:41:33 +0000 (11:41 +0000)]
Stub implementation of unwinding for AMD GCN.
2019-06-25 Andrew Stubbs <ams@codesourcery.com>
libgcc/
* config/gcn/t-amdgcn (LIB2ADD): Add unwind-gcn.c.
* config/gcn/unwind-gcn.c: New file.
From-SVN: r272648
Kwok Cheung Yeung [Tue, 25 Jun 2019 11:41:29 +0000 (11:41 +0000)]
Create GCN-specific gthreads
2019-06-25 Kwok Cheung Yeung <kcy@codesourcery.com>
Andrew Stubbs <ams@codesourcery.com>
gcc/
* config.gcc (thread_file): Set to gcn for AMD GCN.
* config/gcn/gcn.c (gcn_emutls_var_init): New function.
(TARGET_EMUTLS_VAR_INIT): New hook.
config/
* gthr.m4 (GCC_AC_THREAD_HEADER): Add case for gcn.
libgcc/
* configure: Regenerate.
* config/gcn/gthr-gcn.h: New.
Co-Authored-By: Andrew Stubbs <ams@codesourcery.com>
From-SVN: r272647
Martin Jambor [Tue, 25 Jun 2019 11:05:19 +0000 (13:05 +0200)]
[PR 90939] Remove outdated assert in ipcp_bits_lattice::meet_with
2019-06-25 Martin Jambor <mjambor@suse.cz>
PR ipa/90939
* ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert.
testsuite/
* g++.dg/lto/pr90939_[01].C: New test.
From-SVN: r272646
Richard Biener [Tue, 25 Jun 2019 10:59:48 +0000 (10:59 +0000)]
re PR tree-optimization/90930 (Excessive memory consumption)
2019-06-25 Richard Biener <rguenther@suse.de>
PR tree-optimization/90930
* tree-ssa-reassoc.c (reassociate_bb): Only rewrite expression
into parallel form in the last pass instance.
* gcc.dg/tree-ssa/reassoc-24.c: Adjust.
* gcc.dg/tree-ssa/reassoc-25.c: Likewise.
From-SVN: r272644
Claudiu Zissulescu [Tue, 25 Jun 2019 09:52:04 +0000 (11:52 +0200)]
[ARC] Fix for PR89838
gcc/
xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com>
* config/arc/arc.c (arc_symbol_binds_local_p): New function.
(arc_legitimize_pic_address): Simplify and cleanup the function.
(SYMBOLIC_CONST): Remove.
(prepare_pic_move): Likewise.
(prepare_move_operands): Handle complex mov cases here.
(arc_legitimize_address_0): Remove call to
arc_legitimize_pic_address.
(arc_legitimize_address): Remove call to
arc_legitimize_tls_address.
* config/arc/arc.md (movqi_insn): Allow Cm3 match.
(movhi_insn): Likewise.
/gcc/testsuite
xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com>
* gcc.target/arc/pr89838.c: New file.
From-SVN: r272643
Jozef Lawrynowicz [Tue, 25 Jun 2019 09:41:17 +0000 (09:41 +0000)]
Implement alternate "__intN__" form of "__intN" type
gcc/ChangeLog:
* gcc/c-family/c-common.c (c_common_nodes_and_builtins): Define
alternate "__intN__" name for "__intN" types.
* gcc/c/c-parser.c (c_parse_init): Create keyword for "__intN__" type.
* gcc/cp/lex.c (init_reswords): Likewise.
* gcc/config/msp430/msp430.h: Use __int20__ for SIZE_TYPE and
PTRDIFF_TYPE.
* gcc/cp/cp-tree.h (cp_decl_specifier_seq): New bitfield "int_n_alt".
* gcc/c/c-decl.c (declspecs_add_type): Don't pedwarn about "__intN" ISO
C incompatibility if alternate "__intN__" form is used.
* gcc/cp/decl.c (grokdeclarator): Likewise.
* gcc/cp/parser.c (cp_parser_simple_type_specifier): Set
decl_specs->int_n_alt if "__intN__" form is used.
* gcc/gimple-ssa-sprintf.c (build_intmax_type_nodes): Accept "__intN__"
format of "__intN" types for UINTMAX_TYPE.
* gcc/brig/brig-lang.c (brig_build_c_type_nodes): Accept "__intN__"
format of "__intN" types for SIZE_TYPE.
* gcc/lto/lto-lang.c (lto_build_c_type_nodes): Likewise.
* gcc/stor-layout.c (initialize_sizetypes): Accept "__intN__"
format of "__intN" types for SIZETYPE.
* gcc/tree.c (build_common_tree_nodes): Accept "__intN__"
format of "__intN" types for SIZE_TYPE and PTRDIFF_TYPE.
* gcc/doc/invoke.texi: Document that __intN__ disables pedantic
warnings.
gcc/testsuite/ChangeLog:
* gcc.target/msp430/mlarge-pedwarns.c: New test.
From-SVN: r272640
Jan Hubicka [Tue, 25 Jun 2019 08:35:01 +0000 (10:35 +0200)]
tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Check that base2_alias_set is non-zero before doing TBAA based disambiguation.
* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Check that
base2_alias_set is non-zero before doing TBAA based disambiguation.
From-SVN: r272639
Martin Liska [Tue, 25 Jun 2019 08:17:39 +0000 (10:17 +0200)]
Properly sum costs in tree-vect-loop.c (PR tree-optimization/90973).
2019-06-25 Martin Liska <mliska@suse.cz>
PR tree-optimization/90973
* tree-vect-loop.c (vect_get_known_peeling_cost): Sum retval
of prologue and epilogue.
From-SVN: r272638
Eric Botcazou [Tue, 25 Jun 2019 08:17:08 +0000 (08:17 +0000)]
decl.c (gnat_to_gnu_entity): Remove superfluous test in previous change.
* gcc-interface/decl.c (gnat_to_gnu_entity): Remove superfluous test
in previous change.
* gcc-interface/gigi.h (maybe_character_type): Fix formatting.
(maybe_character_value): Likewise.
From-SVN: r272637
Jakub Jelinek [Tue, 25 Jun 2019 07:00:34 +0000 (09:00 +0200)]
re PR sanitizer/90954 (ICE: combining undefined behavior sanitizer with openmp)
PR sanitizer/90954
* c-omp.c (c_finish_omp_atomic): Allow tree_invariant_p in addition
to SAVE_EXPR in first operand of a COMPOUND_EXPR.
* c-c++-common/gomp/pr90954.c: New test.
From-SVN: r272635
Jakub Jelinek [Tue, 25 Jun 2019 06:59:12 +0000 (08:59 +0200)]
pstl_config.h (_PSTL_PRAGMA_SIMD_SCAN, [...]): Define to OpenMP 5.0 pragmas even for GCC 10.0+.
* include/pstl/pstl_config.h (_PSTL_PRAGMA_SIMD_SCAN,
_PSTL_PRAGMA_SIMD_INCLUSIVE_SCAN, _PSTL_PRAGMA_SIMD_EXCLUSIVE_SCAN):
Define to OpenMP 5.0 pragmas even for GCC 10.0+.
(_PSTL_UDS_PRESENT): Define to 1 for GCC 10.0+.
From-SVN: r272634
Ian Lance Taylor [Tue, 25 Jun 2019 06:16:21 +0000 (06:16 +0000)]
runtime: mark memequal and memclrNoHeapPointers nosplit
They are wrappers of libc functions that use no stack. Mark them
nosplit so the linker won't patch it to call __morestack_non_split.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/183629
From-SVN: r272633
GCC Administrator [Tue, 25 Jun 2019 00:16:16 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r272632
Jan Hubicka [Mon, 24 Jun 2019 21:13:12 +0000 (23:13 +0200)]
ipa-utils.h (type_with_linkage_p): Verify that type is CXX_ODR_P.
* 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
Iain Sandoe [Mon, 24 Jun 2019 19:36:56 +0000 (19:36 +0000)]
[Darwin, PPC, testsuite] Skip tests for unimplemented functionality.
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 [Mon, 24 Jun 2019 19:25:44 +0000 (19:25 +0000)]
[Darwin, PPC, testsuite] Fix spec-barr-1.c for Darwin.
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 [Mon, 24 Jun 2019 19:13:01 +0000 (19:13 +0000)]
[Darwin, testsuite] Fix isystem-2.c.
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
Ian Lance Taylor [Mon, 24 Jun 2019 17:54:07 +0000 (17:54 +0000)]
compiler: open code string equality
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
Richard Biener [Mon, 24 Jun 2019 17:21:40 +0000 (17:21 +0000)]
re PR target/90972 (ICE in fold_convert_loc, at fold-const.c:2429)
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 [Mon, 24 Jun 2019 17:17:26 +0000 (17:17 +0000)]
re PR tree-optimization/90930 (Excessive memory consumption)
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
Ian Lance Taylor [Mon, 24 Jun 2019 16:54:22 +0000 (16:54 +0000)]
compiler: use builtin memcmp directly
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
Martin Sebor [Mon, 24 Jun 2019 15:47:22 +0000 (15:47 +0000)]
utils.c (handle_nonnull_attribute): Quote attribute name.
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
Jason Merrill [Mon, 24 Jun 2019 14:34:35 +0000 (10:34 -0400)]
Don't use a separate CLASSTYPE_AS_BASE if it's the same size.
* class.c (layout_class_type): Don't use a separate
CLASSTYPE_AS_BASE if it's the same size.
From-SVN: r272618
Jonathan Wakely [Mon, 24 Jun 2019 12:09:51 +0000 (13:09 +0100)]
Fix std::midpoint for denormal values
* 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 [Mon, 24 Jun 2019 12:09:47 +0000 (13:09 +0100)]
Define C11 macros such as FLT_DECIMAL_DIG for C++17
* testsuite/18_support/headers/cfloat/values_c++17.cc: New test.
From-SVN: r272615
GCC Administrator [Mon, 24 Jun 2019 00:16:17 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r272613
Ian Lance Taylor [Sun, 23 Jun 2019 22:10:19 +0000 (22:10 +0000)]
compiler: edit error messages to avoid -Wformat-diag warnings
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 [Sun, 23 Jun 2019 22:04:53 +0000 (22:04 +0000)]
compiler: add go_debug and use it for debug messages
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
Iain Sandoe [Sun, 23 Jun 2019 20:29:09 +0000 (20:29 +0000)]
[Darwin, PPC, testsuite] Fix builtins-2 for Darwin.
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 [Sun, 23 Jun 2019 20:12:22 +0000 (20:12 +0000)]
[Darwin, PPC, testsuite] Fix pr80125 testcase for Darwin.
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 [Sun, 23 Jun 2019 19:48:55 +0000 (19:48 +0000)]
[Darwin, PPC, testsuite] Fix builtins-1 testcase for Darwin.
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 [Sun, 23 Jun 2019 19:23:51 +0000 (19:23 +0000)]
[Darwin, PPC] Handle GCC target pragma.
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 [Sun, 23 Jun 2019 19:13:08 +0000 (19:13 +0000)]
[Darwin, PPC] Emit uppercase versions of ppc defines.
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 [Sun, 23 Jun 2019 18:56:21 +0000 (18:56 +0000)]
[Darwin, PPC, testsuite] Fix pr71785 testcase for Darwin.
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
Marek Polacek [Sun, 23 Jun 2019 15:10:00 +0000 (15:10 +0000)]
Rename DEFAULT_ARG to DEFERRED_PARSE.
From-SVN: r272600
GCC Administrator [Sun, 23 Jun 2019 00:16:20 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r272599
Jerry DeLisle [Sat, 22 Jun 2019 20:02:51 +0000 (20:02 +0000)]
Fix typo in ChangeLog
From-SVN: r272595
Jerry DeLisle [Sat, 22 Jun 2019 19:58:47 +0000 (19:58 +0000)]
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
Iain Sandoe [Sat, 22 Jun 2019 19:43:26 +0000 (19:43 +0000)]
[Darwin, PPC, testsuite] Add requires for DFP to two tests.
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 [Sat, 22 Jun 2019 19:38:47 +0000 (19:38 +0000)]
[Darwin, PPC, testsuite] Fix darwin-bool-1.c.
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
Jeff Law [Sat, 22 Jun 2019 16:31:50 +0000 (10:31 -0600)]
* config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
From-SVN: r272590
Marek Polacek [Sat, 22 Jun 2019 16:29:06 +0000 (16:29 +0000)]
re PR c++/65707 (internal compiler error: in unify, at cp/pt.c:18577)
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 [Sat, 22 Jun 2019 15:51:49 +0000 (15:51 +0000)]
re PR c++/66256 (noexcept evaluation done before end of class)
PR c++/66256
* g++.dg/cpp0x/noexcept54.C: New test.
From-SVN: r272588
Jan Hubicka [Sat, 22 Jun 2019 15:32:51 +0000 (17:32 +0200)]
alias-access-path-6.c: New testcase.
* 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
Marek Polacek [Sat, 22 Jun 2019 15:14:30 +0000 (15:14 +0000)]
PR c++/86476 - noexcept-specifier is a complete-class context.
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 [Sat, 22 Jun 2019 14:43:00 +0000 (14:43 +0000)]
PR c++/90881 - bogus -Wunused-value in unevaluated context.
* 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
Paolo Carlini [Sat, 22 Jun 2019 09:36:38 +0000 (09:36 +0000)]
decl.c (grokdeclarator): Use id_loc...
/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
GCC Administrator [Sat, 22 Jun 2019 00:16:17 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r272583
Cherry Zhang [Fri, 21 Jun 2019 22:42:18 +0000 (22:42 +0000)]
compiler: intrinsify some math/bits functions
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
Ian Lance Taylor [Fri, 21 Jun 2019 22:21:40 +0000 (22:21 +0000)]
runtime: inline and remove eqtype
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
Ian Lance Taylor [Fri, 21 Jun 2019 22:00:57 +0000 (22:00 +0000)]
compiler: open code some type assertions
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
Paolo Carlini [Fri, 21 Jun 2019 21:58:19 +0000 (21:58 +0000)]
re PR c++/90909 (call devirtualized to pure virtual)
2019-06-21 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/90909
* g++.dg/other/final7.C: New.
From-SVN: r272576
Jakub Jelinek [Fri, 21 Jun 2019 21:38:35 +0000 (23:38 +0200)]
tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle even zero 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
Paolo Carlini [Fri, 21 Jun 2019 20:47:40 +0000 (20:47 +0000)]
re PR c++/90909 (call devirtualized to pure virtual)
/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
Paolo Carlini [Fri, 21 Jun 2019 20:46:51 +0000 (20:46 +0000)]
re PR c++/90909 (call devirtualized to pure virtual)
/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
Marek Polacek [Fri, 21 Jun 2019 20:43:47 +0000 (20:43 +0000)]
PR c++/61490 - qualified-id in friend function definition.
* 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
Marek Polacek [Fri, 21 Jun 2019 20:32:06 +0000 (20:32 +0000)]
PR c++/60223 - ICE with T{} in non-deduced context.
* 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
Marek Polacek [Fri, 21 Jun 2019 20:26:54 +0000 (20:26 +0000)]
PR c++/64235 - missing syntax error with invalid alignas.
* 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
Steven G. Kargl [Fri, 21 Jun 2019 20:24:01 +0000 (20:24 +0000)]
re PR fortran/67884 (Missing error message on required allocatable attribute)
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
Marek Polacek [Fri, 21 Jun 2019 20:19:24 +0000 (20:19 +0000)]
PR c++/90490 - fix decltype issues in noexcept-specifier.
* 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
Matthew Beliveau [Fri, 21 Jun 2019 19:58:32 +0000 (19:58 +0000)]
PR c++/90875 - added -Wswitch-outside-range option
From-SVN: r272567
Iain Sandoe [Fri, 21 Jun 2019 19:18:18 +0000 (19:18 +0000)]
[Darwin, fixincludes] Fix Darwin9/10 math.h issues.
Darwin has had long long functions for some considerable time and these are
exposed in Darwin8 and Darwin11+ headers. However, for some reason it was
elected to hide them behind __STRICT_ANSI__ and __STDC_VERSION__ on Darwin9
and Darwin10. This is a problem for G++/libstdc++ that expects the functions
to be available for strict ansi (-std=c++14, for example) and without
defining __STDC_VERSION__. The fix here follows the pattern used in
Darwin11+ headers where the functions may be explicitly hidden by defining
__DARWIN_NO_LONG_LONG.
This fixes the tr1 testsuite fails seen on Darwin9 and 10.
2019-06-21 Iain Sandoe <iain@sandoe.co.uk>
* inclhack.def: Replace the complex test using __STRICT_ANSI__ and
__STDC_VERSION__ with a test using __DARWIN_NO_LONG_LONG.
Ensure that the top level math.h uses <> to wrap included headers
rather than "".
* fixincl.x: Regenerated.
* tests/base/architecture/ppc/math.h: Update test to include the
__DARWIN_NO_LONG_LONG case.
From-SVN: r272563
Iain Sandoe [Fri, 21 Jun 2019 19:03:45 +0000 (19:03 +0000)]
[Darwin, fixincludes] Fix Darwin14 header issues.
There are two issues with the Darwin14 (SDK) headers in which unguarded
advanced syntax elements causes any code including these headers to fail.
2019-06-21 Iain Sandoe <iain@sandoe.co.uk>
* inclhack.def: Guard __has_attribute and __has_extension in
os/base.h.
Guard Apple blocks syntax in dispatch/object.h.
* fixincl.x: Regenerate.
* tests/base/dispatch/object.h: New file.
* tests/base/os/base.h: New file.
From-SVN: r272561
Richard Biener [Fri, 21 Jun 2019 18:12:58 +0000 (18:12 +0000)]
re PR tree-optimization/90930 (Excessive memory consumption)
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
Matthew Beliveau [Fri, 21 Jun 2019 17:50:29 +0000 (17:50 +0000)]
PR c++/90875 - added -Wswitch-outside-range option
* 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
Steven G. Kargl [Fri, 21 Jun 2019 16:57:24 +0000 (16:57 +0000)]
re PR fortran/51991 (Wrong error message with variables named "SAVE*")
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
Jeff Law [Fri, 21 Jun 2019 16:36:00 +0000 (10:36 -0600)]
re PR tree-optimization/90949 (null pointer check removed)
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
Richard Sandiford [Fri, 21 Jun 2019 15:02:46 +0000 (15:02 +0000)]
Fix missing name in ChangeLog
Fix another case in which a name in the commit message wasn't copied to
the ChangeLog -- sorry!
From-SVN: r272553
Marek Polacek [Fri, 21 Jun 2019 14:41:22 +0000 (14:41 +0000)]
PR c++/90953 - ICE with -Wmissing-format-attribute.
* 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
Richard Sandiford [Fri, 21 Jun 2019 14:38:39 +0000 (14:38 +0000)]
Fix missing name in ChangeLog
It was in the commit message but got dropped from the ChangeLog entry
due to a scripting bug.
From-SVN: r272551
Ian Lance Taylor [Fri, 21 Jun 2019 14:34:26 +0000 (14:34 +0000)]
compiler: omit write barrier for assignment to *(convert(&local))
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
Ian Lance Taylor [Fri, 21 Jun 2019 14:14:58 +0000 (14:14 +0000)]
compiler: open code string slice expressions
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
Richard Biener [Fri, 21 Jun 2019 13:56:54 +0000 (13:56 +0000)]
re PR debug/90914 (ICE in schedule_generic_params_dies_gen, at dwarf2out.c:27153)
2019-06-21 Richard Biener <rguenther@suse.de>
PR debug/90914
* dwarf2out.c (prune_unused_types_walk): Always consider
function-local extern declarations as used.
* g++.dg/debug/pr90914.C: New testcase.
From-SVN: r272547
Richard Biener [Fri, 21 Jun 2019 11:10:39 +0000 (11:10 +0000)]
re PR tree-optimization/90913 (ICE in maybe_gen_insn, at optabs.c:7341 since r272239)
2019-06-21 Richard Biener <rguenther@suse.de>
PR tree-optimization/90913
* tree-vect-loop-manip.c (vect_loop_versioning): Do not re-use
the scalar variant of if-conversion versioning.
* gfortran.dg/vect/pr90913.f90: New testcase.
From-SVN: r272545
Jakub Jelinek [Fri, 21 Jun 2019 06:48:57 +0000 (08:48 +0200)]
omp-low.c (lower_rec_simd_input_clauses): Add rvar2 argument...
* omp-low.c (lower_rec_simd_input_clauses): Add rvar2 argument,
create another "omp scan inscan exclusive" array if
!ctx->scan_inclusive.
(lower_rec_input_clauses): Handle exclusive scan inscan reductions.
(lower_omp_scan): Likewise.
* tree-vectorizer.h (struct _stmt_vec_info): Use 3-bit instead of
2-bit bitfield for simd_lane_access_p member.
* tree-vect-data-refs.c (vect_analyze_data_refs): Also handle
aux == (void *)-4 as simd lane access.
* tree-vect-stmts.c (check_scan_store): Handle exclusive scan. Update
comment with permutations to show the canonical permutation order.
(vectorizable_scan_store): Handle exclusive scan.
(vectorizable_store): Call vectorizable_scan_store even for
STMT_VINFO_SIMD_LANE_ACCESS_P > 3.
* gcc.dg/vect/vect-simd-12.c: New test.
* gcc.dg/vect/vect-simd-13.c: New test.
* gcc.dg/vect/vect-simd-14.c: New test.
* gcc.dg/vect/vect-simd-15.c: New test.
* gcc.target/i386/sse2-vect-simd-12.c: New test.
* gcc.target/i386/sse2-vect-simd-13.c: New test.
* gcc.target/i386/sse2-vect-simd-14.c: New test.
* gcc.target/i386/sse2-vect-simd-15.c: New test.
* gcc.target/i386/avx2-vect-simd-12.c: New test.
* gcc.target/i386/avx2-vect-simd-13.c: New test.
* gcc.target/i386/avx2-vect-simd-14.c: New test.
* gcc.target/i386/avx2-vect-simd-15.c: New test.
* gcc.target/i386/avx512f-vect-simd-12.c: New test.
* gcc.target/i386/avx512f-vect-simd-13.c: New test.
* gcc.target/i386/avx512f-vect-simd-14.c: New test.
* gcc.target/i386/avx512bw-vect-simd-15.c: New test.
* g++.dg/vect/simd-6.cc: New test.
* g++.dg/vect/simd-7.cc: New test.
* g++.dg/vect/simd-8.cc: New test.
* g++.dg/vect/simd-9.cc: New test.
* c-c++-common/gomp/scan-2.c: Don't expect any diagnostics.
From-SVN: r272544
Jakub Jelinek [Fri, 21 Jun 2019 06:46:45 +0000 (08:46 +0200)]
re PR c++/90950 (OpenMP clause handling rejecting references to incomplete types in templates)
PR c++/90950
* semantics.c (finish_omp_clauses): Don't reject references to
incomplete types if processing_template_decl.
* g++.dg/gomp/lastprivate-1.C: New test.
From-SVN: r272543
Jakub Jelinek [Fri, 21 Jun 2019 06:45:59 +0000 (08:45 +0200)]
tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle "omp simd array" arrays with one byte elements.
* tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
"omp simd array" arrays with one byte elements.
* gcc.dg/vect/vect-simd-11.c: New test.
* gcc.target/i386/sse2-vect-simd-11.c: New test.
* gcc.target/i386/avx2-vect-simd-11.c: New test.
* gcc.target/i386/avx512bw-vect-simd-11.c: New test.
From-SVN: r272542
GCC Administrator [Fri, 21 Jun 2019 00:16:20 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r272538
Marek Polacek [Thu, 20 Jun 2019 22:35:34 +0000 (22:35 +0000)]
re PR c++/79781 (ICE on valid C++ code with -std=c++14 (in assemble_integer, at varasm.c:2733))
PR c++/79781
* g++.dg/ext/goto1.C: New test.
From-SVN: r272527
Steven G. Kargl [Thu, 20 Jun 2019 22:16:29 +0000 (22:16 +0000)]
re PR fortran/77632 ([F08] Pointer initialisation does not quite work with arrays)
2019-06-20 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/77632
* /decl.c (variable_decl): Mark a variable that is a target in pointer
initialization when in PROGRAM, MODULE, or SUBMODULE scope with an
implicit save.
2019-06-20 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/77632
* gfortran.dg/pr77632_1.f90: New test.
From-SVN: r272526
Marek Polacek [Thu, 20 Jun 2019 22:06:36 +0000 (22:06 +0000)]
re PR c++/68265 (Arbitrary syntactic nonsense silently accepted after 'int (*){}' until the next close brace)
PR c++/68265
* g++.dg/parse/error62.C: New test.
From-SVN: r272525
Steven G. Kargl [Thu, 20 Jun 2019 21:39:43 +0000 (21:39 +0000)]
re PR fortran/86587 (Derived-type with attributes BIND(C) and PRIVATE raises an error but standard accepts it)
2019-06-20 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/86587
* symbol.c (verify_bind_c_derived_type): Remove erroneous error
checking for BIND(C) and PRIVATE attributes.
2019-06-20 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/86587
* gfortran.dg/pr86587.f90: New test.
From-SVN: r272524
Uros Bizjak [Thu, 20 Jun 2019 21:07:38 +0000 (23:07 +0200)]
alpha.md (@unaligned_store<mode>): Rename from unaligned_store<mode>.
* config/alpha/alpha.md (@unaligned_store<mode>):
Rename from unaligned_store<mode>.
(@reload_in<mode>_aligned): Rename from reload_in<mode>_aligned.
* config/alpha/sync.md (@load_locked_<mode>): Rename
from load_locked_<mode>.
(@store_conditional_<mode>): Rename from store_conditional_<mode>.
(@atomic_compare_and_swap<mode>_1): Rename
from atomic_compare_and_swap<mode>_1.
(@atomic_exchange<mode>_1): Rename from atomic_exchange<mode>_1.
* config/alpha/alpha.c (alpha_expand_mov_nobwx):
Use gen_reload_in_aligned and gen_unaligned_store.
(emit_load_locked): Remove.
(emit_store_conditional): Ditto.
(alpha_split_atomic_op): Use gen_load_locked and gen_store_conditional.
(alpha_split_compare_and_swap): Ditto.
(alpha_expand_compare_and_swap_12): Use gen_atomic_compare_and_swap_1.
(alpha_split_compare_and_swap_12): Use gen_load_locked
and gen_store_conditional.
(alpha_split_atomic_exchange): Ditto.
(alpha_expand_atomic_exchange_12): Use gen_atomic_exchange_1.
(alpha_split_atomic_exchange_12): Use gen_load_locked
and gen_store_conditional.
From-SVN: r272523
Janne Blomqvist [Thu, 20 Jun 2019 20:26:39 +0000 (23:26 +0300)]
libfortran/65921: Add forgotten PR number to ChangeLog
2019-06-14 Janne Blomqvist <jb@gcc.gnu.org>
PR fortran/65921
* runtime/memory.c (SIZE_MAX):Remove macro definition.
(xmallocarray): Use __builtin_mul_overflow.
From-SVN: r272520
Iain Sandoe [Thu, 20 Jun 2019 19:15:58 +0000 (19:15 +0000)]
[objective-c/c++, testsuite] Fix stubify tests for -fnext-runtime.
These tests were broken in the first place, and more broken following
the change to drop pic symbol stubs unless the linker needs them.
Fixed to work for x86 as well as powerpc and amended the options to
force pic symbol stubs on.
gcc/testsuite/
2019-06-20 Iain Sandoe <iain@sandoe.co.uk>
* obj-c++.dg/stubify-1.mm: Adjust options and scan-asm checks.
* obj-c++.dg/stubify-2.mm: Likewise.
* objc.dg/stubify-1.m: Likewise.
* objc.dg/stubify-2.m: Likewise.
From-SVN: r272518
Richard Earnshaw [Thu, 20 Jun 2019 17:27:06 +0000 (17:27 +0000)]
[aarch64] Refactor common errata work-around specs
With the addition of the AArch64 NetBSD support code we now have four
ports all using and defining the same errata work-around headers.
That's silly and long-term becomes a maintenance burden.
This patch factors all that code into a single header to eliminate all
the duplication.
* config/aarch64/aarch64-errata.h: New file.
* config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Delete.
(CA53_ERR_843419_SPEC): Delete.
(LINK_SPEC): Use AARCH64_ERRATA_LINK_SPEC instead of above.
* config/aarch64/aarch64-linux.h: Likewise.
* config/aarch64/aarch64-netbsd.h: Likewise.
* config/aarch64/aarch64-freebsd.h: Likewise.
From-SVN: r272515
Marek Polacek [Thu, 20 Jun 2019 17:12:38 +0000 (17:12 +0000)]
* config/sh/sh.c (sh2a_function_vector_p): Use get_attribute_name.
From-SVN: r272514
Michael Meissner [Thu, 20 Jun 2019 17:10:51 +0000 (17:10 +0000)]
rs6000.md (isa attribute): Add support for for a future processor.
2019-06-20 Michael Meissner <meissner@linux.ibm.com>
* config/rs6000/rs6000.md (isa attribute): Add support for
for a future processor.
From-SVN: r272513
Marek Polacek [Thu, 20 Jun 2019 15:37:35 +0000 (15:37 +0000)]
re PR c++/87512 (Error: the type ‘const auto’ of ‘constexpr’ variable is not literal)
PR c++/87512
* g++.dg/cpp1z/inline-var7.C: New test.
From-SVN: r272512
H.J. Lu [Thu, 20 Jun 2019 15:30:54 +0000 (15:30 +0000)]
i386: Generate standard floating point scalar operation patterns
Standard floating point scalar operation patterns for combiner, which
preserve the rest of the vector, look like
(vec_merge:V2DF
(vec_duplicate:V2DF (reg:DF 87))
(reg/v:V2DF 85 [ x ])
(const_int 1 [0x1])]))
and
(vec_merge:V2DF
(vec_duplicate:V2DF
(op:DF (vec_select:DF (reg/v:V2DF 85 [ x ])
(parallel [ (const_int 0 [0])]))
(reg:DF 87))
(reg/v:V2DF 85 [ x ])
(const_int 1 [0x1])]))
This patch adds and generates such standard floating point scalar
operation patterns for +, -, *, /, > and <.
Tested on x86-64.
gcc/
PR target/54855
* config/i386/i386-expand.c (ix86_expand_vector_set): Generate
standard scalar operation pattern for V2DF.
* config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3): New.
(*<sse>_vm<multdiv_mnemonic><mode>3): Likewise.
(*ieee_<ieee_maxmin><mode>3): Likewise.
(vec_setv2df_0): Likewise.
gcc/testsuite/
PR target/54855
* gcc.target/i386/pr54855-1.c: New test.
* gcc.target/i386/pr54855-2.c: Likewise.
* gcc.target/i386/pr54855-3.c: Likewise.
* gcc.target/i386/pr54855-4.c: Likewise.
* gcc.target/i386/pr54855-5.c: Likewise.
* gcc.target/i386/pr54855-6.c: Likewise.
* gcc.target/i386/pr54855-7.c: Likewise.
* gcc.target/i386/pr54855-8.c: Likewise.
* gcc.target/i386/pr54855-9.c: Likewise.
* gcc.target/i386/pr54855-10.c: Likewise.
From-SVN: r272511
Jan Hubicka [Thu, 20 Jun 2019 14:18:02 +0000 (16:18 +0200)]
tree-ssa-alias.c (aliasing_component_refs_p): Remove ref2_is_decl parameter; it has no use in gimple memory model.
* tree-ssa-alias.c (aliasing_component_refs_p): Remove ref2_is_decl
parameter; it has no use in gimple memory model.
(indirect_ref_may_alias_decl_p): Update.
* gcc.c-torture/execute/alias-access-path-1.c: New testcase.
From-SVN: r272510
Jonathan Wakely [Thu, 20 Jun 2019 14:17:57 +0000 (15:17 +0100)]
Skip libstdc++ debug build in early bootstrap stages
As mentioned in PR 90770, this is a patch that Debian have been carrying
for some time. The additional unoptimized copies of libstdc++ libs that
get built during each stage are never going to be used, so don't bother
building them.
For a profiled bootstrap this means we won't train the compiler on the
unoptimized library code with assertions enabled, but that doesn't seem
like a big problem, as the same code has already been compiled once for
the main libstdc++ library.
* acinclude.m4 (GLIBCXX_ENABLE_DEBUG): Only do debug build for final
stage of bootstrap.
* configure: Regenerate.
From-SVN: r272509
Jonathan Wakely [Thu, 20 Jun 2019 14:17:51 +0000 (15:17 +0100)]
Qualify calls to __never_valueless in <variant>
* include/std/variant (_Variant_storage, _Extra_visit_slot_needed):
Qualify calls to __never_valueless.
From-SVN: r272508
Marek Polacek [Thu, 20 Jun 2019 12:22:25 +0000 (12:22 +0000)]
re PR c++/89873 (internal compiler error: unexpected expression of kind implicit_conv_expr)
PR c++/89873
* g++.dg/cpp1y/noexcept1.C: New test.
From-SVN: r272507
Thomas Koenig [Thu, 20 Jun 2019 11:56:50 +0000 (11:56 +0000)]
re PR fortran/90937 (ICE: in gfc_get_symbol_decl, at fortran/trans-decl.c:1538)
2019-06-20 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/90937
* trans-types.c (get_formal_from_actual_arglist): Get symbol from
current namespace so it will be freed later. If symbol is of type
character, get an empty character length.
2019-06-20 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/90937
* gfortran.dg/external_procedure_4.f90: New test.
From-SVN: r272506
Tom de Vries [Thu, 20 Jun 2019 10:37:18 +0000 (10:37 +0000)]
[testsuite] Add missing dg-require-effective-target global_constructor
Add missing dg-require-effective-target global_constructor.
Tested on nvptx.
2019-06-20 Tom de Vries <tdevries@suse.de>
* gcc.dg/pr90866-2.c: Require global_constructor.
From-SVN: r272505
Tom de Vries [Thu, 20 Jun 2019 10:37:05 +0000 (10:37 +0000)]
[testsuite] Add missing dg-require-effective-target nonlocal_goto
Add missing dg-require-effective-target nonlocal_goto.
Tested on nvptx.
2019-06-20 Tom de Vries <tdevries@suse.de>
* gcc.c-torture/compile/pr89280.c: Require nonlocal_goto.
* gcc.dg/pr88870.c: Same.
* gcc.dg/pr90082.c: Same.
From-SVN: r272504
Tom de Vries [Thu, 20 Jun 2019 10:36:49 +0000 (10:36 +0000)]
[testsuite] Add missing dg-require-effective-target indirect_jumps
Add missing dg-require-effective-target indirect_jumps.
Tested on nvptx.
2019-06-20 Tom de Vries <tdevries@suse.de>
* gcc.dg/pr89737.c: Require indirect_jumps.
* gcc.dg/torture/pr87693.c: Same.
* gcc.dg/torture/pr89135.c: Same.
* gcc.dg/torture/pr90071.c: Same.
From-SVN: r272503