diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 00b9a7868a04..78f186c019ba 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -3260,8 +3260,7 @@ static void RenderDebugOptions(const ToolChain &TC, const Driver &D, // -gsplit-dwarf should turn on -g and enable the backend dwarf // splitting and extraction. - // FIXME: Currently only works on Linux and Fuchsia. - if (T.isOSLinux() || T.isOSFuchsia()) { + if (T.isOSBinFormatELF()) { if (!SplitDWARFInlining) CmdArgs.push_back("-fno-split-dwarf-inlining"); @@ -4077,7 +4076,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, // Add the split debug info name to the command lines here so we // can propagate it to the backend. bool SplitDWARF = (DwarfFission != DwarfFissionKind::None) && - (RawTriple.isOSLinux() || RawTriple.isOSFuchsia()) && + TC.getTriple().isOSBinFormatELF() && (isa(JA) || isa(JA) || isa(JA)); const char *SplitDWARFOut; @@ -6134,8 +6133,8 @@ void ClangAs::ConstructJob(Compilation &C, const JobAction &JA, const llvm::Triple &T = getToolChain().getTriple(); Arg *A; - if ((getDebugFissionKind(D, Args, A) == DwarfFissionKind::Split) && - (T.isOSLinux() || T.isOSFuchsia())) { + if (getDebugFissionKind(D, Args, A) == DwarfFissionKind::Split && + T.isOSBinFormatELF()) { CmdArgs.push_back("-split-dwarf-file"); CmdArgs.push_back(SplitDebugName(Args, Input, Output)); } diff --git a/clang/test/Driver/split-debug.c b/clang/test/Driver/split-debug.c index 0ac206395e70..47afb1ab9b12 100644 --- a/clang/test/Driver/split-debug.c +++ b/clang/test/Driver/split-debug.c @@ -35,6 +35,9 @@ // RUN: %clang -target x86_64-unknown-linux-gnu -gsplit-dwarf -c -### %s 2> %t // RUN: FileCheck -check-prefix=CHECK-OPTION < %t %s // +// RUN: %clang -target x86_64-pc-freebsd12 -gsplit-dwarf -c -### %s 2> %t +// RUN: FileCheck -check-prefix=CHECK-OPTION < %t %s +// // CHECK-OPTION: "-split-dwarf-file" "split-debug.dwo" // RUN: %clang -target x86_64-unknown-linux-gnu -gsplit-dwarf -S -### %s 2> %t