* gcc.c-torture/execute/string-opt-1.c: New test.
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>
Tue, 7 Nov 2000 22:13:58 +0000 (22:13 +0000)
committerKaveh Ghazi <ghazi@gcc.gnu.org>
Tue, 7 Nov 2000 22:13:58 +0000 (22:13 +0000)
From-SVN: r37301

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/string-opt-1.c [new file with mode: 0644]

index 8b2a8725ba0753c480f341fe1847ccff75a4a307..540d2b9b517017e23354095839cbb8bf1d6d29a5 100644 (file)
@@ -1,3 +1,7 @@
+2000-11-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * gcc.c-torture/execute/string-opt-1.c: New test.
+
 2000-11-07  Jeffrey Oldham  <oldham@oz.codesourcery.com>
 
        * gcc.c-torture/execute/va-arg-15.x: New file.  Fails on
diff --git a/gcc/testsuite/gcc.c-torture/execute/string-opt-1.c b/gcc/testsuite/gcc.c-torture/execute/string-opt-1.c
new file mode 100644 (file)
index 0000000..e78f328
--- /dev/null
@@ -0,0 +1,38 @@
+/* Copyright (C) 2000  Free Software Foundation.
+
+   Ensure all expected transformations of builtin strstr occur and
+   perform correctly.
+
+   Written by Kaveh R. Ghazi, 11/6/2000.  */
+
+extern void abort(void);
+extern char *strstr (const char *, const char *);
+
+int main()
+{
+  const char *const foo = "hello world";
+  
+  if (strstr (foo, "") != foo)
+    abort();
+  if (strstr (foo + 4, "") != foo + 4)
+    abort();
+  if (strstr (foo, "h") != foo)
+    abort();
+  if (strstr (foo, "w") != foo + 6)
+    abort();
+  if (strstr (foo + 6, "o") != foo + 7)
+    abort();
+  
+  return 0;
+}
+
+#ifdef __OPTIMIZE__
+/* When optimizing, all the above cases should be transformed into
+   something else.  So any remaining calls to the original function
+   should abort.  */
+char *
+strstr(const char *s1, const char *s2)
+{
+  abort();
+}
+#endif