summaryrefslogtreecommitdiff
path: root/gcc/gimplify.c
diff options
context:
space:
mode:
authorbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>2005-09-29 14:53:39 +0000
committerbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>2005-09-29 14:53:39 +0000
commite7139ef3eb27ccc94d63dcdeaa232a4fe5a59162 (patch)
treefa0ae259feba322798f38fbed7affb8907323e43 /gcc/gimplify.c
parentfb35179aa55fc69f7e58d3364684246fd3b584ce (diff)
downloadgcc-e7139ef3eb27ccc94d63dcdeaa232a4fe5a59162.tar.gz
gcc:
2005-09-29 Paolo Bonzini <bonzini@gnu.org> PR c/21419 * gimplify.c (gimplify_asm_expr): Raise an error if an output is read-only. testsuite: 2005-09-29 Paolo Bonzini <bonzini@gnu.org> PR c/21419 * gcc.dg/pr21419.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104774 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r--gcc/gimplify.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index 42b8740d083..e5d50e29ee7 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -3544,6 +3544,12 @@ gimplify_asm_expr (tree *expr_p, tree *pre_p, tree *post_p)
parse_output_constraint (&constraint, i, 0, 0,
&allows_mem, &allows_reg, &is_inout);
+ if (TYPE_READONLY (TREE_TYPE (TREE_VALUE (link))))
+ {
+ error ("invalid lvalue in asm output %d", i);
+ ret = GS_ERROR;
+ }
+
if (!allows_reg && allows_mem)
lang_hooks.mark_addressable (TREE_VALUE (link));