| 1 | // RUN: %clang -v -o /dev/null -fxray-instrument -fxray-modes=xray-fdr %s -### \ |
| 2 | // RUN: 2>&1 | FileCheck --check-prefix FDR %s |
| 3 | // RUN: %clang -v -o /dev/null -fxray-instrument -fxray-modes=xray-basic %s \ |
| 4 | // RUN: -### 2>&1 | FileCheck --check-prefix BASIC %s |
| 5 | // RUN: %clang -v -o /dev/null -fxray-instrument -fxray-modes=all -### %s \ |
| 6 | // RUN: 2>&1 | FileCheck --check-prefixes FDR,BASIC %s |
| 7 | // RUN: %clang -v -o /dev/null -fxray-instrument \ |
| 8 | // RUN: -fxray-modes=xray-fdr,xray-basic -### %s 2>&1 | \ |
| 9 | // RUN: FileCheck --check-prefixes FDR,BASIC %s |
| 10 | // RUN: %clang -v -o /dev/null -fxray-instrument \ |
| 11 | // RUN: -fxray-modes=xray-fdr -fxray-modes=xray-basic -### %s 2>&1 | \ |
| 12 | // RUN: FileCheck --check-prefixes FDR,BASIC %s |
| 13 | // RUN: %clang -v -o /dev/null -fxray-instrument -### %s \ |
| 14 | // RUN: 2>&1 | FileCheck --check-prefixes FDR,BASIC %s |
| 15 | // RUN: %clang -v -o /dev/null -fxray-instrument -fxray-modes=none -### %s \ |
| 16 | // RUN: 2>&1 | FileCheck --check-prefixes NONE %s |
| 17 | // |
| 18 | // We also should support overriding the modes in an additive manner. |
| 19 | // |
| 20 | // RUN: %clang -v -o /dev/null -fxray-instrument -fxray-modes=none,xray-fdr \ |
| 21 | // RUN: -### %s \ |
| 22 | // RUN: 2>&1 | FileCheck --check-prefixes FDR %s |
| 23 | // RUN: %clang -v -o /dev/null -fxray-instrument -fxray-modes=xray-fdr,none \ |
| 24 | // RUN: -### %s \ |
| 25 | // RUN: 2>&1 | FileCheck --check-prefixes NONE %s |
| 26 | // RUN: %clang -v -o /dev/null -fxray-instrument -fxray-modes=none,all \ |
| 27 | // RUN: -### %s \ |
| 28 | // RUN: 2>&1 | FileCheck --check-prefixes FDR,BASIC %s |
| 29 | // |
| 30 | // We also should support having the individual modes be concatenated. |
| 31 | // |
| 32 | // RUN: %clang -v -o /dev/null -fxray-instrument -fxray-modes=none \ |
| 33 | // RUN: -fxray-modes=xray-fdr \ |
| 34 | // RUN: -### %s \ |
| 35 | // RUN: 2>&1 | FileCheck --check-prefixes FDR %s |
| 36 | // |
| 37 | // Order also matters. |
| 38 | // |
| 39 | // RUN: %clang -v -o /dev/null -fxray-instrument -fxray-modes=xray-fdr \ |
| 40 | // RUN: -fxray-modes=none \ |
| 41 | // RUN: -### %s \ |
| 42 | // RUN: 2>&1 | FileCheck --check-prefixes NONE %s |
| 43 | |
| 44 | // BASIC: libclang_rt.xray-basic |
| 45 | // FDR: libclang_rt.xray-fdr |
| 46 | // NONE-NOT: libclang_rt.xray-basic |
| 47 | // NONE-NOT: libclang_rt.xray-fdr |
| 48 | // REQUIRES-ANY: linux, freebsd |
| 49 | // REQUIRES-ANY: amd64, x86_64, x86_64h, arm, aarch64, arm64 |
| 50 | |