summaryrefslogtreecommitdiff
path: root/patches/gcc/3.3.3/pr13260-test.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/gcc/3.3.3/pr13260-test.patch')
-rw-r--r--patches/gcc/3.3.3/pr13260-test.patch56
1 files changed, 56 insertions, 0 deletions
diff --git a/patches/gcc/3.3.3/pr13260-test.patch b/patches/gcc/3.3.3/pr13260-test.patch
new file mode 100644
index 0000000..d9cc3e4
--- /dev/null
+++ b/patches/gcc/3.3.3/pr13260-test.patch
@@ -0,0 +1,56 @@
+See http://gcc.gnu.org/PR13260
+
+/cvs/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20031204-1.c,v --> standard output
+revision 1.1
+--- - 1970-01-01 00:00:00.000000000 +0000
++++ gcc/gcc/testsuite/gcc.c-torture/execute/20031204-1.c
+@@ -0,0 +1,49 @@
++/* PR optimization/13260 */
++
++#include <string.h>
++
++typedef unsigned long u32;
++
++u32 in_aton(const char* x)
++{
++ return 0x0a0b0c0d;
++}
++
++u32 root_nfs_parse_addr(char *name)
++{
++ u32 addr;
++ int octets = 0;
++ char *cp, *cq;
++
++ cp = cq = name;
++ while (octets < 4) {
++ while (*cp >= '0' && *cp <= '9')
++ cp++;
++ if (cp == cq || cp - cq > 3)
++ break;
++ if (*cp == '.' || octets == 3)
++ octets++;
++ if (octets < 4)
++ cp++;
++ cq = cp;
++ }
++
++ if (octets == 4 && (*cp == ':' || *cp == '\0')) {
++ if (*cp == ':')
++ *cp++ = '\0';
++ addr = in_aton(name);
++ strcpy(name, cp);
++ } else
++ addr = (-1);
++
++ return addr;
++}
++
++int
++main()
++{
++ static char addr[] = "10.11.12.13:/hello";
++ u32 result = root_nfs_parse_addr(addr);
++ if (result != 0x0a0b0c0d) { abort(); }
++ return 0;
++}