From db978ad9fd1215b6533114cb48e80c21354f1b9a Mon Sep 17 00:00:00 2001
From: Reid Kleckner <rnk@google.com>
Date: Fri, 9 Sep 2016 16:42:50 +0000
Subject: [PATCH] Make -fstandalone-debug and -flimit-debug-info available in
 clang-cl

Our limited debug info optimizations are breaking down at DLL
boundaries, so we're going to evaluate the size impact of these
settings, and possibly change the default.

Users should be able to override our settings, though.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@281056 91177308-0d34-0410-b5e6-96231b3b80d8
---
 include/clang/Driver/Options.td | 8 ++++----
 test/Driver/cl-options.c        | 2 ++
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td
index d185caf55b8..32d3fb490ab 100644
--- a/include/clang/Driver/Options.td
+++ b/include/clang/Driver/Options.td
@@ -1138,12 +1138,12 @@ def fstack_protector_strong : Flag<["-"], "fstack-protector-strong">, Group<f_Gr
   HelpText<"Use a strong heuristic to apply stack protectors to functions">;
 def fstack_protector : Flag<["-"], "fstack-protector">, Group<f_Group>,
   HelpText<"Enable stack protectors for functions potentially vulnerable to stack smashing">;
-def fstandalone_debug : Flag<["-"], "fstandalone-debug">, Group<f_Group>,
+def fstandalone_debug : Flag<["-"], "fstandalone-debug">, Group<f_Group>, Flags<[CoreOption]>,
   HelpText<"Emit full debug info for all types used by the program">;
-def fno_standalone_debug : Flag<["-"], "fno-standalone-debug">, Group<f_Group>,
+def fno_standalone_debug : Flag<["-"], "fno-standalone-debug">, Group<f_Group>, Flags<[CoreOption]>,
   HelpText<"Limit debug information produced to reduce size of debug binary">;
-def flimit_debug_info : Flag<["-"], "flimit-debug-info">, Alias<fno_standalone_debug>;
-def fno_limit_debug_info : Flag<["-"], "fno-limit-debug-info">, Alias<fstandalone_debug>;
+def flimit_debug_info : Flag<["-"], "flimit-debug-info">, Flags<[CoreOption]>, Alias<fno_standalone_debug>;
+def fno_limit_debug_info : Flag<["-"], "fno-limit-debug-info">, Flags<[CoreOption]>, Alias<fstandalone_debug>;
 def fstrict_aliasing : Flag<["-"], "fstrict-aliasing">, Group<f_Group>,
   Flags<[DriverOption, CoreOption]>;
 def fstrict_enums : Flag<["-"], "fstrict-enums">, Group<f_Group>, Flags<[CC1Option]>,
diff --git a/test/Driver/cl-options.c b/test/Driver/cl-options.c
index 9b06963eb73..d4e9a5ef02e 100644
--- a/test/Driver/cl-options.c
+++ b/test/Driver/cl-options.c
@@ -518,6 +518,8 @@
 // RUN:     -resource-dir \
 // RUN:     -Wunused-variable \
 // RUN:     -fmacro-backtrace-limit=0 \
+// RUN:     -fstandalone-debug \
+// RUN:     -flimit-debug-info \
 // RUN:     -Werror /Zs -- %s 2>&1
 
 
-- 
GitLab