aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony Green <green@cygnus.com>1998-09-28 20:23:27 +0000
committerAnthony Green <green@gcc.gnu.org>1998-09-28 20:23:27 +0000
commita64c757e99f811a6b2df565106c87abee67032d8 (patch)
tree325833688633a3faa26181b756467e30f01da1cf
parent630962bf86793a9a440c8f5002497be44f37297b (diff)
downloadgcc-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/ChangeLog4
-rw-r--r--gcc/cp/semantics.c34
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 ();
}