| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
for floats, and also check if 'nil' is declared
when suggesting it for initializing ObjC pointers.
llvm-svn: 124004
|
|
|
|
|
|
|
| |
to suggest initializations for pointer and
ObjC pointer types.
llvm-svn: 123995
|
|
|
|
|
|
|
|
| |
to issue the warning at an uninitialized variable's
declaration, but to issue notes at possible
uninitialized uses (which could be multiple).
llvm-svn: 123994
|
|
|
|
|
|
|
|
| |
references by monitoring whether an access to
a variable is solely to compute it's lvalue or
to do an lvalue-to-rvalue conversion (i.e., a load).
llvm-svn: 123777
|
|
|
|
| |
llvm-svn: 123667
|
|
|
|
|
|
| |
base or member initializers as noreturn.
llvm-svn: 123603
|
|
|
|
|
|
| |
-Wuninitialized based on CFG dataflow analysis. WIP.
llvm-svn: 123512
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
temporaries with no-return destructors. The CFG now properly supports
temporaries and implicit destructors which both makes this kludge no
longer work, and conveniently removes the need for it.
Turn on CFG handling of implicit destructors and initializers. Several
ad-hoc benchmarks don't indicate any measurable performance impact from
growing the CFG, and it fixes real correctness problems with warnings.
As a result of turning on these CFG elements, we started to tickle an
inf-loop in the unreachable code logic used for warnings. The fix is
trivial.
llvm-svn: 123056
|
|
|
|
|
|
|
|
|
|
|
|
| |
Diagnostic pragmas are broken because we don't keep track of the diagnostic state changes and we only check the current/latest state.
Problems manifest if a diagnostic is emitted for a source line that has different diagnostic state than the current state; this can affect
a lot of places, like C++ inline methods, template instantiations, the lexer, etc.
Fix the issue by having the Diagnostic object keep track of the source location of the pragmas so that it is able to know what is the diagnostic state at any given source location.
Fixes rdar://8365684.
llvm-svn: 121873
|
|
|
|
|
|
| |
reason this is limited to C++, and it's certainly not limited to temporaries.
llvm-svn: 120996
|
|
|
|
|
|
| |
and discussions with Ted and Jordy.
llvm-svn: 114056
|
|
|
|
|
|
|
|
| |
by a switch statement explicitly covering
all the cases for an enum value.
llvm-svn: 113450
|
|
|
|
|
|
|
| |
Clients of Sema don't need to know (for example) the list of diagnostics we
support.
llvm-svn: 112093
|
|
|
|
| |
llvm-svn: 112032
|
|
|
|
| |
llvm-svn: 112027
|
|
|
|
| |
llvm-svn: 111904
|
|
|
|
| |
llvm-svn: 110945
|
|
|
|
| |
llvm-svn: 109440
|
|
|
|
| |
llvm-svn: 108694
|
|
|
|
|
|
| |
a temporary with a noreturn destructor has been created. Fixes PR6884 for now.
llvm-svn: 104000
|
|
|
|
|
|
| |
compute a CFG for a function.
llvm-svn: 103905
|
|
|
|
|
|
| |
fatal error has occurred.
llvm-svn: 102778
|
|
|
|
|
|
|
|
|
|
|
| |
if *none* of the successors of the call expression is the exit block.
This matters when a call of bool type is the condition of (say) a while
loop in a function with no statements after the loop. This *can* happen
in C, but it's much more common in C++ because of overloaded operators.
Suppresses some substantial number of spurious -Wmissing-noreturn warnings.
llvm-svn: 102696
|
|
|
|
|
|
|
| |
do *not* suggest that the function could be attribute 'noreturn';
overridden functions may end up returning.
llvm-svn: 101572
|
|
|
|
|
|
|
|
|
|
| |
inline' functions
unless they are used. I discussed this with Daniel Dunbar, and we agreed that this
provides an inconsistent warnings experience for the user and that there were
genuine cases where we wouldn't want to do this optimization.
llvm-svn: 100800
|
|
|
|
| |
llvm-svn: 100750
|
|
|
|
| |
llvm-svn: 100730
|
|
|
|
|
|
|
|
| |
This introduces FunctionType::ExtInfo to hold the calling convention and the
noreturn attribute. The next patch will extend it to include the regparm
attribute and fix the bug.
llvm-svn: 99920
|
|
|
|
|
|
|
| |
This patch moves some methods from QualType to Type and changes the users to
use -> instead of .
llvm-svn: 99805
|
|
|
|
|
|
| |
encounter a definition.
llvm-svn: 99243
|
|
|
|
|
|
|
| |
are called (transitively) by regular functions/blocks within a
translation untion.
llvm-svn: 99233
|
|
|
|
|
|
| |
declaration is in a system header.
llvm-svn: 99087
|
|
AnalysisBasedWarnings.
This object controls when the warnings are executed, allowing the client code
in Sema to selectively disable warnings as needed.
Centralizing the logic for analysis-based warnings allows us to optimize
when and how they are run.
Along the way, remove the redundant logic for the 'check fall-through' warning
for blocks; now the same logic is used for both blocks and functions.
llvm-svn: 99085
|