Commit Graph

169397 Commits

Author SHA1 Message Date
Kwok Cheung Yeung 76d4633107 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
2019-06-25 11:41:29 +00:00
Martin Jambor 4c3d876014 [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
2019-06-25 13:05:19 +02:00
Richard Biener 332d6c4189 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
2019-06-25 10:59:48 +00:00
Claudiu Zissulescu 673f01b856 [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
2019-06-25 11:52:04 +02:00
Jozef Lawrynowicz 5e5803060c 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
2019-06-25 09:41:17 +00:00
Jan Hubicka a7e8a463cd 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
2019-06-25 08:35:01 +00:00
Martin Liska 1a3e38aee2 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
2019-06-25 08:17:39 +00:00
Eric Botcazou c23524153d 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
2019-06-25 08:17:08 +00:00
Jakub Jelinek 361af3e419 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
2019-06-25 09:00:34 +02:00
Jakub Jelinek 32bab8b6ad 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
2019-06-25 08:59:12 +02:00
Ian Lance Taylor 81fadf1c8d 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
2019-06-25 06:16:21 +00:00
GCC Administrator 33437116ed Daily bump.
From-SVN: r272632
2019-06-25 00:16:16 +00:00
Jan Hubicka f4af4019df 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
2019-06-24 21:13:12 +00:00
Iain Sandoe cd57f4d81b [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
2019-06-24 19:36:56 +00:00
Iain Sandoe 4de1ded224 [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
2019-06-24 19:25:44 +00:00
Iain Sandoe 367e5f9e43 [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
2019-06-24 19:13:01 +00:00
Ian Lance Taylor 609c7da9ab 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
2019-06-24 17:54:07 +00:00
Richard Biener d611cec3de 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
2019-06-24 17:21:40 +00:00
Richard Biener bab9de71b4 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
2019-06-24 17:17:26 +00:00
Ian Lance Taylor 2b92d5c69b 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
2019-06-24 16:54:22 +00:00
Martin Sebor 1e3d475ea1 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
2019-06-24 09:47:22 -06:00
Jason Merrill c3337b44c4 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
2019-06-24 10:34:35 -04:00
Jonathan Wakely a3c8d7fbe2 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
2019-06-24 13:09:51 +01:00
Jonathan Wakely ff164b601b 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
2019-06-24 13:09:47 +01:00
GCC Administrator efe8764f72 Daily bump.
From-SVN: r272613
2019-06-24 00:16:17 +00:00
Ian Lance Taylor 587bd42530 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
2019-06-23 22:10:19 +00:00
Ian Lance Taylor 26fcb396d1 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
2019-06-23 22:04:53 +00:00
Iain Sandoe d7e96c4608 [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
2019-06-23 20:29:09 +00:00
Iain Sandoe 5fe352455b [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
2019-06-23 20:12:22 +00:00
Iain Sandoe fb007b0dd3 [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
2019-06-23 19:48:55 +00:00
Iain Sandoe deb9c4ebea [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
2019-06-23 19:23:51 +00:00
Iain Sandoe 64ce6cc2de [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
2019-06-23 19:13:08 +00:00
Iain Sandoe 63e6229c4d [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
2019-06-23 18:56:21 +00:00
Marek Polacek 7b49e3dad8 Rename DEFAULT_ARG to DEFERRED_PARSE.
From-SVN: r272600
2019-06-23 15:10:00 +00:00
GCC Administrator 35e2848f6d Daily bump.
From-SVN: r272599
2019-06-23 00:16:20 +00:00
Jerry DeLisle 5b635004cc Fix typo in ChangeLog
From-SVN: r272595
2019-06-22 20:02:51 +00:00
Jerry DeLisle b1be0054be 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
2019-06-22 19:58:47 +00:00
Iain Sandoe d9fe6cc425 [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
2019-06-22 19:43:26 +00:00
Iain Sandoe 2d8a764886 [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
2019-06-22 19:38:47 +00:00
Jeff Law f162b26c0e * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
From-SVN: r272590
2019-06-22 10:31:50 -06:00
Marek Polacek 943e7063e4 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
2019-06-22 16:29:06 +00:00
Marek Polacek ec121f15f6 re PR c++/66256 (noexcept evaluation done before end of class)
PR c++/66256
	* g++.dg/cpp0x/noexcept54.C: New test.

From-SVN: r272588
2019-06-22 15:51:49 +00:00
Jan Hubicka 1240df7b40 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
2019-06-22 15:32:51 +00:00
Marek Polacek 78f7607db4 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
2019-06-22 15:14:30 +00:00
Marek Polacek 7f3db013dc 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
2019-06-22 14:43:00 +00:00
Paolo Carlini 4b3aa53579 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
2019-06-22 09:36:38 +00:00
GCC Administrator bd5cb8ed42 Daily bump.
From-SVN: r272583
2019-06-22 00:16:17 +00:00
Cherry Zhang d54cf3a449 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
2019-06-21 22:42:18 +00:00
Ian Lance Taylor f4e7200b1d 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
2019-06-21 22:21:40 +00:00
Ian Lance Taylor 0514cb3374 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
2019-06-21 22:00:57 +00:00