summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg
diff options
context:
space:
mode:
authorlmillward <lmillward@138bc75d-0d04-0410-961f-82ee72b054a4>2007-08-02 17:50:55 +0000
committerlmillward <lmillward@138bc75d-0d04-0410-961f-82ee72b054a4>2007-08-02 17:50:55 +0000
commita40e70de6a82efcb88337c8185aadc28d3ca77f3 (patch)
tree82375a521dcc73acb141e68c2640f8efff29abdb /gcc/testsuite/g++.dg
parentfc4e97d000c15b74a087f047449534fd1b0cf615 (diff)
downloadgcc-a40e70de6a82efcb88337c8185aadc28d3ca77f3.tar.gz
PR c++/30849
PR c++/30850 PR c++/30851 * parser.c (cp_parser_asm_definition): Detect and discard asm statements with invalid inputs or outputs. (cp_parser_asm_operand_list): Return error mark node if any of the operands are invalid. Adjust documentation. PR c++/30849 * g++.dg/parse/asm1.C: New test. PR c++/30850 * g++.dg/parse/asm2.C: Likewise. PR c++/30851 * g++.dg/parse/asm3.C: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127167 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/g++.dg')
-rw-r--r--gcc/testsuite/g++.dg/parse/asm1.C6
-rw-r--r--gcc/testsuite/g++.dg/parse/asm2.C6
-rw-r--r--gcc/testsuite/g++.dg/parse/asm3.C6
3 files changed, 18 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/parse/asm1.C b/gcc/testsuite/g++.dg/parse/asm1.C
new file mode 100644
index 00000000000..009ffbd3ad3
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/asm1.C
@@ -0,0 +1,6 @@
+//PR c++/30849
+
+void foo()
+{
+ asm("" : 0); // { dg-error "numeric constant|token" }
+}
diff --git a/gcc/testsuite/g++.dg/parse/asm2.C b/gcc/testsuite/g++.dg/parse/asm2.C
new file mode 100644
index 00000000000..09924c9c7c3
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/asm2.C
@@ -0,0 +1,6 @@
+//PR c++/30850
+
+void foo()
+{
+ asm("" :: 0); // { dg-error "numeric constant|token" }
+}
diff --git a/gcc/testsuite/g++.dg/parse/asm3.C b/gcc/testsuite/g++.dg/parse/asm3.C
new file mode 100644
index 00000000000..91f19e48cd5
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/asm3.C
@@ -0,0 +1,6 @@
+//PR c++/30851
+
+void foo()
+{
+ asm ("%[x]" : [0](x)); // { dg-error "numeric constant|token" }
+}