aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>1999-06-19 23:56:56 +0000
committerJeff Law <law@gcc.gnu.org>1999-06-19 17:56:56 -0600
commit7dc5bd62ab96a992371d6c11c16b7ff1c866f9ef (patch)
tree2bc05d1357374e07a833d9542cb5ca01328f8934
parentc1cb76e980b4c8ca41e33c5455c0fa13aed8fffc (diff)
downloadgcc-7dc5bd62ab96a992371d6c11c16b7ff1c866f9ef.zip
gcc-7dc5bd62ab96a992371d6c11c16b7ff1c866f9ef.tar.gz
gcc-7dc5bd62ab96a992371d6c11c16b7ff1c866f9ef.tar.bz2
semantics.c (finish_asm_statement): Apply decay conversions to input operands.
* semantics.c (finish_asm_statement): Apply decay conversions to input operands. From-SVN: r27617
-rw-r--r--gcc/cp/ChangeLog3
-rw-r--r--gcc/cp/semantics.c7
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index eca9572..9885a33 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,8 @@
1999-06-19 Mark Mitchell <mark@codesourcery.com>
+ * semantics.c (finish_asm_statement): Apply decay conversions to
+ input operands.
+
* decl.c (expand_static_init): When building an anonymous function
for use with atexit, compute its body before and after entering
the function.
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index ee6b99b..1659ec8 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -754,11 +754,16 @@ finish_asm_stmt (cv_qualifier, string, output_operands,
if (output_operands != NULL_TREE || input_operands != NULL_TREE
|| clobbers != NULL_TREE)
{
+ tree t;
+
if (cv_qualifier != NULL_TREE
&& cv_qualifier != ridpointers[(int) RID_VOLATILE])
cp_warning ("%s qualifier ignored on asm",
IDENTIFIER_POINTER (cv_qualifier));
-
+
+ for (t = input_operands; t; t = TREE_CHAIN (t))
+ TREE_VALUE (t) = decay_conversion (TREE_VALUE (t));
+
c_expand_asm_operands (string, output_operands,
input_operands,
clobbers,