1/// Check driver handling for "-fvisibility-global-new-delete-hidden" and "-fvisibility-global-new-delete=". 2 3/// These options are not added by default. 4// RUN: %clang -### --target=x86_64-unknown-unknown -c -emit-llvm %s 2>&1 | \ 5// RUN: FileCheck -check-prefix=DEFAULTS %s 6// DEFAULTS-NOT: "-fvisibility-global-new-delete=" 7// DEFAULTS-NOT: "-fvisibility-global-new-delete-hidden" 8 9// DEFINE: %{implicit-check-nots} = --implicit-check-not=-fvisibility-global-new-delete= --implicit-check-not=-fvisibility-global-new-delete-hidden 10 11/// "-fvisibility-global-new-delete=source" added by default for PS5. 12// RUN: %clang -### --target=x86_64-sie-ps5 -c -emit-llvm %s 2>&1 | \ 13// RUN: FileCheck -check-prefix=PS5 %s 14// PS5: "-fvisibility-global-new-delete=source" 15 16/// -fvisibility-global-new-delete-hidden added explicitly. 17// RUN: %clang -### --target=x86_64-unknown-unknown -c -emit-llvm \ 18// RUN: -fvisibility-global-new-delete-hidden %s 2>&1 | FileCheck -check-prefixes=VGNDH,DEPRECATED %s %{implicit-check-nots} 19// RUN: %clang -### --target=x86_64-sie-ps5 -c -emit-llvm \ 20// RUN: -fvisibility-global-new-delete-hidden %s 2>&1 | FileCheck -check-prefixes=VGNDH,DEPRECATED %s %{implicit-check-nots} 21// DEPRECATED-DAG: clang: warning: argument '-fvisibility-global-new-delete-hidden' is deprecated, use '-fvisibility-global-new-delete=force-hidden' instead [-Wdeprecated] 22// VGNDH-DAG: "-fvisibility-global-new-delete=force-hidden" 23 24/// -fvisibility-global-new-delete=force-hidden added explicitly. 25// RUN: %clang -### --target=x86_64-unknown-unknown -c -emit-llvm \ 26// RUN: -fvisibility-global-new-delete=force-hidden %s 2>&1 | FileCheck -check-prefixes=VGNDH %s %{implicit-check-nots} 27// RUN: %clang -### --target=x86_64-sie-ps5 -c -emit-llvm \ 28// RUN: -fvisibility-global-new-delete=force-hidden %s 2>&1 | FileCheck -check-prefixes=VGNDH %s %{implicit-check-nots} 29 30/// -fvisibility-global-new-delete=force-protected added explicitly. 31// RUN: %clang -### --target=x86_64-unknown-unknown -c -emit-llvm \ 32// RUN: -fvisibility-global-new-delete=force-protected %s 2>&1 | FileCheck -check-prefixes=VGNDP %s %{implicit-check-nots} 33// RUN: %clang -### --target=x86_64-sie-ps5 -c -emit-llvm \ 34// RUN: -fvisibility-global-new-delete=force-protected %s 2>&1 | FileCheck -check-prefixes=VGNDP %s %{implicit-check-nots} 35// VGNDP-DAG: "-fvisibility-global-new-delete=force-protected" 36 37/// -fvisibility-global-new-delete=force-default added explicitly. 38// RUN: %clang -### --target=x86_64-unknown-unknown -c -emit-llvm \ 39// RUN: -fvisibility-global-new-delete=force-default %s 2>&1 | FileCheck -check-prefixes=VGNDD %s %{implicit-check-nots} 40// RUN: %clang -### --target=x86_64-sie-ps5 -c -emit-llvm \ 41// RUN: -fvisibility-global-new-delete=force-default %s 2>&1 | FileCheck -check-prefixes=VGNDD %s %{implicit-check-nots} 42// VGNDD-DAG: "-fvisibility-global-new-delete=force-default" 43 44/// last specfied used: -fvisibility-global-new-delete-hidden. 45// RUN: %clang -### --target=x86_64-unknown-unknown -c -emit-llvm \ 46// RUN: -fvisibility-global-new-delete=force-default -fvisibility-global-new-delete=force-protected -fvisibility-global-new-delete-hidden %s 2>&1 | \ 47// RUN: FileCheck -check-prefixes=VGNDH,DEPRECATED %s %{implicit-check-nots} 48 49/// last specfied used: -fvisibility-global-new-delete=. 50// RUN: %clang -### --target=x86_64-unknown-unknown -c -emit-llvm \ 51// RUN: -fvisibility-global-new-delete-hidden -fvisibility-global-new-delete=force-default -fvisibility-global-new-delete=force-protected %s 2>&1 | \ 52// RUN: FileCheck -check-prefixes=VGNDP,DEPRECATED %s %{implicit-check-nots} 53