]> granicus.if.org Git - clang/commitdiff
Enable standalone-debug by default on FreeBSD
authorEd Maste <emaste@freebsd.org>
Thu, 8 May 2014 13:01:26 +0000 (13:01 +0000)
committerEd Maste <emaste@freebsd.org>
Thu, 8 May 2014 13:01:26 +0000 (13:01 +0000)
It was set by default on Darwin in r198655.  The same usability issues
with DTrace and LLDB apply to FreeBSD, so set it by default there too.

rdar://problem/15758808
http://llvm.org/pr19676

Differential Revision: http://reviews.llvm.org/D3448

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208310 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Frontend/CompilerInvocation.cpp
test/CodeGenCXX/debug-info-vtable-optzn.cpp

index a6b1b458e79546ce926807c562605c5b90c07bbf..076572e7505bb108e2b089136da624e926f0b347 100644 (file)
@@ -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))
index 8a6d4ff3e0f701d6e085e317edf9444fc3b17e6b..c693f794b26f1c62e00ecccd84492803257c72d4 100644 (file)
@@ -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