forked from OSchip/llvm-project
Prevent link warnings due to -Wframe-larger-than=
Although this is nominally a -W option, we actually handle it in the driver exactly as an f-group flag that's translated directly to -mllvm. That means f_Group (and unintuitively, not W_Group) has the semantics we want to make it behave like a standard warning flag: no automatic forwarding, no warning for link invocations and compile-only. Silences diagnostics like: [691/1545] Linking CXX executable bin/llvm-diff clang-3.5: warning: argument unused during compilation: '-Wframe-larger-than=2048' (Hopefully we can move towards handling these in the frontend but that'll require some infrastructure work.) llvm-svn: 212670
This commit is contained in:
parent
677539d0af
commit
e81b42fde9
|
@ -862,10 +862,11 @@ def Wlarge_by_value_copy_def : Flag<["-"], "Wlarge-by-value-copy">,
|
||||||
"in bytes than a given value">, Flags<[HelpHidden]>;
|
"in bytes than a given value">, Flags<[HelpHidden]>;
|
||||||
def Wlarge_by_value_copy_EQ : Joined<["-"], "Wlarge-by-value-copy=">, Flags<[CC1Option]>;
|
def Wlarge_by_value_copy_EQ : Joined<["-"], "Wlarge-by-value-copy=">, Flags<[CC1Option]>;
|
||||||
|
|
||||||
|
// These "special" warning flags are effectively processed as f_Group flags by the driver:
|
||||||
// Just silence warnings about -Wlarger-than for now.
|
// Just silence warnings about -Wlarger-than for now.
|
||||||
def Wlarger_than_EQ : Joined<["-"], "Wlarger-than=">, Group<clang_ignored_f_Group>;
|
def Wlarger_than_EQ : Joined<["-"], "Wlarger-than=">, Group<clang_ignored_f_Group>;
|
||||||
def Wlarger_than_ : Joined<["-"], "Wlarger-than-">, Alias<Wlarger_than_EQ>;
|
def Wlarger_than_ : Joined<["-"], "Wlarger-than-">, Alias<Wlarger_than_EQ>;
|
||||||
def Wframe_larger_than_EQ : Joined<["-"], "Wframe-larger-than=">, Flags<[DriverOption]>;
|
def Wframe_larger_than_EQ : Joined<["-"], "Wframe-larger-than=">, Group<f_Group>, Flags<[DriverOption]>;
|
||||||
|
|
||||||
def : Flag<["-"], "fterminated-vtables">, Alias<fapple_kext>;
|
def : Flag<["-"], "fterminated-vtables">, Alias<fapple_kext>;
|
||||||
def fthreadsafe_statics : Flag<["-"], "fthreadsafe-statics">, Group<f_Group>;
|
def fthreadsafe_statics : Flag<["-"], "fthreadsafe-statics">, Group<f_Group>;
|
||||||
|
|
|
@ -6,6 +6,10 @@
|
||||||
// * The driver passes the option through to the backend.
|
// * The driver passes the option through to the backend.
|
||||||
// * The frontend diagnostic handler 'demangles' and resolves the correct function definition.
|
// * The frontend diagnostic handler 'demangles' and resolves the correct function definition.
|
||||||
|
|
||||||
|
// Test that link invocations don't emit an "argument unused during compilation" diagnostic.
|
||||||
|
// RUN: touch %t.o
|
||||||
|
// RUN: %clang -Werror -Wframe-larger-than=0 %t.o -### 2>&1 | not grep ' error: '
|
||||||
|
|
||||||
// TODO: Support rich backend diagnostics for Objective-C methods.
|
// TODO: Support rich backend diagnostics for Objective-C methods.
|
||||||
|
|
||||||
// Backend diagnostics aren't suppressed in system headers because such results
|
// Backend diagnostics aren't suppressed in system headers because such results
|
||||||
|
|
Loading…
Reference in New Issue