public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r14-2046] Fix initializer_constant_valid_p_1 TYPE_PRECISION use
@ 2023-06-23 12:16 Richard Biener
  0 siblings, 0 replies; only message in thread
From: Richard Biener @ 2023-06-23 12:16 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:2acbbf41d4c2a3362991863ce265041f9a2feee4

commit r14-2046-g2acbbf41d4c2a3362991863ce265041f9a2feee4
Author: Richard Biener <rguenther@suse.de>
Date:   Fri Jun 23 12:50:50 2023 +0200

    Fix initializer_constant_valid_p_1 TYPE_PRECISION use
    
    initializer_constant_valid_p_1 is letting through all conversions
    of float vector types that have the same number of elements but
    that's of course not valid.  The following restricts the code
    to scalar floating point types as was probably intended (only
    scalar integer types are handled as well).
    
            * varasm.cc (initializer_constant_valid_p_1): Only
            allow conversions between scalar floating point types.

Diff:
---
 gcc/varasm.cc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gcc/varasm.cc b/gcc/varasm.cc
index dd84754a283..f2a19aa6dbd 100644
--- a/gcc/varasm.cc
+++ b/gcc/varasm.cc
@@ -4885,7 +4885,8 @@ initializer_constant_valid_p_1 (tree value, tree endtype, tree *cache)
 	/* Allow length-preserving conversions between integer types and
 	   floating-point types.  */
 	if (((INTEGRAL_TYPE_P (dest_type) && INTEGRAL_TYPE_P (src_type))
-	     || (FLOAT_TYPE_P (dest_type) && FLOAT_TYPE_P (src_type)))
+	     || (SCALAR_FLOAT_TYPE_P (dest_type)
+		 && SCALAR_FLOAT_TYPE_P (src_type)))
 	    && (TYPE_PRECISION (dest_type) == TYPE_PRECISION (src_type)))
 	  return initializer_constant_valid_p_1 (src, endtype, cache);

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-06-23 12:16 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-23 12:16 [gcc r14-2046] Fix initializer_constant_valid_p_1 TYPE_PRECISION use Richard Biener

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).