X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=gcc%2Ftestsuite%2Fgcc.c-torture%2Fexecute%2F20010122-1.c;fp=gcc%2Ftestsuite%2Fgcc.c-torture%2Fexecute%2F20010122-1.c;h=0000000000000000000000000000000000000000;hb=6fed43773c9b0ce596dca5686f37ac3fc0fa11c0;hp=280e3d45c9eb3cc64466c57e3b24d2ab5aa3f68f;hpb=27b11d56b743098deb193d510b337ba22dc52e5c;p=msp430-gcc.git diff --git a/gcc/testsuite/gcc.c-torture/execute/20010122-1.c b/gcc/testsuite/gcc.c-torture/execute/20010122-1.c deleted file mode 100644 index 280e3d45..00000000 --- a/gcc/testsuite/gcc.c-torture/execute/20010122-1.c +++ /dev/null @@ -1,202 +0,0 @@ - -extern void exit (int); -extern void abort (void); -extern void *alloca (__SIZE_TYPE__); -char *dummy (void); - -#define NOINLINE __attribute__((noinline)) - -void *save_ret1[6]; -void *test4a (char *); -void *test5a (char *); -void *test6a (char *); - -void NOINLINE *test1 (void) -{ - void * temp; - temp = __builtin_return_address (0); - return temp; -} - -void NOINLINE *test2 (void) -{ - void * temp; - dummy (); - temp = __builtin_return_address (0); - return temp; -} - -void NOINLINE *test3 (void) -{ - void * temp; - temp = __builtin_return_address (0); - dummy (); - return temp; -} - -void NOINLINE *test4 (void) -{ - char * save = (char*) alloca (4); - - return test4a (save); -} - -void *NOINLINE test4a (char * p) -{ - void * temp; - temp = __builtin_return_address (1); - return temp; -} - -void NOINLINE *test5 (void) -{ - char * save = (char*) alloca (4); - - return test5a (save); -} - -void NOINLINE *test5a (char * p) -{ - void * temp; - dummy (); - temp = __builtin_return_address (1); - return temp; -} - -void NOINLINE *test6 (void) -{ - char * save = (char*) alloca (4); - - return test6a (save); -} - -void NOINLINE *test6a (char * p) -{ - void * temp; - temp = __builtin_return_address (1); - dummy (); - return temp; -} - -void *(*func1[6])(void) = { test1, test2, test3, test4, test5, test6 }; - -char * NOINLINE call_func1 (int i) -{ - save_ret1[i] = func1[i] (); -} - -static void *ret_addr; -void *save_ret2[6]; -void test10a (char *); -void test11a (char *); -void test12a (char *); - -void NOINLINE test7 (void) -{ - ret_addr = __builtin_return_address (0); - return; -} - -void NOINLINE test8 (void) -{ - dummy (); - ret_addr = __builtin_return_address (0); - return; -} - -void NOINLINE test9 (void) -{ - ret_addr = __builtin_return_address (0); - dummy (); - return; -} - -void NOINLINE test10 (void) -{ - char * save = (char*) alloca (4); - - test10a (save); -} - -void NOINLINE test10a (char * p) -{ - ret_addr = __builtin_return_address (1); - return; -} - -void NOINLINE test11 (void) -{ - char * save = (char*) alloca (4); - - test11a (save); -} - -void NOINLINE test11a (char * p) -{ - dummy (); - ret_addr = __builtin_return_address (1); - return; -} - -void NOINLINE test12 (void) -{ - char * save = (char*) alloca (4); - - test12a (save); -} - -void NOINLINE test12a (char * p) -{ - ret_addr = __builtin_return_address (1); - dummy (); - return; -} - -char * dummy (void) -{ - char * save = (char*) alloca (4); - - return save; -} - -void (*func2[6])(void) = { test7, test8, test9, test10, test11, test12 }; - -void NOINLINE call_func2 (int i) -{ - func2[i] (); - save_ret2[i] = ret_addr; -} - -int main (void) -{ - int i; - - for (i = 0; i < 6; i++) { - call_func1(i); - } - - if (save_ret1[0] != save_ret1[1] - || save_ret1[1] != save_ret1[2]) - abort (); - if (save_ret1[3] != save_ret1[4] - || save_ret1[4] != save_ret1[5]) - abort (); - if (save_ret1[3] && save_ret1[0] != save_ret1[3]) - abort (); - - - for (i = 0; i < 6; i++) { - call_func2(i); - } - - if (save_ret2[0] != save_ret2[1] - || save_ret2[1] != save_ret2[2]) - abort (); - if (save_ret2[3] != save_ret2[4] - || save_ret2[4] != save_ret2[5]) - abort (); - if (save_ret2[3] && save_ret2[0] != save_ret2[3]) - abort (); - - exit (0); -}