Anders Carlsson
7fa434c2b8
Handle converting member pointers to bool.
...
llvm-svn: 89692
2009-11-23 20:04:44 +00:00
Fariborz Jahanian
3f21c159dc
Fix a recent regression probably caused by addition of altivec-style
...
type-casts in the parser.
llvm-svn: 89691
2009-11-23 19:51:43 +00:00
Ted Kremenek
b43737387b
Provide out-of-line definition for destructor of Checker.
...
llvm-svn: 89688
2009-11-23 18:53:03 +00:00
Ted Kremenek
02d6aca867
Tweak UndefBranchChecker to register the most nested "undefined" expression with bugreporter::registerTrackNullOrUndefValue instead of the condition itself.
...
llvm-svn: 89682
2009-11-23 18:12:03 +00:00
Fariborz Jahanian
0afc555196
Make 'SEL' pointer to a builtin type and not an
...
objective-c pointer type. This was a serious mishap and
luckily, Ted's test caught that (and patch fixes the test case).
llvm-svn: 89680
2009-11-23 18:04:25 +00:00
Ted Kremenek
d4dca6fde6
Cleanup title/description of "undefined branch" BugType and add some test cases for this check.
...
llvm-svn: 89679
2009-11-23 17:58:48 +00:00
Anders Carlsson
8c793172c2
Handle base-to-derived casts. Will land test case shortly.
...
llvm-svn: 89678
2009-11-23 17:57:54 +00:00
John Thompson
d976d3e552
Put back hard-coded paths for win32 until I figure out what happened to failed tests.
...
llvm-svn: 89677
2009-11-23 17:49:27 +00:00
Sebastian Redl
22e2e5c423
Intercept sizeof and alignof references before they get into ASTContext methods. This fixes a crash when writing sizeof(Incomplete&), and lets ASTContext's methods do the right thing for CodeGen, which fixes PR5590.
...
llvm-svn: 89668
2009-11-23 17:18:46 +00:00
Rafael Espindola
962e518da2
Reorder the header search a bit so that it matches gcc exactly:
...
*) the ../backward dir is the last in libstdc++ to be searched
*) If compiling c++, the c++ headers are searched first
llvm-svn: 89661
2009-11-23 16:31:19 +00:00
Sebastian Redl
a6602e9e2a
Let using directives refer to namespace aliases. Fixes PR5479.
...
llvm-svn: 89657
2009-11-23 15:34:23 +00:00
Douglas Gregor
378e1923b6
Require a class type to be complete before probing its conversion
...
functions for a switch condition's conversion to integral or
enumeration type.
llvm-svn: 89656
2009-11-23 13:53:21 +00:00
Douglas Gregor
d0c22e0d10
Implement conversion from a switch condition with class type to an
...
integral or enumeration type (vi user-defined conversions). Fixes PR5518.
llvm-svn: 89655
2009-11-23 13:46:08 +00:00
Douglas Gregor
bd866c2985
Canonical template arguments that are template template parameters by
...
their template parameter depth and position, so that we can match
redeclarations appropriately. Fixes PR5527 and PR5528.
llvm-svn: 89654
2009-11-23 12:52:47 +00:00
Douglas Gregor
601f4f0b07
Improve type-checking of templates by distinguishing between members
...
of the current instantiation and members of an unknown specialization
when type-checking a qualified-if expression.
llvm-svn: 89653
2009-11-23 12:39:54 +00:00
Douglas Gregor
27381f3d93
Do not mark declarations as used when performing overload resolution. Fixes PR5541
...
llvm-svn: 89652
2009-11-23 12:27:39 +00:00
Douglas Gregor
65911498ef
Tolerate extraneous "template<>" headers better, downgrading the
...
complaint to a warning and providing a helpful node in the case where
the "template<>" header is redundant because the corresponding
template-id refers to an explicit specialization. C++0x might still
change this behavior, and existing practice is all over the place on
the number of "template<>" headers actually needed.
llvm-svn: 89651
2009-11-23 12:11:45 +00:00
Douglas Gregor
1c3feb5b25
Fix CMake build
...
llvm-svn: 89650
2009-11-23 12:03:50 +00:00
Douglas Gregor
ed6c744091
Centralize and complete the computation of value- and type-dependence for DeclRefExprs
...
llvm-svn: 89649
2009-11-23 11:41:28 +00:00
Zhongxing Xu
5f76620b53
UndefBranchChecker: more bug reporter helper information emit.
...
llvm-svn: 89643
2009-11-23 03:29:59 +00:00
Zhongxing Xu
56dd5f0f70
Initial refactor of UndefBranchChecker. We still use GRBranchNodeBuilder
...
in the checker directly. But I don't have a better approach for now.
llvm-svn: 89640
2009-11-23 03:20:54 +00:00
John McCall
6b51f28e82
Encapsulate "an array of TemplateArgumentLocs and two angle bracket locations" into
...
a new class. Use it pervasively throughout Sema.
My fingers hurt.
llvm-svn: 89638
2009-11-23 01:53:49 +00:00
Daniel Dunbar
785406bd19
Teach CodeGenFunction::EmitDecl to ignore Using and UsingShadow decls.
...
llvm-svn: 89633
2009-11-23 00:07:06 +00:00
Daniel Dunbar
e1cd0152a9
x86_64, PR5582: Layout bases for C++ records.
...
- Ideally we would have an single iteration interface for this, but this works
for now.
llvm-svn: 89632
2009-11-22 23:01:23 +00:00
Daniel Dunbar
180f1fe4ce
Recognize .hpp as a C++ header.
...
llvm-svn: 89630
2009-11-22 22:08:27 +00:00
Daniel Dunbar
f5835ea2e7
Add clang -cc1 parsing of analyzer options.
...
llvm-svn: 89629
2009-11-22 22:08:20 +00:00
John McCall
dc7b6079eb
Fix LookupResult's sanity-check to handle shadow decls.
...
llvm-svn: 89624
2009-11-22 20:57:36 +00:00
Ted Kremenek
12b64959ce
Change CheckDeadStores to use Expr::isNullPointerConstant, which will correctly determine whether an expression is a null pointer constant.
...
Patch by Kovarththanan Rajaratnam!
llvm-svn: 89621
2009-11-22 20:26:21 +00:00
Anders Carlsson
5838108317
Use EmitStoreOfScalar when copying the scalar to the space allocated by 'new'.
...
llvm-svn: 89613
2009-11-22 19:25:33 +00:00
Anders Carlsson
ba958400a2
When laying out bitfields, make sure that the data size is always aligned to a byte. This fixes PR5580.
...
llvm-svn: 89611
2009-11-22 19:13:51 +00:00
Anders Carlsson
072094407d
Move bit-field layout out into a separate function. No functionality change.
...
llvm-svn: 89604
2009-11-22 17:37:31 +00:00
Ken Dyck
f540ae5ab3
Define SIG_ATOMIC_MIN and SIG_ATOMIC_MAX in terms of __SIG_ATOMIC_WIDTH__.
...
llvm-svn: 89598
2009-11-22 15:47:12 +00:00
Ken Dyck
adc8511bc8
Define __SIG_ATOMIC_WIDTH__ for use in stdint.h.
...
llvm-svn: 89597
2009-11-22 15:41:04 +00:00
Zhongxing Xu
014af28ce3
Undefined compound assignment result is checked in UndefinedAssignmentChecker. So this check is redundant.
...
llvm-svn: 89592
2009-11-22 13:36:20 +00:00
Zhongxing Xu
39638e133a
Remove invalid comments. The result is undefined only when operands are undefined.
...
llvm-svn: 89591
2009-11-22 13:30:10 +00:00
Zhongxing Xu
7f83e97b00
Save and restore the HasGen flag in MallocChecker.
...
llvm-svn: 89590
2009-11-22 13:22:34 +00:00
Benjamin Kramer
df58afae56
Don't include a dead header.
...
llvm-svn: 89587
2009-11-22 12:51:08 +00:00
Zhongxing Xu
f0b7fc8890
Remove UndefinedAssignmentChecker's header.
...
llvm-svn: 89585
2009-11-22 12:29:52 +00:00
John McCall
a9ee325d71
If a C++ qualified id is followed by a postfix suffix, it is never the direct
...
operand of an addressof operator, and so we should not treat it as an abstract
member-pointer expression and therefore suppress the implicit member access.
This is really a well-formedness constraint on expressions: a DeclRefExpr of
a FieldDecl or a non-static CXXMethodDecl (or template thereof, or unresolved
collection thereof) should not be allowed in an arbitrary location in the AST.
Arguably it shouldn't be allowed anywhere and we should have a different expr
node type for this. But unfortunately we don't have a good way of enforcing
this kind of constraint right now.
llvm-svn: 89578
2009-11-22 02:49:43 +00:00
John McCall
b53bbd42c8
Reorganize the intermediate BuildDeclarationNameExpr routines again.
...
llvm-svn: 89575
2009-11-22 01:44:31 +00:00
John McCall
283b901cf3
Consider a FunctionTemplate to be an overload all on its lonesome. Track
...
this information through lookup rather than rederiving it.
llvm-svn: 89570
2009-11-22 00:44:51 +00:00
Anders Carlsson
e18e29eeb9
Support emitting aggregate class initializers. Fixes PR5581.
...
llvm-svn: 89569
2009-11-21 23:56:04 +00:00
Fariborz Jahanian
252ba5fb6f
This patch implements objective-c's 'SEL' type as a built-in
...
type and fixes a long-standing code gen. crash reported in
at least two PRs and a radar. (radar 7405040 and pr5025).
There are couple of remaining issues that I would like for
Ted. and Doug to look at:
Ted, please look at failure in Analysis/MissingDealloc.m.
I have temporarily added an expected-warning to make the
test pass. This tests has a declaration of 'SEL' type which
may not co-exist with the new changes.
Doug, please look at a FIXME in PCHWriter.cpp/PCHReader.cpp.
I think the changes which I have ifdef'ed out are correct. They
need be considered for in a few Indexer/PCH test cases.
llvm-svn: 89561
2009-11-21 19:53:08 +00:00
Ted Kremenek
d354278b51
Make FixedAddressChecker and experimental check; it currently produces a ton of false positives when analyzing some projects (e.g., Wine).
...
llvm-svn: 89560
2009-11-21 17:55:24 +00:00
John McCall
4b1f16e6f8
Overload resolution doesn't decide whether to do ADL or not anymore; stopping
...
threading that state.
llvm-svn: 89557
2009-11-21 09:38:42 +00:00
Daniel Dunbar
88ad4c5d02
Mangler: Sketch mangling for TemplateArgument::Declaration kind.
...
- Several important FIXMEs related to whether arguments are expressions or external names, and the mangling of extern "C" names (c.f., PR5522).
llvm-svn: 89556
2009-11-21 09:17:15 +00:00
Daniel Dunbar
e949e6cced
Mangler: Lift shouldMangleDeclName predicate out of CXXNameMangler::mangle.
...
- Sometimes we have to mangle things we wouldn't normally (e.g., because they appear in a template expression).
- This also tidies up the predicate to be more obvious what is getting mangled.
llvm-svn: 89555
2009-11-21 09:14:52 +00:00
Daniel Dunbar
161ade4455
Mangler: Strengthen invariants, MangleContext::mangleName should only be called on var or function decls.
...
llvm-svn: 89554
2009-11-21 09:14:44 +00:00
Daniel Dunbar
8483d211bd
Mangler: Inline a bunch of functions into their sole caller, not that I don't love typing for typings sake, but...
...
llvm-svn: 89553
2009-11-21 09:12:13 +00:00
Daniel Dunbar
671f45e701
DeclPrinter: Indent access specifiers.
...
llvm-svn: 89552
2009-11-21 09:12:06 +00:00