Index: contrib/llvm-project/clang/include/clang/Driver/Options.td =================================================================== --- contrib/llvm-project/clang/include/clang/Driver/Options.td (revision 360257) +++ contrib/llvm-project/clang/include/clang/Driver/Options.td (working copy) @@ -819,7 +819,8 @@ Group; def : Flag<["-"], "frecord-gcc-switches">, Alias; def : Flag<["-"], "fno-record-gcc-switches">, Alias; -def fcommon : Flag<["-"], "fcommon">, Group; +def fcommon : Flag<["-"], "fcommon">, Group, + Flags<[CoreOption, CC1Option]>, HelpText<"Place uninitialized global variables in a common block">; def fcompile_resource_EQ : Joined<["-"], "fcompile-resource=">, Group; def fcomplete_member_pointers : Flag<["-"], "fcomplete-member-pointers">, Group, Flags<[CoreOption, CC1Option]>, Index: contrib/llvm-project/clang/lib/Driver/ToolChains/Clang.cpp =================================================================== --- contrib/llvm-project/clang/lib/Driver/ToolChains/Clang.cpp (revision 360257) +++ contrib/llvm-project/clang/lib/Driver/ToolChains/Clang.cpp (working copy) @@ -4989,10 +4989,8 @@ CmdArgs.push_back("-Qn"); // -fcommon is the default unless compiling kernel code or the target says so - bool NoCommonDefault = KernelOrKext || isNoCommonDefault(RawTriple); - if (!Args.hasFlag(options::OPT_fcommon, options::OPT_fno_common, - !NoCommonDefault)) - CmdArgs.push_back("-fno-common"); + if (Args.hasFlag(options::OPT_fcommon, options::OPT_fno_common, false)) + CmdArgs.push_back("-fcommon"); // -fsigned-bitfields is default, and clang doesn't yet support // -funsigned-bitfields. Index: contrib/llvm-project/clang/lib/Frontend/CompilerInvocation.cpp =================================================================== --- contrib/llvm-project/clang/lib/Frontend/CompilerInvocation.cpp (revision 360257) +++ contrib/llvm-project/clang/lib/Frontend/CompilerInvocation.cpp (working copy) @@ -770,7 +770,7 @@ Opts.DwarfDebugFlags = Args.getLastArgValue(OPT_dwarf_debug_flags); Opts.RecordCommandLine = Args.getLastArgValue(OPT_record_command_line); Opts.MergeAllConstants = Args.hasArg(OPT_fmerge_all_constants); - Opts.NoCommon = Args.hasArg(OPT_fno_common); + Opts.NoCommon = !Args.hasArg(OPT_fcommon); Opts.NoImplicitFloat = Args.hasArg(OPT_no_implicit_float); Opts.OptimizeSize = getOptimizationLevelSize(Args); Opts.SimplifyLibCalls = !(Args.hasArg(OPT_fno_builtin) ||