summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/noncompile/920923-1.c
diff options
context:
space:
mode:
authorupstream source tree <ports@midipix.org>2015-03-15 20:14:05 -0400
committerupstream source tree <ports@midipix.org>2015-03-15 20:14:05 -0400
commit554fd8c5195424bdbcabf5de30fdc183aba391bd (patch)
tree976dc5ab7fddf506dadce60ae936f43f58787092 /gcc/testsuite/gcc.dg/noncompile/920923-1.c
downloadcbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.bz2
cbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.xz
obtained gcc-4.6.4.tar.bz2 from upstream website;upstream
verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository.
Diffstat (limited to 'gcc/testsuite/gcc.dg/noncompile/920923-1.c')
-rw-r--r--gcc/testsuite/gcc.dg/noncompile/920923-1.c127
1 files changed, 127 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/noncompile/920923-1.c b/gcc/testsuite/gcc.dg/noncompile/920923-1.c
new file mode 100644
index 000000000..ccd1dc3a7
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/noncompile/920923-1.c
@@ -0,0 +1,127 @@
+/* { dg-message "undeclared identifier is reported only once" "reminder for mmu_base" { target *-*-* } 0 } */
+typedef BYTE unsigned char; /* { dg-error "expected" } */
+typedef int item_n;
+typedef int perm_set;
+struct PENT { caddr_t v_addr; };/* { dg-error "unknown type name" } */
+typedef struct PENT prec;
+typedef struct PENT *prec_t;
+prec_t mem_hash;
+BYTE *mem_base; /* { dg-error "unknown type name" } */
+struct PTE {
+ BYTE *p_page; /* { dg-error "unknown type name" } */
+ perm_set p_perms;
+};
+typedef struct PTE pte;
+struct PTP {
+ union {
+ struct *PTP p_tablep; /* { dg-error "expected" } */
+ struct *PTE p_entry;
+ } u;
+ int valid;
+};
+typedef struct PTP (u.p_tablep);/* { dg-error "expected" } */
+int pfree=0;
+int pcount=0;
+
+void
+mmu_walk_find(va)
+caddr_t va; /* { dg-error "unknown type name" } */
+{
+ BYTE *page_addr; /* { dg-error "unknown type name" } */
+ if (mmu_base[Level1(va)]->valid==0x0) { /* { dg-error "undeclared" } */
+ l1_base = mmu_base[Level1(va)]->(u.p_tablep) = p_alloc(); /* { dg-error "expected|undeclared" } */
+ mmu_base[Level1(va)]->valid = 0x3;
+ for (idx=0; idx<LEVEL1_ENTRIES; idx++) /* { dg-error "undeclared" } */
+ l1_base[idx]->valid = 0x0;
+ goto build_level2;
+ } else
+ l1_base = mmu_base[Level1(va)]->(u.p_tablep); /* { dg-error "expected" } */
+
+ if (l1_base[Level2(va)]->valid==0x0) {
+ build_level2:
+ l2_base = l1_base[Level2(va)]->(u.p_tablep) = p_alloc(); /* { dg-error "expected|undeclared" } */
+ l1_base[Level2(va)]->valid = 0x3;
+ for (idx=0; idx<LEVEL2_ENTRIES; idx++) /* { dg-error "undeclared" } */
+ l2_base[idx]->valid=0x0;
+ goto build_page; /* { dg-error "used but not defined" } */
+ } else
+ l2_base = mmu_base[Level2(va)]->(u.p_tablep); /* { dg-error "expected" } */
+
+ page_addr = l2_base[Level2(va)]->valid;
+}
+
+void *
+a_translate(va_op, v_addr)
+int va_op;
+caddr_t v_addr; /* { dg-error "unknown type name" } */
+{
+ register prec_t bucket;
+ register caddr_t p_addr; /* { dg-error "unknown type name" } */
+ bucket = mem_hash+((((v_addr)>>ITEMBITS))&hash_mask); /* { dg-error "undeclared" } */
+ do {
+ if (bucket->v_addr == ((v_addr)>>ITEMBITS) { /* { dg-error "expected|undeclared|no member" } */
+ if(!(bucket->perm_set&va_op))
+ goto prot_fault;
+ return mem_base + v_addr;
+ }
+ } while((bucket++)->v_addr != ((caddr_t)0)); /* { dg-error "expected|undeclared|no member" } */
+
+ page_miss:
+ p_addr = (--bucket)->p_addr; /* { dg-error "no member" } */
+ page_type:
+ switch (p_addr) {
+ case BUCKET_FULL: /* { dg-error "undeclared" } */
+ enlarge_hash_table(mem_hash);
+ case((caddr_t)0): /* { dg-error "expected" } */
+ p_addr = fill_item_entry(va_op, v_addr);
+ goto page_type;
+ case((caddr_t)1): /* { dg-error "expected" } */
+ default:
+ ((void)(((0))?0:(__eprintf("Failed assertion`%s'at line%d of`%s'.\n",
+ "FALSE", 327, "b.c"), 0)));
+ }
+}
+
+void
+flush_hash(hasht, hash_size)
+prec_t hasht;
+int hash_size;
+{
+ register prec_t bucket;
+ register int idx;
+ bucket = hasht;
+ for(idx=(hash_size*3)-1; idx>=0; idx--) {
+ bucket->v_addr = ((caddr_t)0);/* { dg-error "undeclared|expected|no member" } */
+ bucket->p_addr = ((caddr_t)0);/* { dg-error "no member|expected" } */
+ bucket->perm_set = VA_EMPTY; /* { dg-error "undeclared|no member" } */
+ }
+}
+
+extern void *calloc(__SIZE_TYPE__, __SIZE_TYPE__);
+
+void
+init_mem()
+{
+ mem_base = (BYTE *) calloc(1024, (1<<13)); /* { dg-error "undeclared|expected" } */
+ ((void)((mem_base != (BYTE *)0) /* { dg-error "expected" } */
+ ? 0
+ : (__eprintf("Failed assertion`%s'at line%d of`%s'.\n",
+ "mem_base != (BYTE *)0", 366, "b.c"),
+ 0)));
+ hash_num = INIT_NUM_ENTRIES * 3; /* { dg-error "undeclared" } */
+ mem_hash = (prec_t) calloc(hash_num, sizeof(prec));
+ ((void)((mem_hash != (prec_t)0)
+ ? 0
+ : (__eprintf("Failed assertion`%s'at line%d of`%s'.\n",
+ "mem_hash != (prec_t)0", 370, "b.c"),
+ 0)));
+ flush_hash(mem_hash, 32);
+ build_ptables(mem_base, 1024*(1<<13)); /* { dg-bogus "integer overflow" "int smaller than 32 bits" { xfail int16 } } */
+}
+
+struct tm {
+ int tm_sec; int tm_min; int tm_hour;
+ int tm_mday;int tm_mon; int tm_year;
+ int tm_wday;int tm_yday;int tm_isdst;
+ char*tm_zone; long tm_gmtoff;
+};