diff --git a/lib/Frontend/CompilerInvocation.cpp b/lib/Frontend/CompilerInvocation.cpp index a6b1b458e79546ce926807c562605c5b90c07bbf..076572e7505bb108e2b089136da624e926f0b347 100644 --- a/lib/Frontend/CompilerInvocation.cpp +++ b/lib/Frontend/CompilerInvocation.cpp @@ -337,9 +337,10 @@ static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK, } else if (Args.hasArg(OPT_g_Flag) || Args.hasArg(OPT_gdwarf_2) || Args.hasArg(OPT_gdwarf_3) || Args.hasArg(OPT_gdwarf_4)) { bool Default = false; - // Until dtrace (via CTF) can deal with distributed debug info, - // Darwin defaults to standalone/full debug info. - if (llvm::Triple(TargetOpts.Triple).isOSDarwin()) + // Until dtrace (via CTF) and LLDB can deal with distributed debug info, + // Darwin and FreeBSD default to standalone/full debug info. + if (llvm::Triple(TargetOpts.Triple).isOSDarwin() || + llvm::Triple(TargetOpts.Triple).isOSFreeBSD()) Default = true; if (Args.hasFlag(OPT_fstandalone_debug, OPT_fno_standalone_debug, Default)) diff --git a/test/CodeGenCXX/debug-info-vtable-optzn.cpp b/test/CodeGenCXX/debug-info-vtable-optzn.cpp index 8a6d4ff3e0f701d6e085e317edf9444fc3b17e6b..c693f794b26f1c62e00ecccd84492803257c72d4 100644 --- a/test/CodeGenCXX/debug-info-vtable-optzn.cpp +++ b/test/CodeGenCXX/debug-info-vtable-optzn.cpp @@ -1,8 +1,9 @@ // RUN: %clang_cc1 -emit-llvm -g -triple x86_64-apple-darwin %s -o - | FileCheck %s +// RUN: %clang_cc1 -emit-llvm -g -triple amd64-unknown-freebsd %s -o - | FileCheck %s // // This tests that the "emit debug info for a C++ class only in the // module that has its vtable" optimization is disabled by default on -// Darwin. +// Darwin and FreeBSD. // // CHECK: [ DW_TAG_member ] [lost] class A