aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFranz Sirl <Franz.Sirl-kernel@lauterbach.com>2000-11-18 18:46:15 +0000
committerRichard Henderson <rth@gcc.gnu.org>2000-11-18 10:46:15 -0800
commit3734169e0c671c661f8bef8aff2adc4ebfa7bd6b (patch)
treec3a554319a3e32d2dbf202d0a4a87817942b21b5
parent311d8afa84982538f1e2999f46493a061a30a11b (diff)
downloadgcc-3734169e0c671c661f8bef8aff2adc4ebfa7bd6b.zip
gcc-3734169e0c671c661f8bef8aff2adc4ebfa7bd6b.tar.gz
gcc-3734169e0c671c661f8bef8aff2adc4ebfa7bd6b.tar.bz2
20001115-1.c: Don't write to nonexistant memory.
* gcc.c-torture/execute/20001115-1.c: Don't write to nonexistant memory. From-SVN: r37544
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20001115-1.c16
2 files changed, 15 insertions, 6 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 382b519..14eca6c 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2000-11-18 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+ * gcc.c-torture/execute/20001115-1.c: Don't access nonexistant
+ memory.
+
2000-11-17 Nathan Sidwell <nathan@codesourcery.com>
* g++.old-deja/g++.pt/instantiate8.C: New test.
diff --git a/gcc/testsuite/gcc.c-torture/execute/20001115-1.c b/gcc/testsuite/gcc.c-torture/execute/20001115-1.c
index 0e34614..632ad4b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20001115-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20001115-1.c
@@ -1,28 +1,32 @@
extern void abort (void);
extern void exit (int);
-struct iso_directory_record {
+union iso_directory_record {
+ char carr[4];
+ struct {
unsigned char name_len [1];
char name [0];
+ } u;
} entry;
-void set(struct iso_directory_record *);
+void set(union iso_directory_record *);
int main (void)
{
- struct iso_directory_record *de;
+ union iso_directory_record *de;
de = &entry;
set(de);
- if (de->name_len[0] == 1 && de->name[0] == 0)
+ if (de->u.name_len[0] == 1 && de->u.name[0] == 0)
exit (0);
else
abort ();
}
-void set (struct iso_directory_record *p)
+void set (union iso_directory_record *p)
{
- p->name_len[0] = 1;
+ p->carr[0] = 1;
+ p->carr[1] = 0;
return;
}