predefined-expr.c 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s
  2. // CHECK: @__func__.plainFunction = private unnamed_addr constant [14 x i8] c"plainFunction\00"
  3. // CHECK: @__PRETTY_FUNCTION__.plainFunction = private unnamed_addr constant [21 x i8] c"void plainFunction()\00"
  4. // CHECK: @__func__.externFunction = private unnamed_addr constant [15 x i8] c"externFunction\00"
  5. // CHECK: @__PRETTY_FUNCTION__.externFunction = private unnamed_addr constant [22 x i8] c"void externFunction()\00"
  6. // CHECK: @__func__.privateExternFunction = private unnamed_addr constant [22 x i8] c"privateExternFunction\00"
  7. // CHECK: @__PRETTY_FUNCTION__.privateExternFunction = private unnamed_addr constant [29 x i8] c"void privateExternFunction()\00"
  8. // CHECK: @__func__.staticFunction = private unnamed_addr constant [15 x i8] c"staticFunction\00"
  9. // CHECK: @__PRETTY_FUNCTION__.staticFunction = private unnamed_addr constant [22 x i8] c"void staticFunction()\00"
  10. int printf(const char *, ...);
  11. void plainFunction() {
  12. printf("__func__ %s\n", __func__);
  13. printf("__FUNCTION__ %s\n", __FUNCTION__);
  14. printf("__PRETTY_FUNCTION__ %s\n\n", __PRETTY_FUNCTION__);
  15. }
  16. extern void externFunction() {
  17. printf("__func__ %s\n", __func__);
  18. printf("__FUNCTION__ %s\n", __FUNCTION__);
  19. printf("__PRETTY_FUNCTION__ %s\n\n", __PRETTY_FUNCTION__);
  20. }
  21. __private_extern__ void privateExternFunction() {
  22. printf("__func__ %s\n", __func__);
  23. printf("__FUNCTION__ %s\n", __FUNCTION__);
  24. printf("__PRETTY_FUNCTION__ %s\n\n", __PRETTY_FUNCTION__);
  25. }
  26. static void staticFunction() {
  27. printf("__func__ %s\n", __func__);
  28. printf("__FUNCTION__ %s\n", __FUNCTION__);
  29. printf("__PRETTY_FUNCTION__ %s\n\n", __PRETTY_FUNCTION__);
  30. }
  31. int main() {
  32. plainFunction();
  33. externFunction();
  34. privateExternFunction();
  35. staticFunction();
  36. return 0;
  37. }