| /// Check driver handling for "-fvisibility-global-new-delete-hidden" and "-fvisibility-global-new-delete=". |
| |
| /// These options are not added by default. |
| // RUN: %clang -### --target=x86_64-unknown-unknown -c -emit-llvm %s 2>&1 | \ |
| // RUN: FileCheck -check-prefix=DEFAULTS %s |
| // DEFAULTS-NOT: "-fvisibility-global-new-delete=" |
| // DEFAULTS-NOT: "-fvisibility-global-new-delete-hidden" |
| |
| // DEFINE: %{implicit-check-nots} = --implicit-check-not=-fvisibility-global-new-delete= --implicit-check-not=-fvisibility-global-new-delete-hidden |
| |
| /// "-fvisibility-global-new-delete=source" added by default for PS5. |
| // RUN: %clang -### --target=x86_64-sie-ps5 -c -emit-llvm %s 2>&1 | \ |
| // RUN: FileCheck -check-prefix=PS5 %s |
| // PS5: "-fvisibility-global-new-delete=source" |
| |
| /// -fvisibility-global-new-delete-hidden added explicitly. |
| // RUN: %clang -### --target=x86_64-unknown-unknown -c -emit-llvm \ |
| // RUN: -fvisibility-global-new-delete-hidden %s 2>&1 | FileCheck -check-prefixes=VGNDH,DEPRECATED %s %{implicit-check-nots} |
| // RUN: %clang -### --target=x86_64-sie-ps5 -c -emit-llvm \ |
| // RUN: -fvisibility-global-new-delete-hidden %s 2>&1 | FileCheck -check-prefixes=VGNDH,DEPRECATED %s %{implicit-check-nots} |
| // DEPRECATED-DAG: clang: warning: argument '-fvisibility-global-new-delete-hidden' is deprecated, use '-fvisibility-global-new-delete=force-hidden' instead [-Wdeprecated] |
| // VGNDH-DAG: "-fvisibility-global-new-delete=force-hidden" |
| |
| /// -fvisibility-global-new-delete=force-hidden added explicitly. |
| // RUN: %clang -### --target=x86_64-unknown-unknown -c -emit-llvm \ |
| // RUN: -fvisibility-global-new-delete=force-hidden %s 2>&1 | FileCheck -check-prefixes=VGNDH %s %{implicit-check-nots} |
| // RUN: %clang -### --target=x86_64-sie-ps5 -c -emit-llvm \ |
| // RUN: -fvisibility-global-new-delete=force-hidden %s 2>&1 | FileCheck -check-prefixes=VGNDH %s %{implicit-check-nots} |
| |
| /// -fvisibility-global-new-delete=force-protected added explicitly. |
| // RUN: %clang -### --target=x86_64-unknown-unknown -c -emit-llvm \ |
| // RUN: -fvisibility-global-new-delete=force-protected %s 2>&1 | FileCheck -check-prefixes=VGNDP %s %{implicit-check-nots} |
| // RUN: %clang -### --target=x86_64-sie-ps5 -c -emit-llvm \ |
| // RUN: -fvisibility-global-new-delete=force-protected %s 2>&1 | FileCheck -check-prefixes=VGNDP %s %{implicit-check-nots} |
| // VGNDP-DAG: "-fvisibility-global-new-delete=force-protected" |
| |
| /// -fvisibility-global-new-delete=force-default added explicitly. |
| // RUN: %clang -### --target=x86_64-unknown-unknown -c -emit-llvm \ |
| // RUN: -fvisibility-global-new-delete=force-default %s 2>&1 | FileCheck -check-prefixes=VGNDD %s %{implicit-check-nots} |
| // RUN: %clang -### --target=x86_64-sie-ps5 -c -emit-llvm \ |
| // RUN: -fvisibility-global-new-delete=force-default %s 2>&1 | FileCheck -check-prefixes=VGNDD %s %{implicit-check-nots} |
| // VGNDD-DAG: "-fvisibility-global-new-delete=force-default" |
| |
| /// last specfied used: -fvisibility-global-new-delete-hidden. |
| // RUN: %clang -### --target=x86_64-unknown-unknown -c -emit-llvm \ |
| // RUN: -fvisibility-global-new-delete=force-default -fvisibility-global-new-delete=force-protected -fvisibility-global-new-delete-hidden %s 2>&1 | \ |
| // RUN: FileCheck -check-prefixes=VGNDH,DEPRECATED %s %{implicit-check-nots} |
| |
| /// last specfied used: -fvisibility-global-new-delete=. |
| // RUN: %clang -### --target=x86_64-unknown-unknown -c -emit-llvm \ |
| // RUN: -fvisibility-global-new-delete-hidden -fvisibility-global-new-delete=force-default -fvisibility-global-new-delete=force-protected %s 2>&1 | \ |
| // RUN: FileCheck -check-prefixes=VGNDP,DEPRECATED %s %{implicit-check-nots} |