| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
reason this is limited to C++, and it's certainly not limited to temporaries.
llvm-svn: 120996
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
used in a constructor initializer list:
struct X {
X() : au_i1(123) {}
union {
int au_i1;
float au_f1;
};
};
clang will now deal with au_i1 explicitly as an IndirectFieldDecl.
llvm-svn: 120900
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
not actually frequently used, because ImpCastExprToType only creates a node
if the types differ. So explicitly create an ICE in the lvalue-to-rvalue
conversion code in DefaultFunctionArrayLvalueConversion() as well as several
other new places, and consistently deal with the consequences throughout the
compiler.
In addition, introduce a new cast kind for loading an ObjCProperty l-value,
and make sure we emit those nodes whenever an ObjCProperty l-value appears
that's not on the LHS of an assignment operator.
This breaks a couple of rewriter tests, which I've x-failed until future
development occurs on the rewriter.
Ted Kremenek kindly contributed the analyzer workarounds in this patch.
llvm-svn: 120890
|
|
|
|
| |
llvm-svn: 120086
|
|
|
|
|
|
| |
the class works. Reviewed by kremenek.
llvm-svn: 120080
|
|
|
|
|
|
|
|
|
|
|
| |
1. "no 'else' after 'return'" -- this is for conformance with the
coding standards.
2. move 'else' to the line of the previous '}' -- this is for consistency.
Reviewed by kremenek.
llvm-svn: 119983
|
|
|
|
| |
llvm-svn: 119960
|
|
|
|
|
|
|
|
|
| |
a ternary '?' expression,
it is possible for the confluence block to only have a single predecessor due to calls to 'noreturn'
functions. Fixes assertion failure reported in PR 8619.
llvm-svn: 119284
|
|
|
|
|
|
|
|
|
| |
Elidable CXXConstructExpr should inhibit calling destructor for temporary
that is copied, not the one created. This is because eliding copy constructor
means that the object that was to be copied will be constructed directly in
memory the copy would be constructed in.
llvm-svn: 119044
|
|
|
|
|
|
| |
CXXConstructExpr.
llvm-svn: 118991
|
|
|
|
| |
llvm-svn: 118165
|
|
|
|
|
|
|
|
|
| |
that are not handled properly:
1. For statement: const C& c = C(0) ?: C(1) destructors generated for condition will not differ from those generated for case without prolonged lifetime of temporary,
2. There will be no destructor for constant reference member bound to temporary at the exit from constructor.
llvm-svn: 118158
|
|
|
|
|
|
|
| |
and ImplicitCastExpr to propagate asLValue AddStmtChoice property.
But do not propagate AlwaysAdd property.
llvm-svn: 117909
|
|
|
|
|
|
| |
method inlining. Temporarily fail a test case.
llvm-svn: 117907
|
|
|
|
|
|
| |
statement.
llvm-svn: 117642
|
|
|
|
|
|
|
|
|
| |
containing a DoStmt, and the LHS doesn't create a new block, then we should
return RBlock. Otherwise we'll incorrectly return NULL.
Also relax an assertion in VisitWhileStmt(). Reset 'Block' when it is finished.
llvm-svn: 117436
|
|
|
|
|
|
| |
There's only one destructor call generated for each not empty array (at least for now this should be enough).
llvm-svn: 117252
|
|
|
|
|
|
| |
There's only one destructor call generated for each not empty array (at least for now this should be enough).
llvm-svn: 117251
|
|
|
|
|
|
|
|
| |
in code generated with the compiler,
- Fixed test cases for unreachable code warnings produced by Sema.
llvm-svn: 117220
|
|
|
|
|
|
| |
* Fix dump() to make it consistent with the test case.
llvm-svn: 115609
|
|
|
|
| |
llvm-svn: 115592
|
|
|
|
| |
llvm-svn: 115493
|
|
|
|
| |
llvm-svn: 115275
|
|
|
|
| |
llvm-svn: 115272
|
|
|
|
| |
llvm-svn: 115271
|
|
|
|
| |
llvm-svn: 115270
|
|
|
|
|
|
|
| |
scope. Now we only add C++ struct with non-trivial destructor variables to the
local scope.
llvm-svn: 115269
|
|
|
|
| |
llvm-svn: 115266
|
|
|
|
|
|
| |
and implicit scope in for statement.
llvm-svn: 115265
|
|
|
|
|
|
| |
scopes in switch statement.
llvm-svn: 115264
|
|
|
|
|
|
| |
scopes in while and do statements.
llvm-svn: 115262
|
|
|
|
|
|
| |
scopes in if statement.
llvm-svn: 115256
|
|
|
|
|
|
| |
CFGBuilder::addLocalScopeForVarDecl. Checked type does not have to represent C++ class.
llvm-svn: 115254
|
|
|
|
|
|
|
|
| |
- Adding LocalScope for CompoundStmt,
- Adding CFGAutomaticObjDtors for end of scope, return, goto, break, continue,
- Regression tests for above cases.
llvm-svn: 115252
|
|
|
|
| |
llvm-svn: 115237
|
|
|
|
|
|
| |
Fixed some misspells in comments.
llvm-svn: 115236
|
|
|
|
|
|
|
|
|
| |
- post-increament, distance and bool conversion methods to LocalScope::const_iterator,
- adding VarDecl to LocalScope.
Fixed some misspells in comments.
llvm-svn: 115227
|
|
|
|
|
|
|
|
|
|
| |
automatic storage added:
- LocalScope class with iterator used to pointing into it,
- fat doxygen comment for LocalScope indended usage,
- BlockScopePosPair class used for storing jump targets/sources (for: goto, break, continue), that replaces raw CFGBlock pointer used earlier for this purpose.
llvm-svn: 114790
|
|
|
|
|
|
|
|
| |
- definitions of interfaces for CFGInitializer and CFGAutomaticObjDtor,
- support for above classes to print_elem function (renamed print_stmt),
- support for VarDecls in StmtPrinterHelper.
llvm-svn: 114403
|
|
|
|
| |
llvm-svn: 114062
|
|
|
|
|
|
| |
and discussions with Ted and Jordy.
llvm-svn: 114056
|
|
|
|
|
|
|
|
| |
assertion failure
on code containing GNU statement expressions reported in PR 8141.
llvm-svn: 113953
|
|
|
|
|
|
| |
parameter. Patch by Marcin Świderski!
llvm-svn: 113898
|
|
|
|
| |
llvm-svn: 113826
|
|
|
|
|
|
|
|
| |
We decided that scope information doesn't belong in the CFG at all, since it is a lexical construct.
Patch by Marcin Świderski!
llvm-svn: 113798
|
|
|
|
|
|
| |
for checkers).
llvm-svn: 113572
|
|
|
|
| |
llvm-svn: 113466
|
|
|
|
|
|
|
|
|
| |
allows a client
to selectively walk successors/predecessors based on commonly used filters. For starters, add
a filter to ignore 'default:' cases for SwitchStmts when all enum values are covered by CaseStmts.
llvm-svn: 113449
|
|
|
|
| |
llvm-svn: 113149
|
|
|
|
| |
llvm-svn: 113148
|