Commit Graph

178677 Commits

Author SHA1 Message Date
Ian Lance Taylor
e1d3a86fd3 compiler: for package-scope "a = b; b = x" just set "a = x"
This avoids requiring an init function to initialize the variable.
This can only be done if x is a static initializer.

The go1.15rc1 runtime package relies on this optimization.
The package has a variable "var maxSearchAddr = maxOffAddr".
The maxSearchAddr variable is used by code that runs before package
initialization is complete.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/245098
2020-07-27 17:02:58 -07:00
Hans-Peter Nilsson
1b024c9a29 gcc.dg/torture/pr39074-2.c, pr39074.c, pta-callused-1.c: Adjust for mmix.
These FAILs for mmix showed up as regressions for me due to a
flaw in the btest-gcc.sh test-results-accounting: a bug was
recently fixed regarding the naming of dump-files so the names
are again correct.  To wit, parts of the tests that were
UNRESOLVED, due to missing dump-files, and ignored in the
presence of other parts (execution, excess errors) PASSing,
became FAIL, trumping the PASSing parts of the tests.

As in a recent patch, the variables are "privatized" using
ASM_PN_FORMAT for MMIX and the lines to match look like:
 y::0_1 = { i }
 y::0_1, points-to NULL, points-to vars: { D.1465 } (nonlocal, escaped)
instead of e.g. for cris-elf:
 y.0_1 = { i }
 y.0_1, points-to NULL, points-to vars: { D.1433 } (nonlocal, escaped)
Also checked that the general pattern still matches for cris-elf.

gcc/testsuite:
	* gcc.dg/torture/pr39074-2.c: Adjust for mmix.
	* gcc.dg/torture/pr39074.c, gcc.dg/torture/pta-callused-1.c: Ditto.
2020-07-28 01:41:47 +02:00
Joseph Myers
6cd1038f11 Update gcc .po files.
* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po,
	ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po,
	zh_TW.po: Update.
2020-07-27 22:51:58 +00:00
Nathan Sidwell
06aa77035c common: Use strcmp to compare location file names
The logic to figure out where a missing #include should be inserted
uses pointer equality to check filenames -- the routine even says so.
But cpplib makes no such guarantee.  It happens to be true for input
that it preprocesses[* see line zero below], but is not true for
source that has already been preprocessed -- all those '# ...' line
directives produce disctinct filename strings.  That renders using
-fdirectives-only as a prescanning stage (as I understand some people
do), broken.

This patch changes to string comparisons, and explicitly rejects any
line-zero location map that occurs at the beginning of a file.  The
very first map of a file has a different string to the remaining maps,
and we never tripped on that because of the pointer comparison.  The
second testcase deploys -save-temps to cause an intermediate
preprocessed output that is read back.

	gcc/c-family/
	* c-common.c (try_to_locate_new_include_insertion_point): Use
	strcmp, not pointer equality.
	gcc/testsuite/
	* g++.dg/lookup/missing-std-include-10.h: New.
	* g++.dg/lookup/missing-std-include-10.C: New.
	* g++.dg/lookup/missing-std-include-11.C: New.
2020-07-27 13:13:32 -07:00
Nathan Sidwell
b95eba48a1 c++: Name as_base type
The as-base type never got a name.  For modules I needed to give it a
name to serialize properly, and it's useful when debugging the
compiler, so we may as well have it on trunk.  There's also a bug
where its fields can have NSDMIs from the main class.  This happens to
be silent on trunk, but can be a GC leak where we retain a deferred
parse node there. (On modules it blows up, because we're not prepared
to serialize deferred parse nodes, as they should never survive
parsing.

	gcc/cp/
	* cp-tree.h (enum cp_tree_index): Add CPTI_AS_BASE_IDENTIFIER.
	(as_base_identifier): Define.
	* decl.c (initialize_predifined_identifiers): Initialize as_base
	identifier.
	* class.c (layout_class_type): Name the as-base type.  Zap
	NSDMI its fields may have.
2020-07-27 13:13:32 -07:00
Martin Sebor
07bd5544a3 Diagnose just-past-the-end references for minor array bounds.
Resolves:
PR tree-optimization/84079 - missing -Warray-bounds taking the address of past-the-end element of a multidimensional array

gcc/ChangeLog:

	PR tree-optimization/84079
	* gimple-array-bounds.cc (array_bounds_checker::check_addr_expr):
	Only allow just-past-the-end references for the most significant
	array bound.

gcc/testsuite/ChangeLog:

	PR tree-optimization/84079
	* gcc.dg/Warray-bounds-62.c: New test.
2020-07-27 14:02:27 -06:00
François Dumont
f9d98fa748 libstdc++: Review _Hashtable count, equal_range _M_erase(false_type,) code
Simplify operator[] implementation using find method. Review several
_Hashtable method implementations to limit the computation of bucket index.
Introduce _M_update_bbegin to simplify code.

libstdc++-v3/ChangeLog:

	* include/bits/hashtable_policy.h (_Map_base<>::at): Use
	_Hashtable<>::find.
	(_Hashtable_base<>::_Equal_hash_code<>::_S_node_equals):New.
	(_Hashtable_base<>::_M_node_equals): New, use latter.
	(_Equality<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash,
	_RehashPolicy, false>::_M_equal): Adapt to use latter.
	* include/bits/hashtable.h (_Hashtable<>::_M_update_bbegin): New.
	(_Hashtable<>::_M_assign): Use latter.
	(_Hashtable<>::_M_move_assign): Likewise.
	(_Hashtable<>(_Hashtable<>&&)): Likewise.
	(_Hashtable<>(_Hashtable<>&&, const allocator_type&)): Likewise.
	(_Hashtable<>::swap): Likewise.
	(_Hashtable<>::find): Build iterator directly from _M_find_node result.
	(_Hashtable<>::count): Use _Hashtable<>::find.
	(_Hashtable<>::equal_range): Likewise.
	(_Hashtable<>::_M_erase(false_type, const key_type&)): Use
	_M_node_equals.
2020-07-27 21:55:49 +02:00
Hu Jiangping
d60758c74a driver: fix a problem with implementation of -falign-foo=0 [PR96247]
This patch makes the -falign-foo=0 work as described in the
documentation. Thanks for all the suggestions.

Changelog:
2020-07-27  Hu Jiangping  <hujiangping@cn.fujitsu.com>

	PR driver/96247
	* opts.c (check_alignment_argument): Set the -falign-Name
	on/off flag on and set the -falign-Name string value null,
	when the command-line specified argument is zero.
2020-07-27 18:22:23 +01:00
Ian Lance Taylor
8939cef951 compiler: scan all function literals for escape analysis
We were scanning only function literals with closures, but not all
function literals have closures.

Discovered because compiler failed building 1.15rc1, as there is a
function literal in the runtime package (p1 in hexdumpWords) that has
no closure and, without escape analysis, was forcing a variable to the
heap which is not permitted in the runtime.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/244802
2020-07-27 09:41:05 -07:00
Julian Brown
bc4ed079dc openacc: Deep copy attach/detach should not affect reference counts
Attach and detach operations are not supposed to affect structural or
dynamic reference counts for OpenACC. Previously they did so, which led to
subtle problems in some circumstances. We can avoid reference-counting
attach/detach operations by extending and slightly repurposing the
do_detach field in target_var_desc. It is now called is_attach to better
reflect its new role.

2020-07-27  Julian Brown  <julian@codesourcery.com>
	    Thomas Schwinge  <thomas@codesourcery.com>

libgomp/
	* libgomp.h (struct target_var_desc): Rename do_detach field to
	is_attach.
	* oacc-mem.c (goacc_exit_datum_1): Add assert.  Don't set finalize for
	GOMP_MAP_FORCE_DETACH. Update checking to use is_attach field.
	(goacc_enter_data_internal): Don't affect reference counts
	for attach mappings.
	(goacc_exit_data_internal): Don't affect reference counts for detach
	mappings.
	* target.c (gomp_map_vars_existing): Don't affect reference counts for
	attach mappings.
	(gomp_map_vars_internal): Set renamed is_attach flag unconditionally to
	mark attach mappings.
	(gomp_unmap_vars_internal): Use is_attach flag to prevent affecting
	reference count for attach mappings.
	* testsuite/libgomp.oacc-c-c++-common/mdc-refcount-1.c: New test.
	* testsuite/libgomp.oacc-c-c++-common/mdc-refcount-2.c: New test.
	* testsuite/libgomp.oacc-c-c++-common/mdc-refcount-2.c: New test.
	* testsuite/libgomp.oacc-fortran/deep-copy-6-no_finalize.F90: Mark
	test as shouldfail.
	* testsuite/libgomp.oacc-fortran/deep-copy-6.f90: Adjust to fail
	gracefully in no-finalize mode.

Co-Authored-By: Thomas Schwinge <thomas@codesourcery.com>
2020-07-27 09:16:57 -07:00
Jonathan Wakely
2251b4a542 libstdc++: Make std::from_chars always round to nearest
Also fix the tests that fail on targets without uselocale.

libstdc++-v3/ChangeLog:

	* src/c++17/floating_from_chars.cc (from_chars_impl): Ensure
	that FE_NEAREST is used.
	* testsuite/20_util/from_chars/4.cc: Do not use if constexpr in
	a { target c++14 } test.
	[!_GLIBCXX_HAVE_USELOCALE]: Disable all tests.
	* testsuite/20_util/from_chars/5.cc [!_GLIBCXX_HAVE_USELOCALE]:
	Likewise.
	* testsuite/20_util/from_chars/6.cc: New test.
2020-07-27 15:51:24 +01:00
Martin Liska
7355a9408b
expr: build string_constant only for a char type
gcc/ChangeLog:

	PR tree-optimization/96058
	* expr.c (string_constant): Build string_constant only
	for a type that has same precision as char_type_node
	and is an integral type.
2020-07-27 16:18:15 +02:00
Richard Biener
8e5584f7a1 Remove useless backedge marking
I didn't find anything using EDGE_DFS_BACK in RTL infrastructure
used by var-tracking or var-tracking itself, the following removes
this computation.

2020-07-24  Richard Biener  <rguenther@suse.de>

	* var-tracking.c (variable_tracking_main_1): Remove call
	to mark_dfs_back_edges.
2020-07-27 16:04:53 +02:00
Martin Liska
55c9695cbe
Do not expand vector comparison with VEC_COND_EXPR.
gcc/ChangeLog:

	PR tree-optimization/96128
	* tree-vect-generic.c (expand_vector_comparison): Do not expand
	vector comparison with VEC_COND_EXPR.

gcc/testsuite/ChangeLog:

	PR tree-optimization/96128
	* gcc.target/s390/vector/pr96128.c: New test.
2020-07-27 15:04:24 +02:00
H.J. Lu
c4c22e8302 LTO: Add -fcf-protection=check
Mixing -fcf-protection and -fcf-protection=none objects are allowed.
Linker just merges -fcf-protection values from all input objects.

Add -fcf-protection=check for the final link with LTO.  An error is
issued if LTO object files are compiled with different -fcf-protection
values.  Otherwise, -fcf-protection=check is ignored at the compile
time.  Without explicit -fcf-protection at link time, -fcf-protection
values from LTO object files are merged at the final link.

gcc/

	PR bootstrap/96203
	* common.opt: Add -fcf-protection=check.
	* flag-types.h (cf_protection_level): Add CF_CHECK.
	* lto-wrapper.c (merge_and_complain): Issue an error for
	mismatching -fcf-protection values with -fcf-protection=check.
	Otherwise, merge -fcf-protection values.
	* doc/invoke.texi: Document -fcf-protection=check.

gcc/testsuite/

	PR bootstrap/96203
	* gcc.target/i386/pr96203-1.c: New test.
	* gcc.target/i386/pr96203-2.c: Likewise.
2020-07-27 04:40:13 -07:00
Alexandre Oliva
fd5966e8e0 [Ada] Revert "Revamp dump and aux output names"
gcc/ada/

	* switch.adb (Is_Internal_GCC_Switch): Revert accidental
	reintroduction of auxbase and auxbase-strip.
2020-07-27 04:05:21 -04:00
Javier Miranda
abd4c42269 [Ada] Ada2020: AI12-0027 Access values and unaliased component
gcc/ada/

	* sem_res.adb (Resolve_Actuals): Restrict the check on matching
	aliased components to view conversions of array types that are
	not placed in an instance. In such case at runtime an object is
	created.
	* sem_util.ads (Is_Actual_In_Out_Parameter, Is_View_Conversion):
	New subprograms.
	* sem_util.adb (Is_Actual_In_Out_Parameter, Is_View_Conversion):
	New subprograms.
2020-07-27 04:05:21 -04:00
Arnaud Charlet
04c4a5101b [Ada] Assert failure on incorrect code
gcc/ada/

	* lib-xref.adb (Generate_Reference): Protect against malformed
	tree in case of severe errors.
	* sem_ch8.adb (Add_Implicit_Operator): Ditto.
2020-07-27 04:05:21 -04:00
Arnaud Charlet
cb030dd735 [Ada] Switch Ada_Version_Runtime to Ada 2020
gcc/ada/

	* opt.ads (Ada_Version_Runtime): Set to Ada_2020.
	* sem_ch3.adb (Analyze_Subtype_Declaration): Propagate
	Is_Independent flag to subtypes.
	* libgnarl/s-taprop__linux.adb: Adapt to Ada 2020 warning.
	* libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads,
	libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb,
	libgnat/a-nbnbre.ads, libgnat/a-stobbu.adb,
	libgnat/a-stobbu.ads, libgnat/a-stobfi.adb,
	libgnat/a-stobfi.ads, libgnat/a-stoubu.adb,
	libgnat/a-stoubu.ads, libgnat/a-stoufi.adb,
	libgnat/a-stoufi.ads, libgnat/a-stoufo.adb,
	libgnat/a-stoufo.ads, libgnat/a-stouut.adb,
	libgnat/a-stouut.ads, libgnat/a-strsto.ads,
	libgnat/a-ststbo.adb, libgnat/a-ststbo.ads,
	libgnat/a-ststun.adb, libgnat/a-ststun.ads,
	libgnat/a-stteou.ads, libgnat/s-aoinar.ads,
	libgnat/s-aomoar.ads, libgnat/s-atopex.ads,
	libgnat/s-putaim.adb, libgnat/s-putaim.ads,
	libgnat/s-putima.adb, libgnat/s-putima.ads: Remove pragma
	Ada_2020, now redundant.
2020-07-27 04:05:20 -04:00
Justin Squirek
19796dddf0 [Ada] Wrong accessibility on 'Access of formal in call
gcc/ada/

	* exp_ch6.adb (Expand_Call_Helper): Modify addition of the extra
	accessibility parameter to take into account the extra
	accessibility of formals within the calling subprogram.
2020-07-27 04:05:20 -04:00
Bob Duff
116e8b669e [Ada] Bug in Enum_Subtype'Image in Ada 2020 mode
gcc/ada/

	* exp_imgv.adb (Expand_Image_Attribute): Add Root_Type, so
	constrained subtypes work.
2020-07-27 04:05:20 -04:00
Ghjuvan Lacambre
f35bd40944 [Ada] Refactor pragma argument getters
gcc/ada/

	* exp_prag.adb (Arg1, Arg2, Arg3): Removed.
	(Arg_N): New function.
2020-07-27 04:05:20 -04:00
Arnaud Charlet
6c1bfc9e60 [Ada] AI12-0383 Renaming values
gcc/ada/

	* sem_ch8.adb (Analyze_Object_Renaming): Allow values in Ada
	2020 mode.
2020-07-27 04:05:19 -04:00
Arnaud Charlet
7b6fbc9ff3 [Ada] AI12-0377 View conversions and out parameters revisited
gcc/ada/

	* sem_res.adb (Resolve_Actuals): Refine 6.4.1 rules as per
	AI12-0377.
2020-07-27 04:05:19 -04:00
Bob Duff
2d4fe20359 [Ada] Ada2020: wording of 'Image messages
gcc/ada/

	* errout.ads, errout.adb (Error_Msg_Ada_2020_Feature): New
	procedure analogous to Error_Msg_Ada_2012_Feature.
	* sem_attr.adb (Analyze_Image_Attribute): Use
	Error_Msg_Ada_2012_Feature and Error_Msg_Ada_2020_Feature to
	indicate that Object'Image is allowed in Ada 2012, and that
	'Image is allowed for any type in Ada 2020.
2020-07-27 04:05:19 -04:00
Dmitriy Anisimkov
21717db17a [Ada] Unbounded string overriding control
gcc/ada/

	* libgnat/a-strunb.adb (Sum, Mul, Saturated_Sum, Saturated_Mul):
	New routines.  Use them when resulting string size more that
	length of the strings in parameters.
	(Unbounded_Slice): Use "- 1" instead of "+ 1" in opposite side
	of condition to avoid overflow.
	* libgnat/a-strunb__shared.adb (Sum, Mul): New routines.
	(Allocate): New routine with 2 parameters.  Use routine above
	when resulting string size more that length of the strings in
	parameters.
	(Aligned_Max_Length): Do not try to align to more than Natural'Last.
	(Unbounded_Slice): Use "- 1" instead of "+ 1" in opposite side
	of condition to avoid overflow.
2020-07-27 04:05:19 -04:00
Arnaud Charlet
7f365be815 [Ada] Remove disabled code
gcc/ada/

	* sem_attr.adb (Resolve_Attribute): Remove dead code.
2020-07-27 04:05:18 -04:00
Arnaud Charlet
4a08c95cf0 [Ada] Use membership tests in front-end
gcc/ada/

	* aspects.adb, atree.adb, atree.ads, checks.adb, contracts.adb,
	einfo.adb, errout.adb, exp_aggr.adb, exp_attr.adb, exp_cg.adb,
	exp_ch11.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb,
	exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb, exp_ch9.adb,
	exp_dbug.adb, exp_disp.adb, exp_intr.adb, exp_pakd.adb,
	exp_prag.adb, exp_put_image.adb, exp_smem.adb, exp_tss.adb,
	exp_unst.adb, exp_util.adb, freeze.adb, ghost.adb, gnat1drv.adb,
	inline.adb, lib-writ.adb, lib-xref-spark_specific.adb,
	lib-xref.adb, namet.adb, namet.ads, nlists.adb, par-ch10.adb,
	par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
	par-prag.adb, par-util.adb, par_sco.adb, pprint.adb,
	repinfo.adb, restrict.adb, rtsfind.adb, scil_ll.adb, sem.adb,
	sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_cat.adb,
	sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch13.adb,
	sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch7.adb,
	sem_ch8.adb, sem_ch9.adb, sem_dim.adb, sem_disp.adb,
	sem_dist.adb, sem_elab.adb, sem_elim.adb, sem_eval.adb,
	sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
	sem_scil.adb, sem_type.adb, sem_util.adb, sem_warn.adb,
	sinfo.adb, sinfo.ads, sprint.adb, styleg.adb, tbuild.adb,
	treepr.adb (Nkind_In, Nam_In, Ekind_In): Removed, replaced by
	membership tests.
2020-07-27 04:05:18 -04:00
Gary Dismukes
26ac7446f6 [Ada] AI12-0194: Language-defined aspects and entry bodies
gcc/ada/

	* sem_prag.adb (Analyze_Pragma, Pragma_Max_Entry_Queue_Length):
	Refine error message to indicate that the pragma must apply to
	an entry declaration, not just an entry.
2020-07-27 04:05:17 -04:00
Javier Miranda
84ae33e7f5 [Ada] Spurious error in generic dispatching constructor
gcc/ada/

	* exp_ch6.adb (Make_Build_In_Place_Iface_Call_In_Allocator):
	Revert previous patch, and add a missing type conversion to
	displace the pointer to the allocated object to reference the
	target dispatch table.
2020-07-27 04:05:17 -04:00
Javier Miranda
36f0cf4e60 [Ada] Ada2020: AI12-0027 Access values and unaliased component
gcc/ada/

	* sem_res.adb (Resolve_Actuals): Restore restrictive check on
	view conversions which required matching value of
	Has_Aliased_Components of formals and actuals. Required to avoid
	the regression of ACATS b460005.
2020-07-27 04:05:17 -04:00
Eric Botcazou
2c3bc159a8 [Ada] Remove obsolete special case in Switch_View
gcc/ada/

	* sem_ch12.adb (Instantiate_Package_Body): Add commentary for a
	nesting issue with parent handling and private view switching.
	(Switch_View): Do not skip specific private-dependent subtypes.
2020-07-27 04:05:17 -04:00
Patrick Bernardi
c893f4a5e0 [Ada] x86-lynx178elf: use a-numaux.ads instead of a-numaux__libc-x86.ads
gcc/ada/

	* Makefile.rtl: Remove X86_TARGET_PAIRS for x86-lynx178elf.
2020-07-27 04:05:16 -04:00
Ed Schonberg
79926e5a90 [Ada] Warnings on overloays involving generic In_Parameters
gcc/ada/

	* sem_ch13.adb (Analyze_Address_Specification_Clause): Do not
	emit a warning when a constant declaration in a generic unit
	overlays a generic In_Parameter.
2020-07-27 04:05:16 -04:00
Gary Dismukes
faa163f737 [Ada] AI12-0382: Loosen type-invariant overriding requirement of AI12-0042
gcc/ada/

	* sem_ch3.adb (Check_Abstract_Overriding): Remove Scope
	comparison test from test related to initial implementation of
	AI12-0042, plus remove the related ??? comment.
	(Derive_Subprogram): Add test requiring that the type extension
	appear in the visible part of its enclosing package when
	checking the overriding requirement of 7.3.2(6.1/4), as
	clarified by AI12-0382.
2020-07-27 04:05:16 -04:00
Piotr Trojanek
df81923f6d [Ada] Add range check for GNATprove on 'Pos to Long_Integer conversion
gcc/ada/

	* exp_spark.adb (Expand_SPARK_N_Attribute_Reference) Extend
	existing workaround to 'Pos.
2020-07-27 04:05:15 -04:00
Bob Duff
1e29b5465e [Ada] Ada2020: AI12-0304 Put_Image attrs of lang-def types
gcc/ada/

	* libgnat/s-rannum.ads, libgnat/s-rannum.adb: Add Put_Image.
	This will be inherited by the language-defined packages
	Ada.Numerics.Discrete_Random and Ada.Numerics.Float_Random.
	* libgnat/a-convec.ads, libgnat/a-convec.adb: Add Put_Image.
	* libgnat/s-putima.ads: Add pragma Preelaborate, so this can be
	imported into containers packages.
	* libgnat/s-putima.adb: Move Digit to private part; otherwise
	reference to Base is illegal in Preelaborate generic.
	* exp_put_image.adb (Build_Record_Put_Image_Procedure): Use the
	base type.
2020-07-27 04:05:15 -04:00
Martin Liska
7f5c0f328e
Use vec::reserve before vec_safe_grow_cleared is called
gcc/ChangeLog:

	PR lto/45375
	* symbol-summary.h: Call vec_safe_reserve before grow is called
	in order to grow to a reasonable size.
	* vec.h (vec_safe_reserve): Add missing function for vl_ptr
	type.
2020-07-27 09:16:16 +02:00
Tobias Burnus
20d0d6527c fortran/openmp.c - silence static analyzer warning
gcc/fortran/ChangeLog:

	* openmp.c (gfc_resolve_omp_directive): Remove NULL check
	for clauses in EXEC_OMP_CRITICAL as it no longer can be NULL.
2020-07-27 09:12:15 +02:00
Hans-Peter Nilsson
f377228335 gcc.dg/tree-ssa/vector-4.c: Adjust for mmix.
Again, the variables are "privatized" using ASM_PN_FORMAT for MMIX (but
apparently not for other targets) and the line to match looks like:
  D.1427 = VEC_PERM_EXPR <a::0, b::1, { 0, 4, 1, 5 }>;

gcc/testsuite:
	* gcc.dg/tree-ssa/vector-4.c: Adjust for mmix.
2020-07-27 03:39:16 +02:00
Hans-Peter Nilsson
642dc9a058 gcc.dg/tree-ssa/ssa-dse-26.c: Adjust for mmix.
The variables are "localized" using ASM_PN_FORMAT for MMIX and the
lines to match look like:
  Deleted dead store: y::4 = y;
  Deleted dead store: x::3 = x;

gcc/testsuite:
	* gcc.dg/tree-ssa/ssa-dse-26.c: Adjust for mmix.
2020-07-27 03:11:46 +02:00
Hans-Peter Nilsson
092edb719c gcc.dg/tree-ssa/ssa-dom-cse-2.c: xfail scan for mmix.
Looking at the dump and the test, I guess all "64-bit targets" fail
the test for the reasons seen in the comment just above the dg-final,
whose last two lines make it to the patch context.  Maybe the xfail
target list can be shortened by removing most targets and use just
"lp64".  That doesn't cover it passing on x86_64 and s390x-zarch
though.

gcc/testsuite:
	* gcc.dg/tree-ssa/ssa-dom-cse-2.c: xfail scan for mmix.
2020-07-27 02:39:34 +02:00
GCC Administrator
049fbbdc60 Daily bump. 2020-07-27 00:16:20 +00:00
Hans-Peter Nilsson
5630c40fc7 gcc.dg/tree-ssa/reassoc-20.c: Adjust for mmix.
The expression of interest looks like "e_5 = a::0_1 + b::1_2;" for
mmix-knuth-mmixware, while other targets have a "." instead of the
"::".  ISTM the most useful change here is not to disable the test,
but to add an optional character in the matched expression to match
the "extra" ":".  Also checked cris-elf to assert that the expression
still passes for an "ordinary" ELF target.

gcc/testsuite:
	* gcc.dg/tree-ssa/reassoc-20.c: Adjust for mmix.
2020-07-27 02:09:58 +02:00
Hans-Peter Nilsson
39ddfef9a5 mmix: Don't turn off .hidden support.
In 2012 e2769e908a915ebbc/r192344, I added the following lines, that I
now delete.  I've changed my mind: ELF-related targets based on gas,
that support only static linking, have .hidden "for free", regardless
of the visibility of the hidden object in the linked executable.  No
regressions for mmix-knuth-mmixware and "fixes":

FAIL: gcc.dg/torture/pr94947-1.c   -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects  (test for excess errors)
Excess errors:
lto1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]

...a warning which is emitted for "all" LTO tests (of which most have
warnings filtered out); LTO "thinks" all supported targets have
.hidden support.

gcc:
	* configure.ac (out-of-tree linker .hidden support): Don't turn off
	for mmix-knuth-mmixware.
	* configure: Regenerate.
2020-07-27 00:08:54 +02:00
Patrick Palka
798ff1c3e1 c++: Add testcase for [PR79504]
We successfully compile this testcase ever since r8-5270.

gcc/testsuite/ChangeLog:

	PR c++/79504
	* g++.dg/cpp0x/decltype79.C: New test.
2020-07-26 13:51:02 -04:00
Aaron Sawdey
e398fcb9ce rs6000: add option -mblock-ops-unaligned-vsx
This option is mostly being added to provide -mno-block-ops-unaligned-vsx.
The default is set the same as -mefficient-unaligned-vsx. This option will
control the use of unaligned VSX loads/stores in the inline expansion
of memcpy() and memmove(). The use case for this would be if you're
compiling code that is doing a memcpy to memory mapped device memory
that is cache-inhibited. On some powerpc processors this requires the
unaligned vsx ops to be emulated by the kernel which is very slow.

gcc/ChangeLog:

	* config/rs6000/rs6000.c (rs6000_option_override_internal):
	Set the default value for -mblock-ops-unaligned-vsx.
	* config/rs6000/rs6000.opt: Add -mblock-ops-unaligned-vsx.
	* doc/invoke.texi: Document -mblock-ops-unaligned-vsx.
2020-07-26 12:11:47 -05:00
Tobias Burnus
2e764ae1d6 libgfortran: Skip integer-kind=16 check for amdgcn
libgfortran/ChangeLog:

	PR target/96306
	* configure.ac: Add LIBGOMP_CHECKED_INT_KINDS and
	LIBGOMP_CHECKED_REAL_KINDS and use it for to skip
	integer kind=16 checks for amdgcn.
	* Makefile.am (kinds.h, selected_int_kind.inc,
	selected_real_kind.inc): Pass them on.
	* mk-kinds-h.sh: Takes to-be-check kinds as argument.
	* mk-sik-inc.sh: Likewise.
	* mk-srk-inc.sh: Likewise.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
2020-07-26 07:20:24 +02:00
Hans-Peter Nilsson
2ab2694476 gcc.dg/tree-ssa/forwprop-36.c: Adjust for mmix
The label of interest here is "b.0_2" for
e.g. x86_64-pc-linux-gnu but "b::1_2" for mmix-knuth-mmixware.
The test seems to be of some interest for mmix (hey, gcc
open-coded 128-bit integer support behind my back!) so I didn't
want to just disable it.  I also didn't want to obscure the
matching pattern by generalizing it, so instead I added a
separate matching pattern.

gcc/testsuite:
	* gcc.dg/tree-ssa/forwprop-36.c: Adjust for mmix.
2020-07-26 03:33:15 +02:00
Hans-Peter Nilsson
b5087b28b0 gcc.dg/torture/pr59330.c: Disable for mmix
With the dejagnu status-wrapper, there's a reference to write in
each executable, which for mmix in newlib has a reference to a
variable defined in open, which for mmix in newlib has a
reference to sprintf (oops!) and the dependency-chain goes on;
ad finitum there's a reference to malloc, which in default
newlib is colocated with free; the same file
newlib/libc/stdlib/malloc.c.

Not being compiled with -ffunction-sections, they're emitted in
the same section (.text) and thus inseparable: you can't
override just one of them as in this test, or else you'll get:

<X>/pre/mmix/bin/ld: <X>/gccobj/mmix/./newlib/libc.a(lib_a-malloc.o): in function `free':
<X>/gcc/newlib/libc/stdlib/malloc.c:169: multiple definition of `free'; /tmp/ccvRA0zb.o:(.text+0x0): first defined here
collect2: error: ld returned 1 exit status
compiler exited with status 1
FAIL: gcc.dg/torture/pr59330.c   -O0  (test for excess errors)

I'm using a dg-skip-if here instead of starting a hardly
scalable dg-do target selector.  I'm not keying on
effective-target unwrapped because the dependency-chain is
target-specific rather than dejagnu status-wrapper-specific.

gcc/testsuite:
	* gcc.dg/torture/pr59330.c: Disable for mmix.
2020-07-26 02:44:02 +02:00