externstatic.c 989 B

1234567891011121314151617181920212223242526
  1. // RUN: %clang -c -DSTORAGE="extern" -o - -emit-interface-stubs -std=c99 -xc %s | \
  2. // RUN: FileCheck -check-prefix=CHECK-EXTERN %s
  3. // RUN: %clang -DSTORAGE="extern" -O0 -o - -c -std=c99 \
  4. // RUN: -xc %s | llvm-nm - 2>&1 | FileCheck -check-prefix=CHECK-EXTERN %s
  5. // RUN: %clang -c -DSTORAGE="extern" -o - -emit-interface-stubs -std=c99 -xc %s | \
  6. // RUN: FileCheck -check-prefix=CHECK-EXTERN2 %s
  7. // RUN: %clang -DSTORAGE="extern" -O0 -o - -c -std=c99 -xc %s | llvm-nm - 2>&1 | \
  8. // RUN: FileCheck -check-prefix=CHECK-EXTERN2 %s
  9. // RUN: %clang -c -DSTORAGE="static" -o - -emit-interface-stubs -std=c99 -xc %s | \
  10. // RUN: FileCheck -check-prefix=CHECK-STATIC %s
  11. // RUN: %clang -DSTORAGE="static" -O0 -o - -c -std=c99 -xc %s | llvm-nm - 2>&1 | \
  12. // RUN: FileCheck -check-prefix=CHECK-STATIC %s
  13. // CHECK-EXTERN-NOT: foo
  14. // CHECK-STATIC-NOT: foo
  15. // CHECK-STATIC-NOT: bar
  16. // We want to emit extern function symbols.
  17. // CHECK-EXTERN2: bar
  18. STORAGE int foo;
  19. STORAGE int bar() { return 42; }