Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/cwsc1.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* { dg-do run } */ /* { dg-options "-O" } */ #if defined(__x86_64__) # define CHAIN "%r10" #elif defined(__i386__) # define CHAIN "%ecx" #elif defined(__aarch64__) # define CHAIN "x18" #elif defined(__alpha__) # define CHAIN "$1" #elif defined(__arm__) # define CHAIN "ip" #elif defined(__powerpc__) # define CHAIN "11" #elif defined(__s390__) # define CHAIN "%r0" #elif defined(__sparc__) # ifdef __arch64__ # define CHAIN "%g5" # else # define CHAIN "%g2" # endif #endif #ifdef CHAIN void *__attribute__((noinline, noclone)) foo(void) { register void *chain __asm__(CHAIN); return chain; } void * (*ptr)(void) = foo; extern void abort(void); int main() { char c; void *x = __builtin_call_with_static_chain(ptr(), &c); if (x != &c) abort(); return 0; } #else int main() { return 0; } #endif