diff options
author | Dan Gohman <dan433584@gmail.com> | 2016-01-07 01:00:21 +0000 |
---|---|---|
committer | Dan Gohman <dan433584@gmail.com> | 2016-01-07 01:00:21 +0000 |
commit | e3d71e14d756d78f9e2538f2e530aa7c051541cd (patch) | |
tree | 48890fc1914107f86fc19e121551acc756e17f3d /clang/lib/Driver/Tools.cpp | |
parent | a5b804be6113c23bbfd4629c2548a75d353a5a62 (diff) | |
download | llvm-e3d71e14d756d78f9e2538f2e530aa7c051541cd.zip llvm-e3d71e14d756d78f9e2538f2e530aa7c051541cd.tar.gz llvm-e3d71e14d756d78f9e2538f2e530aa7c051541cd.tar.bz2 |
[WebAssembly] Enable -fvisibility=hidden by default.
This, along with many things in the WebAssembly target, is experimental.
Feedback is welcome.
llvm-svn: 257006
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 1584991..49d45ae 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -2069,6 +2069,16 @@ void Clang::AddHexagonTargetArgs(const ArgList &Args, CmdArgs.push_back("-machine-sink-split=0"); } +void Clang::AddWebAssemblyTargetArgs(const ArgList &Args, + ArgStringList &CmdArgs) const { + // Default to "hidden" visibility. + if (!Args.hasArg(options::OPT_fvisibility_EQ, + options::OPT_fvisibility_ms_compat)) { + CmdArgs.push_back("-fvisibility"); + CmdArgs.push_back("hidden"); + } +} + // Decode AArch64 features from string like +[no]featureA+[no]featureB+... static bool DecodeAArch64Features(const Driver &D, StringRef text, std::vector<const char *> &Features) { @@ -4015,6 +4025,11 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, case llvm::Triple::hexagon: AddHexagonTargetArgs(Args, CmdArgs); break; + + case llvm::Triple::wasm32: + case llvm::Triple::wasm64: + AddWebAssemblyTargetArgs(Args, CmdArgs); + break; } // The 'g' groups options involve a somewhat intricate sequence of decisions |