Nick Lewycky
32275b9739
Fix test for unrelated changes.
...
llvm-svn: 145915
2011-12-06 03:46:28 +00:00
Nick Lewycky
f4d3f7a0b9
Stack realignment is a tristate. Add -mno-stackrealign to turn off all stack
...
realignment, even with locals with alignment exceeding the ABI guarantee.
llvm-svn: 145909
2011-12-06 03:33:03 +00:00
Eli Friedman
b8e45b28da
Minor comment update.
...
llvm-svn: 145905
2011-12-06 03:08:26 +00:00
John McCall
e5e1b88bbc
Fix an extremely stupid bug causing terrible miscompilations
...
of &= on pseudo-objects.
llvm-svn: 145904
2011-12-06 02:56:18 +00:00
Douglas Gregor
a89c5ac4a6
Implement inferred submodules support, which (when requested)
...
implicitly generates submodules corresponding to the headers that fall
within a module.
llvm-svn: 145887
2011-12-06 01:10:29 +00:00
Eli Friedman
7c6515a653
Make sure we perform lvalue-to-rvalue conversions for enum initializers. PR11484.
...
llvm-svn: 145874
2011-12-06 00:10:34 +00:00
Fariborz Jahanian
56f326e7f2
objc: put out more coherent warning when method definition
...
attributes don't match its declaration. // rdar://10529259.
llvm-svn: 145872
2011-12-06 00:02:41 +00:00
Joerg Sonnenberger
db66ed0e4c
Add -mstack-alignment=X and fix -mstackrealign handling now that the
...
backend options are gone.
llvm-svn: 145868
2011-12-05 23:05:23 +00:00
Fariborz Jahanian
7b1866930e
More refactoring of objc rewriter.
...
llvm-svn: 145867
2011-12-05 22:59:54 +00:00
Douglas Gregor
734410916a
Parse inferred submodules in module maps, track their contents in
...
Module, and (de-)serialize this information. Semantics of inferred
submodules to follow.
llvm-svn: 145864
2011-12-05 22:27:44 +00:00
Eli Friedman
6d694a38fd
Make EmitAggregateCopy take an alignment argument. Make EmitFinalDestCopy pass in the correct alignment when known.
...
The test includes a FIXME for a related case involving calls; it's a bit more complicated to fix because the RValue class doesn't keep track of alignment.
<rdar://problem/10463337>
llvm-svn: 145862
2011-12-05 22:23:28 +00:00
Argyrios Kyrtzidis
1a10f29b2f
[libclang] When indexing a field in a C++ class, return an entity
...
of kind CXIdxEntity_CXXInstanceVariable. rdar://10522503.
llvm-svn: 145859
2011-12-05 22:05:28 +00:00
Anna Zaks
02a1fc1da6
[analyzer] Rely on LLVM Dominators in Clang dominator computation.
...
(Previously, Clang used it's implementation of dominators.)
The patch is contributed by Guoping Long!
llvm-svn: 145858
2011-12-05 21:33:11 +00:00
Anna Zaks
5c10794254
[analyzer] Mark ConstraintManager::canReasonAbout as protected.
...
llvm-svn: 145857
2011-12-05 21:33:06 +00:00
Anna Zaks
2d2999821b
[analyzer] Simplify the condition.
...
This is a fixup for r145832.
The extra clauses do not matter after we remove the dependency on canReasonAbout(InitVal) in r145832.
llvm-svn: 145856
2011-12-05 21:33:01 +00:00
Anna Zaks
d624f60a89
[analyzer] Simplify the expected-warning statement.
...
llvm-svn: 145855
2011-12-05 21:32:58 +00:00
Lang Hames
df5c121f8e
Add a warning for implicit conversion from function literals (and static
...
methods) to bool. E.g.
void foo() {}
if (f) { ... // <- Warns here.
}
Only applies to non-weak functions, and does not apply if the function address
is taken explicitly with the addr-of operator.
llvm-svn: 145849
2011-12-05 20:49:50 +00:00
Lang Hames
d42bb47782
Make isWeakDecl available as a method on ValueDecl.
...
llvm-svn: 145845
2011-12-05 20:16:26 +00:00
Fariborz Jahanian
8efef60f69
More objc rewriter refactoring.
...
llvm-svn: 145841
2011-12-05 19:50:04 +00:00
Anna Zaks
004695b56e
[analyzer] Add a missing taint tester warning.
...
llvm-svn: 145834
2011-12-05 18:58:33 +00:00
Anna Zaks
d066f79c80
[analyzer] Unify SymbolVal and SymExprVal under a single SymbolVal
...
class.
We are going into the direction of handling SymbolData and other SymExpr
uniformly, so it makes less sense to keep two different SVal classes.
For example, the checkers would have to take an extra step to reason
about each type separately.
The classes have the same members, we were just using the SVal kind
field for easy differentiation in 3 switch statements. The switch
statements look more ugly now, but we can make the code more readable in
other ways, for example, moving some code into separate functions.
llvm-svn: 145833
2011-12-05 18:58:30 +00:00
Anna Zaks
a636fbe73f
[analyzer] Remove all uses of ConstraintManager::canResonAbout() from
...
ExprEngine.
Teach SimpleConstraintManager::assumeSymRel() to propagate constraints
to symbolic expressions.
+ One extra warning (real bug) is now generated due to enhanced
assumeSymRel().
llvm-svn: 145832
2011-12-05 18:58:25 +00:00
Anna Zaks
51090d5f7f
[analyzer] First step toward removing
...
ConstraintManager::canReasonAbout() from the ExprEngine.
ExprEngine should not care if the constraint solver can reason about
something or not. The solver should be able to handle all the SymExprs.
To do this, the solver should be able to keep track of not only the
SymbolData but of all SymExprs. This is why we change SymbolRef to be an
alias of SymExpr*. When encountering an expression it cannot simplify,
the solver should just add the constraints to it.
llvm-svn: 145831
2011-12-05 18:58:19 +00:00
Anna Zaks
820e87e928
[analyzer] Minor improvements on RangeConstraint pretty-printing.
...
llvm-svn: 145830
2011-12-05 18:58:14 +00:00
Anna Zaks
223516523e
[analyzer] Change RetainCountChecker to use symbol dump method instead
...
of relying on SymbolID.
This way any expression can be printed (not only SymbolData).
llvm-svn: 145829
2011-12-05 18:58:11 +00:00
Anna Zaks
f784d08d25
[analyzer] Add ability to do a simple ProgramState dump() without
...
requiring CFG.
Adding more ugly code; the evnvironment printing should be moved to
envirnment at some point.
llvm-svn: 145828
2011-12-05 18:58:08 +00:00
Anna Zaks
1c215d0a11
[analyzer] Add a debug checker to test for tainted data.
...
llvm-svn: 145827
2011-12-05 18:58:01 +00:00
Fariborz Jahanian
68e628e51f
Some early refactoring of objective-c rewriter.
...
llvm-svn: 145824
2011-12-05 18:43:13 +00:00
Kostya Serebryany
4dd9e4765d
[asan] don't require libstdc++ for asan on linux. Mac fix will go separately
...
llvm-svn: 145823
2011-12-05 18:32:37 +00:00
Chris Lattner
1e13e8ac97
we got badgered into supporting multi-alternative constraints.
...
llvm-svn: 145822
2011-12-05 18:29:03 +00:00
Douglas Gregor
d8bd7537ec
Inferred framework modules automatically export anything they import
...
(i.e., 'export *'), to better match the semantics of headers.
llvm-svn: 145813
2011-12-05 17:40:25 +00:00
Douglas Gregor
8c7c83522b
Fix printing of wildcard exports.
...
llvm-svn: 145812
2011-12-05 17:34:59 +00:00
Douglas Gregor
f5eedd05db
Implement support for wildcard exports in modules, allowing a module
...
to re-export anything that it imports. This opt-in feature makes a
module behave more like a header, because it can be used to re-export
the transitive closure of a (sub)module's dependencies.
llvm-svn: 145811
2011-12-05 17:28:06 +00:00
Douglas Gregor
603825163f
Actually add a useful bit to the comment pre-FIXME
...
llvm-svn: 145809
2011-12-05 16:35:23 +00:00
Douglas Gregor
0093b3c7bf
When writing a module file, keep track of the set of (sub)modules that
...
it imports, establishing dependencies at the (sub)module
granularity. This is not a user-visible change (yet).
llvm-svn: 145808
2011-12-05 16:33:54 +00:00
NAKAMURA Takumi
770142e49f
include/clang*/Makefile: Tweak installation to work with CLANG_SRCDIR.
...
llvm-svn: 145800
2011-12-05 06:13:20 +00:00
David Blaikie
15a430a368
Support decltype in nested-name-specifiers.
...
llvm-svn: 145785
2011-12-04 05:04:18 +00:00
Fariborz Jahanian
5c12ca8a25
Move block return type inference diagnostic to a common place where
...
Function or array lvalue conversions happens.
llvm-svn: 145782
2011-12-03 23:53:56 +00:00
Douglas Gregor
fb9968d6f1
Fix mangling substitutions for address-space-qualified class
...
types. Patch from Dmitri Rubinstein!
llvm-svn: 145776
2011-12-03 18:24:43 +00:00
Douglas Gregor
dca70af22f
Implement support for the __is_final type trait, to determine whether
...
a class is marked 'final', from Alberto Ganesh Barbati! Fixes
PR11462.
llvm-svn: 145775
2011-12-03 18:14:24 +00:00
Fariborz Jahanian
dd5eb9df0c
If block literal return type is not specified, return type of the block is
...
inferred from return types. All the return statements have to agree about the type.
// rdar://10466373
llvm-svn: 145774
2011-12-03 17:47:53 +00:00
Francois Pichet
9c39113fdb
In Microsoft mode, don't perform typo correction in a template member function dependent context because it interferes with the "lookup into dependent bases of class templates" feature.
...
Basically typo correction will try to offer a correction instead of looking into type dependent base classes.
I found this problem while parsing Microsoft ATL code with clang.
llvm-svn: 145772
2011-12-03 15:55:29 +00:00
Sebastian Redl
df88864273
Implement overload resolution for reference-typed parameters supplied with initializer lists.
...
llvm-svn: 145769
2011-12-03 14:54:30 +00:00
Eli Friedman
a0544d6fdf
Switch LValue so that it exposes alignment in CharUnits. (No functional change.)
...
llvm-svn: 145753
2011-12-03 04:14:32 +00:00
Argyrios Kyrtzidis
b2b0795c9f
[PCH] Make sure that the SourceExpr of a OpaqueValueExpr is always initialized
...
when deserialized, fixing random crashes in libclang.
Also simplifies how OpaqueValueExprs are [de]serialized.
The reader/writer automatically retains pointer equality of sub-statements (when a
statement node is referenced in multiple nodes), so no need to manually handle it.
llvm-svn: 145752
2011-12-03 03:49:52 +00:00
Argyrios Kyrtzidis
0042b6f925
[libclang] Fix infinite loop when doing visitation of an OpaqueValueExpr.
...
llvm-svn: 145751
2011-12-03 03:49:47 +00:00
Argyrios Kyrtzidis
0fd8fae0a6
[libclang] Allow indexing/get-cursor/etc. for the exception variable in a C++ catch.
...
llvm-svn: 145750
2011-12-03 03:49:44 +00:00
Eli Friedman
2869b5afe3
Add a utility to get a RValue for a given LValue for an aggregate; switch a few places over to it.
...
llvm-svn: 145747
2011-12-03 03:08:40 +00:00
Eli Friedman
38cd36dbdb
Switch the Alignment argument on AggValueSlot over to CharUnits, per John's review comment.
...
llvm-svn: 145741
2011-12-03 02:13:40 +00:00
Douglas Gregor
959bb06e96
Module files representing actual modules don't need to know the set of modules they import, since that information isn't actually used. Drop it from the AST file
...
llvm-svn: 145738
2011-12-03 01:15:29 +00:00