1 // RUN: %clang -target x86_64-apple-darwin -save-stats %s -### 2>&1 | FileCheck %s 2 // RUN: %clang -target x86_64-apple-darwin -save-stats=cwd %s -### 2>&1 | FileCheck %s 3 // CHECK: "-stats-file=save-stats.stats" 4 // CHECK: "{{.*}}save-stats.c" 5 6 // RUN: %clang -target x86_64-apple-darwin -S %s -### 2>&1 | FileCheck %s -check-prefix=NO-STATS 7 // NO-STATS-NO: -stats-file 8 // NO-STATS: "{{.*}}save-stats.c" 9 // NO-STATS-NO: -stats-file 10 11 // RUN: %clang -target x86_64-apple-darwin -save-stats=obj -c -o obj/dir/save-stats.o %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-OBJ 12 // CHECK-OBJ: "-stats-file=obj/dir{{/|\\\\}}save-stats.stats" 13 // CHECK-OBJ: "-o" "obj/dir{{/|\\\\}}save-stats.o" 14 15 // RUN: %clang -target x86_64-apple-darwin -save-stats=obj -c %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-OBJ-NOO 16 // CHECK-OBJ-NOO: "-stats-file=save-stats.stats" 17 // CHECK-OBJ-NOO: "-o" "save-stats.o" 18 19 // RUN: not %clang -target x86_64-apple-darwin -save-stats=bla -c %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-INVALID 20 // CHECK-INVALID: invalid value 'bla' in '-save-stats=bla' 21 22 // RUN: %clang --target=x86_64-unknown-linux -save-stats -flto -o obj/dir/save-stats.exe %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-LTO 23 // Previously `-plugin-opt=stats-file` would use empty filename if a linker flag (i.e. -Wl) is presented before any input filename. 24 // RUN: %clang --target=x86_64-unknown-linux -save-stats -flto -o obj/dir/save-stats.exe -Wl,-plugin-opt=-dummy %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-LTO 25 // RUN: %clang --target=x86_64-unknown-freebsd -save-stats -flto -o obj/dir/save-stats.exe %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-LTO 26 // RUN: %clang --target=x86_64-unknown-freebsd -save-stats -flto -o obj/dir/save-stats.exe -Wl,-plugin-opt=-dummy %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-LTO 27 // RUN: %clang --target=x86_64-unknown-openbsd -save-stats -flto -o obj/dir/save-stats.exe %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-LTO 28 // RUN: %clang --target=x86_64-unknown-openbsd -save-stats -flto -o obj/dir/save-stats.exe -Wl,-plugin-opt=-dummy %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-LTO 29 // RUN: %clang --target=x86_64-unknown-fuchsia -save-stats -flto -o obj/dir/save-stats.exe %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-LTO 30 // RUN: %clang --target=x86_64-unknown-fuchsia -save-stats -flto -o obj/dir/save-stats.exe -Wl,-plugin-opt=-dummy %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-LTO 31 // RUN: %clang --target=x86_64-unknown-haiku -save-stats -flto -o obj/dir/save-stats.exe %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-LTO 32 // RUN: %clang --target=x86_64-unknown-haiku -save-stats -flto -o obj/dir/save-stats.exe -Wl,-plugin-opt=-dummy %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-LTO 33 // RUN: %clang --target=avr -save-stats -flto -o obj/dir/save-stats.exe %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-LTO 34 // RUN: %clang --target=avr -save-stats -flto -o obj/dir/save-stats.exe -Wl,-plugin-opt=-dummy %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-LTO 35 // CHECK-LTO: "-stats-file=save-stats.stats" 36 // CHECK-LTO: "-o" "obj/dir{{/|\\\\}}save-stats.exe" 37 // CHECK-LTO: "-plugin-opt=stats-file=save-stats.stats" 38 39 // RUN: %clang --target=powerpc-unknown-aix -save-stats -flto -o obj/dir/save-stats %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-AIX-LTO 40 // RUN: %clang --target=powerpc-unknown-aix -save-stats -flto -o obj/dir/save-stats -Wl,-bplugin-opt:-dummy %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-AIX-LTO 41 42 // CHECK-AIX-LTO: "-stats-file=save-stats.stats" 43 // CHECK-AIX-LTO: "-o" "obj/dir{{/|\\\\}}save-stats" 44 // CHECK-AIX-LTO: "-bplugin_opt:stats-file=save-stats.stats" 45 46 // RUN: %clang --target=x86_64-unknown-linux -save-stats=obj -flto -o obj/dir/save-stats.exe %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-LTO-OBJ 47 // CHECK-LTO-OBJ: "-plugin-opt=stats-file=obj/dir{{/|\\\\}}save-stats.stats" 48 49 // RUN: env CC_PRINT_INTERNAL_STAT=1 \ 50 // RUN: %clang -target x86_64-apple-darwin %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-ENV 51 // CHECK-ENV: "-stats-file=-" 52 // CHECK-ENV-NO: "stats-file-append" 53 54 // RUN: env CC_PRINT_INTERNAL_STAT=1 \ 55 // RUN: CC_PRINT_INTERNAL_STAT_FILE=/tmp/stats.json \ 56 // RUN: %clang -target x86_64-apple-darwin %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-ENV-FILE 57 // CHECK-ENV-FILE: "-stats-file=/tmp/stats.json" 58 // CHECK-ENV-FILE: "-stats-file-append" 59