summaryrefslogtreecommitdiff
path: root/gcc/c-common.c
diff options
context:
space:
mode:
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>2003-10-20 22:03:34 +0000
committerjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>2003-10-20 22:03:34 +0000
commit46d8d16b09495cbf3ec4c5a7bdf654f06491ead0 (patch)
treea16b9dae3d728b41ee5440ba9e0129514a33e701 /gcc/c-common.c
parent6b2a8d563ce7d54be91607185dcd67b9936fefd7 (diff)
downloadgcc-46d8d16b09495cbf3ec4c5a7bdf654f06491ead0.tar.gz
* c-common.c (expand_tree_builtin): Ensure creal and cimag
functions do not return lvalues. testsuite: * gcc.dg/builtins-28.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72727 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/c-common.c')
-rw-r--r--gcc/c-common.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/c-common.c b/gcc/c-common.c
index 96186d8e86b..1d32d963a51 100644
--- a/gcc/c-common.c
+++ b/gcc/c-common.c
@@ -3752,14 +3752,16 @@ expand_tree_builtin (tree function, tree params, tree coerced_params)
case BUILT_IN_CREALL:
if (coerced_params == 0)
return integer_zero_node;
- return build_unary_op (REALPART_EXPR, TREE_VALUE (coerced_params), 0);
+ return non_lvalue (build_unary_op (REALPART_EXPR,
+ TREE_VALUE (coerced_params), 0));
case BUILT_IN_CIMAG:
case BUILT_IN_CIMAGF:
case BUILT_IN_CIMAGL:
if (coerced_params == 0)
return integer_zero_node;
- return build_unary_op (IMAGPART_EXPR, TREE_VALUE (coerced_params), 0);
+ return non_lvalue (build_unary_op (IMAGPART_EXPR,
+ TREE_VALUE (coerced_params), 0));
case BUILT_IN_ISGREATER:
return expand_unordered_cmp (function, params, UNLE_EXPR, LE_EXPR);