diff options
author | YamaArashi <shadow962@live.com> | 2016-01-06 01:47:28 -0800 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-01-06 01:47:28 -0800 |
commit | be8b04496302184c6e8f04d6179f9c3afc50aeb6 (patch) | |
tree | 726e2468c0c07add773c0dbd86ab6386844259ae /gcc/testsuite/gcc.wendy/gnu5.c |
initial commit
Diffstat (limited to 'gcc/testsuite/gcc.wendy/gnu5.c')
-rwxr-xr-x | gcc/testsuite/gcc.wendy/gnu5.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.wendy/gnu5.c b/gcc/testsuite/gcc.wendy/gnu5.c new file mode 100755 index 0000000..58a52a8 --- /dev/null +++ b/gcc/testsuite/gcc.wendy/gnu5.c @@ -0,0 +1,41 @@ +/* +Date: 22 Dec 87 08:38:59 PST (Tuesday) +Subject: Serious bug in gcc 1.16 +From: "James_L_Mayer.WBST128"@xerox.com +To: bug-gcc@prep.ai.mit.edu +Message-Id: <871222-084137-7045@Xerox> + +Here is a bug in release 1.16 of gcc running on a Sun3: + +Problem: + In assembler output, "pointer" is incremented twice for each iteration. + (when compiled optimized.) +*/ + +struct bits +{ + unsigned bit0: 1; + unsigned bit1: 1; +} foo[2]; + +alpha(pointer, count) + struct bits *pointer; + int count; +{ + while (--count >= 0) + { + pointer->bit0 = !pointer->bit0; + pointer++; + } + + if (pointer == &foo[2]) + printf("Test passed\n"); + else + printf("FAILED, pointer=%x, &foo[2]=%x\n", pointer, &foo[2]); +} + +main() +{ + alpha(foo, 2); + return 0; +} |