Commit 239cfd92 by Jakub Jelinek

rs6000: Small improvement to the C++17 ABI fix [PR94707]

Anyway, based on IRC discussion with Richard Sandiford on IRC, we should
probably test type uids instead of type pointers because type uids aren't
reused, but type pointers in a very bad luck case could be, and having the
static var at filescope and GTY((deletable)) is an overkill (and with costs
during GC time).

2020-04-23  Jakub Jelinek  <jakub@redhat.com>

	PR target/94707
	* config/rs6000/rs6000-call.c (rs6000_discover_homogeneous_aggregate):
	Use TYPE_UID (TYPE_MAIN_VARIANT (type)) instead of type to check
	if the same type has been diagnosed most recently already.
parent c6ffc89f
2020-04-23 Jakub Jelinek <jakub@redhat.com>
PR target/94707
* config/rs6000/rs6000-call.c (rs6000_discover_homogeneous_aggregate):
Use TYPE_UID (TYPE_MAIN_VARIANT (type)) instead of type to check
if the same type has been diagnosed most recently already.
2020-04-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 2020-04-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
* config/arm/arm_mve.h (__arm_vbicq_n_u16): Modify function parameter's * config/arm/arm_mve.h (__arm_vbicq_n_u16): Modify function parameter's
......
...@@ -5739,14 +5739,15 @@ rs6000_discover_homogeneous_aggregate (machine_mode mode, const_tree type, ...@@ -5739,14 +5739,15 @@ rs6000_discover_homogeneous_aggregate (machine_mode mode, const_tree type,
*n_elts = field_count; *n_elts = field_count;
if (cxx17_empty_base_seen && warn_psabi) if (cxx17_empty_base_seen && warn_psabi)
{ {
static const_tree last_reported_type; static unsigned last_reported_type_uid;
if (type != last_reported_type) unsigned uid = TYPE_UID (TYPE_MAIN_VARIANT (type));
if (uid != last_reported_type_uid)
{ {
inform (input_location, inform (input_location,
"parameter passing for argument of type %qT " "parameter passing for argument of type %qT "
"when C++17 is enabled changed to match C++14 " "when C++17 is enabled changed to match C++14 "
"in GCC 10.1", type); "in GCC 10.1", type);
last_reported_type = type; last_reported_type_uid = uid;
} }
} }
return true; return true;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment