aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAdam Nemet <anemet@lnxw.com>2004-10-28 19:31:25 +0000
committerAdam Nemet <nemet@gcc.gnu.org>2004-10-28 19:31:25 +0000
commitfcf750eec2b7e0d938300820a1605501d4b5cfb1 (patch)
treebd3ef5c52a5055fcd548554ac89b9ffa3b3a00fd /gcc
parent0039fa5565d141f17b2517100a32694c18504802 (diff)
downloadgcc-fcf750eec2b7e0d938300820a1605501d4b5cfb1.zip
gcc-fcf750eec2b7e0d938300820a1605501d4b5cfb1.tar.gz
gcc-fcf750eec2b7e0d938300820a1605501d4b5cfb1.tar.bz2
re PR middle-end/18160 (ICE on taking register variable address)
PR middle-end/18160 * gcc.dg/register-var-1.c: New test. * gcc.dg/register-var-2.c: New test. * gcc.dg/asm-7.c: Taking the address of a register variable is an error now. From-SVN: r89773
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog8
-rw-r--r--gcc/testsuite/gcc.dg/asm-7.c4
-rw-r--r--gcc/testsuite/gcc.dg/register-var-1.c14
-rw-r--r--gcc/testsuite/gcc.dg/register-var-2.c14
4 files changed, 38 insertions, 2 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 32e1b08..7b1378a 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2004-10-28 Adam Nemet <anemet@lnxw.com>
+
+ PR middle-end/18160
+ * gcc.dg/register-var-1.c: New test.
+ * gcc.dg/register-var-2.c: New test.
+ * gcc.dg/asm-7.c: Taking the address of a register variable is an
+ error now.
+
2004-10-28 Dorit Naishlos <dorit@il.ibm.com>
PR other/18172
diff --git a/gcc/testsuite/gcc.dg/asm-7.c b/gcc/testsuite/gcc.dg/asm-7.c
index a14bb80..65b0353 100644
--- a/gcc/testsuite/gcc.dg/asm-7.c
+++ b/gcc/testsuite/gcc.dg/asm-7.c
@@ -9,7 +9,7 @@ void test(void)
static int m;
int *p;
- __asm__ ("" : : "m"(r)); /* { dg-warning "address of register" } */
+ __asm__ ("" : : "m"(r)); /* { dg-error "" } */
__asm__ ("" : : "m"(i));
__asm__ ("" : : "m"(m));
__asm__ ("" : : "m"(0)); /* { dg-error "" } */
@@ -22,7 +22,7 @@ void test(void)
__asm__ ("" : : "g"(0));
__asm__ ("" : : "g"(i+1));
- __asm__ ("" : "=m"(r2)); /* { dg-warning "address of register" } */
+ __asm__ ("" : "=m"(r2)); /* { dg-error "" } */
__asm__ ("" : "=m"(i));
__asm__ ("" : "=m"(m));
}
diff --git a/gcc/testsuite/gcc.dg/register-var-1.c b/gcc/testsuite/gcc.dg/register-var-1.c
new file mode 100644
index 0000000..6869b03
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/register-var-1.c
@@ -0,0 +1,14 @@
+/* PR/18160 */
+
+/* { dg-do compile { target i?86-*-* } } */
+
+/* This should yield an error even without -pedantic. */
+/* { dg-options "-ansi" } */
+
+void g(int *);
+
+void f(void)
+{
+ register int x __asm ("eax");
+ g(&x); /* { dg-error "error: address of register variable" } */
+}
diff --git a/gcc/testsuite/gcc.dg/register-var-2.c b/gcc/testsuite/gcc.dg/register-var-2.c
new file mode 100644
index 0000000..585dfe2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/register-var-2.c
@@ -0,0 +1,14 @@
+/* PR/18160 */
+
+/* { dg-do compile } */
+
+/* This should yield an error even without -pedantic. */
+/* { dg-options "-ansi" } */
+
+void g(int *);
+
+void f(void)
+{
+ register int x;
+ g(&x); /* { dg-error "error: address of register variable" } */
+}