[PATCH] Fix PR52314
Richard Guenther
rguenther@suse.de
Tue Feb 21 14:11:00 GMT 2012
The gimplifier, when forcing a value to a temporary, uses the
type of the value for that temporary variable, making it for
example volatile or const, or puts it in a different address-space
even. That's odd and not required, we can decay to the main-variant type.
Bootstrapped and tested on x86_64-unknown-linux-gnu, applied to trunk.
Richard.
2012-02-21 Richard Guenther <rguenther@suse.de>
PR middle-end/52314
* gimplify.c (create_tmp_from_val): Use the main variant type
for the type of the temporary we create.
Index: gcc/gimplify.c
===================================================================
--- gcc/gimplify.c (revision 184435)
+++ gcc/gimplify.c (working copy)
@@ -504,7 +504,8 @@ create_tmp_reg (tree type, const char *p
static inline tree
create_tmp_from_val (tree val)
{
- return create_tmp_var (TREE_TYPE (val), get_name (val));
+ /* Drop all qualifiers and address-space information from the value type. */
+ return create_tmp_var (TYPE_MAIN_VARIANT (TREE_TYPE (val)), get_name (val));
}
/* Create a temporary to hold the value of VAL. If IS_FORMAL, try to reuse
More information about the Gcc-patches
mailing list