summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornemet <nemet@138bc75d-0d04-0410-961f-82ee72b054a4>2004-10-28 19:31:25 +0000
committernemet <nemet@138bc75d-0d04-0410-961f-82ee72b054a4>2004-10-28 19:31:25 +0000
commit6aa2f2dc70ac5542790255aad076cf6406cb1893 (patch)
treebd3ef5c52a5055fcd548554ac89b9ffa3b3a00fd
parente3ab5fb6e9e642912816a5abb7be6abbfcd97030 (diff)
downloadgcc-6aa2f2dc70ac5542790255aad076cf6406cb1893.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89773 138bc75d-0d04-0410-961f-82ee72b054a4
-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 32e1b08078c..7b1378a661b 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 a14bb807369..65b0353fe46 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 00000000000..6869b034dcf
--- /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 00000000000..585dfe2bb62
--- /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" } */
+}