summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Basic/Targets.cpp2
-rw-r--r--clang/lib/Driver/ToolChains/Fuchsia.cpp14
2 files changed, 13 insertions, 3 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 664260d184f..c063f8ca447 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -383,6 +383,8 @@ TargetInfo *AllocateTarget(const llvm::Triple &Triple,
switch (os) {
case llvm::Triple::FreeBSD:
return new FreeBSDTargetInfo<RISCV64TargetInfo>(Triple, Opts);
+ case llvm::Triple::Fuchsia:
+ return new FuchsiaTargetInfo<RISCV64TargetInfo>(Triple, Opts);
case llvm::Triple::Linux:
return new LinuxTargetInfo<RISCV64TargetInfo>(Triple, Opts);
default:
diff --git a/clang/lib/Driver/ToolChains/Fuchsia.cpp b/clang/lib/Driver/ToolChains/Fuchsia.cpp
index df2b4724dc2..9bea0b15c87 100644
--- a/clang/lib/Driver/ToolChains/Fuchsia.cpp
+++ b/clang/lib/Driver/ToolChains/Fuchsia.cpp
@@ -224,7 +224,7 @@ Fuchsia::Fuchsia(const Driver &D, const llvm::Triple &Triple,
std::string Fuchsia::ComputeEffectiveClangTriple(const ArgList &Args,
types::ID InputType) const {
llvm::Triple Triple(ComputeLLVMTriple(Args, InputType));
- return (Triple.getArchName() + "-" + Triple.getOSName()).str();
+ return Triple.str();
}
Tool *Fuchsia::buildLinker() const {
@@ -344,9 +344,17 @@ SanitizerMask Fuchsia::getSupportedSanitizers() const {
SanitizerMask Fuchsia::getDefaultSanitizers() const {
SanitizerMask Res;
- if (getTriple().getArch() == llvm::Triple::aarch64)
+ switch (getTriple().getArch()) {
+ case llvm::Triple::aarch64:
Res |= SanitizerKind::ShadowCallStack;
- else
+ break;
+ case llvm::Triple::x86_64:
Res |= SanitizerKind::SafeStack;
+ break;
+ case llvm::Triple::riscv64:
+ break;
+ default:
+ llvm_unreachable("invalid architecture");
+ }
return Res;
}
OpenPOWER on IntegriCloud