diff options
author | bonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-09-29 14:53:39 +0000 |
---|---|---|
committer | bonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-09-29 14:53:39 +0000 |
commit | e7139ef3eb27ccc94d63dcdeaa232a4fe5a59162 (patch) | |
tree | fa0ae259feba322798f38fbed7affb8907323e43 /gcc/gimplify.c | |
parent | fb35179aa55fc69f7e58d3364684246fd3b584ce (diff) | |
download | gcc-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.c | 6 |
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)); |