This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Testcase for builtin strstr
- To: gcc-patches at gcc dot gnu dot org
- Subject: Testcase for builtin strstr
- From: "Kaveh R. Ghazi" <ghazi at caip dot rutgers dot edu>
- Date: Mon, 6 Nov 2000 16:20:01 -0500 (EST)
- Cc: jsm28 at cam dot ac dot uk
I'd like to install the following code as
gcc.c-torture/execute/string-opt-1.c.
It tests the new strstr builtin. Ok to install?
Thanks,
--Kaveh
/* 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