diff options
author | Anthony Green <green@cygnus.com> | 1998-09-28 20:23:27 +0000 |
---|---|---|
committer | Anthony Green <green@gcc.gnu.org> | 1998-09-28 20:23:27 +0000 |
commit | a64c757e99f811a6b2df565106c87abee67032d8 (patch) | |
tree | 325833688633a3faa26181b756467e30f01da1cf | |
parent | 630962bf86793a9a440c8f5002497be44f37297b (diff) | |
download | gcc-a64c757e99f811a6b2df565106c87abee67032d8.zip gcc-a64c757e99f811a6b2df565106c87abee67032d8.tar.gz gcc-a64c757e99f811a6b2df565106c87abee67032d8.tar.bz2 |
* semantics.c (finish_asm_stmt): Always permit volatile asms.
From-SVN: r22632
-rw-r--r-- | gcc/cp/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cp/semantics.c | 34 |
2 files changed, 16 insertions, 22 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 2bc04c9..c095d30 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +1998-09-28 Anthony Green <green@cygnus.com> + + * semantics.c (finish_asm_stmt): Always permit volatile asms. + 1998-09-28 Mark Mitchell <mark@markmitchell.com> * decl.c (grokdeclarator): Tighten checks for invalid diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index eee6616..6f69d64 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -730,28 +730,18 @@ finish_asm_stmt (cv_qualifier, string, output_operands, else { emit_line_note (input_filename, lineno); - if (output_operands != NULL_TREE || input_operands != NULL_TREE - || clobbers != NULL_TREE) - { - if (cv_qualifier != NULL_TREE - && cv_qualifier != ridpointers[(int) RID_VOLATILE]) - cp_warning ("%s qualifier ignored on asm", - IDENTIFIER_POINTER (cv_qualifier)); - - c_expand_asm_operands (string, output_operands, - input_operands, - clobbers, - cv_qualifier - == ridpointers[(int) RID_VOLATILE], - input_filename, lineno); - } - else - { - if (cv_qualifier != NULL_TREE) - cp_warning ("%s qualifier ignored on asm", - IDENTIFIER_POINTER (cv_qualifier)); - expand_asm (string); - } + + if (cv_qualifier != NULL_TREE + && cv_qualifier != ridpointers[(int) RID_VOLATILE]) + cp_warning ("%s qualifier ignored on asm", + IDENTIFIER_POINTER (cv_qualifier)); + + c_expand_asm_operands (string, output_operands, + input_operands, + clobbers, + cv_qualifier + == ridpointers[(int) RID_VOLATILE], + input_filename, lineno); finish_stmt (); } |