| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- NonLoc::MakeVal() would use sizeof(unsigned) (literally) instead of consulting
ASTContext for the size (in bits) of 'int'. While it worked, it was a
conflation of concepts and using ASTContext.IntTy is 100% correct.
- RegionStore::getSizeInElements() no longer assumes that a VarRegion has the
type "ConstantArray", and handles the case when uses use ordinary variables
as if they were arrays.
- Fixed ElementRegion::getRValueType() to just return the rvalue type of its
"array region" in the case the array didn't have ArrayType.
- All of this fixes <rdar://problem/6541136>
llvm-svn: 63347
|
| |
|
|
|
|
| |
arguments to "escape" if they are passed to a function containing the terms "InsertValue", "SetValue", or "AddValue". This fixes <rdar://problem/6539791>.
llvm-svn: 63341
|
| |
|
|
|
|
| |
list that involves the GNU array-range designator extension
llvm-svn: 63327
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
represents an implicit value-initialization of a subobject of a
particular type. This replaces the (ab)use of CXXZeroValueInitExpr
within initializer lists for the "holes" that occur due to the use of
C99 designated initializers.
The new test case is currently XFAIL'd, because CodeGen's
ConstExprEmitter (in lib/CodeGen/CGExprConstant.cpp) needs to be
taught to value-initialize when it sees ImplicitValueInitExprs.
llvm-svn: 63317
|
| |
|
|
| |
llvm-svn: 63280
|
| |
|
|
| |
llvm-svn: 63262
|
| |
|
|
|
|
| |
Simplifies (somewhat) the actually checking of the initializer expression following the designators
llvm-svn: 63257
|
| |
|
|
|
|
|
|
|
|
|
|
| |
initializers.
- We now initialize unions properly when a member other than the
first is named by a designated initializer.
- We now provide proper semantic analysis and code generation for
GNU array-range designators *except* that side effects will occur
more than once. We warn about this.
llvm-svn: 63253
|
| |
|
|
|
|
|
| |
- Merged into single ComplexEvaluator, these share too much logic to
be worth splitting for float/int (IMHO). Will split on request.
llvm-svn: 63248
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The approach I've taken in this patch is relatively straightforward,
although the code itself is non-trivial. Essentially, as we process
an initializer list we build up a fully-explicit representation of the
initializer list, where each of the subobject initializations occurs
in order. Designators serve to "fill in" subobject initializations in
a non-linear way. The fully-explicit representation makes initializer
lists (both with and without designators) easy to grok for codegen and
later semantic analyses. We keep the syntactic form of the initializer
list linked into the AST for those clients interested in exactly what
the user wrote.
Known limitations:
- Designating a member of a union that isn't the first member may
result in bogus initialization (we warn about this)
- GNU array-range designators are not supported (we warn about this)
llvm-svn: 63242
|
| |
|
|
|
|
| |
"autorelease" message, and have the summary processing logic treat it as a no-op in GC mode. This change is motivated to encode more of the semantics in the summaries themselves for eventual better diagnostics.
llvm-svn: 63241
|
| |
|
|
| |
llvm-svn: 63238
|
| |
|
|
| |
llvm-svn: 63237
|
| |
|
|
|
|
|
| |
Fix a stupid mistake in UnwrapSimilarPointers that made any two member pointers compatible as long as the pointee was the same.
Make a few style corrections as suggested by Chris.
llvm-svn: 63215
|
| |
|
|
|
|
|
| |
rules are slightly different than in C, and now we handle both
dialects properly.
llvm-svn: 63211
|
| |
|
|
|
|
| |
not automatically garbage collected.
llvm-svn: 63187
|
| |
|
|
|
|
| |
testcase :)
llvm-svn: 63182
|
| |
|
|
| |
llvm-svn: 63160
|
| |
|
|
| |
llvm-svn: 63158
|
| |
|
|
| |
llvm-svn: 63150
|
| |
|
|
|
|
| |
same constraint info as the output constraint. Fixes PR3417
llvm-svn: 63127
|
| |
|
|
| |
llvm-svn: 63117
|
| |
|
|
|
|
|
|
| |
subscript expression was an ElementRegion we stacked another ElementRegion on top of that.
This fixes PR 3422.
llvm-svn: 63110
|
| |
|
|
|
|
| |
__extension__. This sort of construct shows up in the gcc source code.
llvm-svn: 63100
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
as reported to the user and as manipulated by #line. This is what __FILE__,
__INCLUDE_LEVEL__, diagnostics and other things should follow (but not
dependency generation!).
This patch also includes several cleanups along the way:
- SourceLocation now has a dump method, and several other places
that did similar things now use it.
- I cleaned up some code in AnalysisConsumer, but it should probably be
simplified further now that NamedDecl is better.
- TextDiagnosticPrinter is now simplified and cleaned up a bit.
This patch is a prerequisite for #line, but does not actually provide
any #line functionality.
llvm-svn: 63098
|
| |
|
|
| |
llvm-svn: 63094
|
| |
|
|
|
|
| |
builtins-x86.c.
llvm-svn: 63069
|
| |
|
|
| |
llvm-svn: 63055
|
| |
|
|
| |
llvm-svn: 63032
|
| |
|
|
| |
llvm-svn: 63003
|
| |
|
|
| |
llvm-svn: 63001
|
| |
|
|
|
|
| |
we just discard them.
llvm-svn: 62999
|
| |
|
|
| |
llvm-svn: 62971
|
| |
|
|
|
|
|
| |
__builtin___CFStringMakeConstantString. (We get into trouble in
GenerateStaticBlockVarDecl if the constant folder isn't accurate.)
llvm-svn: 62949
|
| |
|
|
|
|
| |
constant.
llvm-svn: 62948
|
| |
|
|
| |
llvm-svn: 62947
|
| |
|
|
| |
llvm-svn: 62946
|
| |
|
|
|
|
| |
pointed out by Doug.
llvm-svn: 62944
|
| |
|
|
|
|
|
| |
think this has any significant effects at the moment, but it could
matter if we start constant-folding statement expressions like gcc does.
llvm-svn: 62943
|
| |
|
|
|
|
| |
Note that there are still other issues in this area; see PR3396.
llvm-svn: 62942
|
| |
|
|
| |
llvm-svn: 62936
|
| |
|
|
|
|
| |
Add serialization support for ReferenceType.
llvm-svn: 62934
|
| |
|
|
|
|
| |
different than those for sizeof. Reject alignof(bitfield) like gcc does.
llvm-svn: 62928
|
| |
|
|
|
|
|
| |
mismatched semantics).
- Enforce this in APValue.
llvm-svn: 62924
|
| |
|
|
| |
llvm-svn: 62923
|
| |
|
|
| |
llvm-svn: 62922
|
| |
|
|
|
|
| |
ArrayRegion is a typedef and not (directly) a pointer.
llvm-svn: 62909
|
| |
|
|
|
|
| |
diagnostics the code paths for diagnostics involving paths or single locations are now unified. This patch also constifies many arguments/methods that are touched by this logic, leading to a nice overall code cleanup.
llvm-svn: 62903
|
| |
|
|
| |
llvm-svn: 62884
|
| |
|
|
|
|
| |
PR clang/3378
llvm-svn: 62876
|