freebsd-ports/devel/llvm-devel/files/clang-patch-fformat_extensions.diff
Brooks Davis 758bcb9a30 Update llvm-devel to a new snapshot.
Remove embedded compiler-rt build as that no longer works and create a
compiler-rt-devel port (currently supporting i386 and amd64, patches
welcome for other ARCHs).

Cause clang to ignore the -fformat-extensions argument.[1]

Submitted by:	Sender Ghost <lightside@gmx.com> [1]
2015-10-23 23:36:56 +00:00

45 lines
2.8 KiB
Diff

diff -ruN tools/clang/include/clang/Basic/LangOptions.def tools/clang/include/clang/Basic/LangOptions.def
--- tools/clang/include/clang/Basic/LangOptions.def 2015-08-18 08:10:39 UTC
+++ tools/clang/include/clang/Basic/LangOptions.def
@@ -114,6 +114,7 @@
LANGOPT(RTTIData , 1, 1, "emit run-time type information data")
LANGOPT(MSBitfields , 1, 0, "Microsoft-compatible structure layout")
LANGOPT(Freestanding, 1, 0, "freestanding implementation")
+LANGOPT(FormatExtensions , 1, 0, "FreeBSD format extensions")
LANGOPT(NoBuiltin , 1, 0, "disable builtin functions")
LANGOPT(NoMathBuiltin , 1, 0, "disable math builtin functions")
LANGOPT(GNUAsm , 1, 1, "GNU-style inline assembly")
diff -ruN tools/clang/include/clang/Driver/Options.td tools/clang/include/clang/Driver/Options.td
--- tools/clang/include/clang/Driver/Options.td 2015-08-18 08:10:39 UTC
+++ tools/clang/include/clang/Driver/Options.td
@@ -660,6 +660,8 @@
def ffreestanding : Flag<["-"], "ffreestanding">, Group<f_Group>, Flags<[CC1Option]>,
HelpText<"Assert that the compilation takes place in a freestanding environment">;
+def fformat_extensions: Flag<["-"], "fformat-extensions">, Group<f_Group>, Flags<[CC1Option]>,
+ HelpText<"Enable FreeBSD kernel specific format string extensions">;
def fgnu_keywords : Flag<["-"], "fgnu-keywords">, Group<f_Group>, Flags<[CC1Option]>,
HelpText<"Allow GNU-extension keywords regardless of language standard">;
def fgnu89_inline : Flag<["-"], "fgnu89-inline">, Group<f_Group>, Flags<[CC1Option]>,
diff -ruN tools/clang/lib/Driver/Tools.cpp tools/clang/lib/Driver/Tools.cpp
--- tools/clang/lib/Driver/Tools.cpp 2015-08-18 08:10:39 UTC
+++ tools/clang/lib/Driver/Tools.cpp
@@ -4072,6 +4072,7 @@
// Forward -f (flag) options which we can pass directly.
Args.AddLastArg(CmdArgs, options::OPT_femit_all_decls);
+ Args.AddLastArg(CmdArgs, options::OPT_fformat_extensions);
Args.AddLastArg(CmdArgs, options::OPT_fheinous_gnu_extensions);
Args.AddLastArg(CmdArgs, options::OPT_fstandalone_debug);
Args.AddLastArg(CmdArgs, options::OPT_fno_standalone_debug);
diff -ruN tools/clang/lib/Frontend/CompilerInvocation.cpp tools/clang/lib/Frontend/CompilerInvocation.cpp
--- tools/clang/lib/Frontend/CompilerInvocation.cpp 2015-08-18 08:10:39 UTC
+++ tools/clang/lib/Frontend/CompilerInvocation.cpp
@@ -1559,6 +1559,7 @@
Opts.ShortWChar = Args.hasFlag(OPT_fshort_wchar, OPT_fno_short_wchar, false);
Opts.ShortEnums = Args.hasArg(OPT_fshort_enums);
Opts.Freestanding = Args.hasArg(OPT_ffreestanding);
+ Opts.FormatExtensions = Args.hasArg(OPT_fformat_extensions);
Opts.NoBuiltin = Args.hasArg(OPT_fno_builtin) || Opts.Freestanding;
Opts.NoMathBuiltin = Args.hasArg(OPT_fno_math_builtin);
Opts.AssumeSaneOperatorNew = !Args.hasArg(OPT_fno_assume_sane_operator_new);