]>
granicus.if.org Git - clang/log
Douglas Gregor [Tue, 24 Nov 2009 21:15:44 +0000 (21:15 +0000)]
Clean up the AST for while loops and fix several problems with
cleanups for while loops:
1) Make sure that we destroy the condition variable of a while statement each time through the loop for, e.g.,
while (shared_ptr<WorkInt> p = getWorkItem()) {
// ...
}
2) Make sure that we always enter a new cleanup scope for the body of the while loop, even when there is no compound expression, e.g.,
while (blah)
RAIIObject raii(blah+1);
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89800
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 24 Nov 2009 21:08:10 +0000 (21:08 +0000)]
Handle references correctly when synthesizing copy constructors.
With this change, the clang-on-clang test result is now
Expected Passes : 224
Unexpected Failures: 37
Which means that we can compile over 80% of clang with clang! :)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89799
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Tue, 24 Nov 2009 20:33:45 +0000 (20:33 +0000)]
Fix some major problems dealing with dependently-qualified names in implicit
member-reference contexts. Fixes some clang-on-clang asserts.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89796
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 24 Nov 2009 19:37:10 +0000 (19:37 +0000)]
Fix the test case failed in buildbot.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89791
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 24 Nov 2009 19:27:49 +0000 (19:27 +0000)]
More cleanup of argument call collection.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89789
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Tue, 24 Nov 2009 19:00:30 +0000 (19:00 +0000)]
Rip out TemplateIdRefExpr and make UnresolvedLookupExpr and
DependentScopeDeclRefExpr support storing templateids. Unite the common
code paths between ActOnDeclarationNameExpr and ActOnTemplateIdExpr.
This gets us to a point where we don't need to store function templates in
the AST using TemplateNames, which is critical to ripping out OverloadedFunction.
Also resolves a few FIXMEs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89785
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Tue, 24 Nov 2009 18:44:29 +0000 (18:44 +0000)]
DeclarationName::getIdentifier should take a const IdentifierInfo, since the
constructor does anyway.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89784
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 24 Nov 2009 18:43:52 +0000 (18:43 +0000)]
Handle cases where we're constructing an array of objects and the constructor has default arguments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89783
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Tue, 24 Nov 2009 18:42:40 +0000 (18:42 +0000)]
Helper function for turning a TemplateName into a DeclarationName.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89782
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 24 Nov 2009 18:29:37 +0000 (18:29 +0000)]
Refactor collection of call arguments in common code.
Add support for variadic collection functions. More to do
here.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89781
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 24 Nov 2009 17:24:21 +0000 (17:24 +0000)]
GNUNullExpr is a valid sentinel even though it isn't of pointer type.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89778
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Tue, 24 Nov 2009 17:14:34 +0000 (17:14 +0000)]
Make sure redeclaration chains are properly linked, even through invalid decls. This fixes PR5415.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89777
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 24 Nov 2009 17:07:59 +0000 (17:07 +0000)]
Explicitly store the condition variable within switch statements, and
make sure that this variable is destroyed when we exit the switch
statement.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89776
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 24 Nov 2009 16:57:33 +0000 (16:57 +0000)]
We always need to emit the base expression of a member expression, even when the member decl refers to an enum. Thanks to Eli for pointing this out!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89775
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 24 Nov 2009 16:52:50 +0000 (16:52 +0000)]
Fix a crash when "instantiating" VarDecls that are neither type nor value dependent.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89774
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 24 Nov 2009 16:43:22 +0000 (16:43 +0000)]
Introduce cleanup scopes for "if" statements in two places:
- Outside the "if", to ensure that we destroy the condition variable
at the end of the "if" statement rather than at the end of the
block containing the "if" statement.
- Inside the "then" and "else" branches, so that we emit then- or
else-local cleanups at the end of the corresponding block when the
block is not a compound statement.
To make adding these new cleanup scopes easier (and since
switch/do/while will all need the same treatment), added the
CleanupScope RAII object to introduce a new cleanup scope and make
sure it gets cleaned up.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89773
91177308 -0d34-0410-b5e6-
96231b3b80d8
Kovarththanan Rajaratnam [Tue, 24 Nov 2009 16:40:46 +0000 (16:40 +0000)]
Remove empty wpa directory. It was moved to examples/wpa in r88825
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89772
91177308 -0d34-0410-b5e6-
96231b3b80d8
Kovarththanan Rajaratnam [Tue, 24 Nov 2009 16:32:20 +0000 (16:32 +0000)]
Sort CMakeLists.txt
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89771
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 24 Nov 2009 16:21:10 +0000 (16:21 +0000)]
Rename CleanupScope -> DelayedCleanupBlock. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89769
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 24 Nov 2009 16:12:41 +0000 (16:12 +0000)]
Update project file.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89768
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 24 Nov 2009 16:07:02 +0000 (16:07 +0000)]
Un-break instantiation of if statements with conditional variables
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89767
91177308 -0d34-0410-b5e6-
96231b3b80d8
Edward O'Callaghan [Tue, 24 Nov 2009 15:23:21 +0000 (15:23 +0000)]
Fix for PR5568.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89766
91177308 -0d34-0410-b5e6-
96231b3b80d8
Kovarththanan Rajaratnam [Tue, 24 Nov 2009 14:30:21 +0000 (14:30 +0000)]
Remove trailing spaces
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89764
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ken Dyck [Tue, 24 Nov 2009 12:04:54 +0000 (12:04 +0000)]
Add getByteSize() and getTypeSizeInBytes().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89760
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Tue, 24 Nov 2009 08:28:49 +0000 (08:28 +0000)]
We can remove this file now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89751
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Tue, 24 Nov 2009 08:24:26 +0000 (08:24 +0000)]
Refactor undefined result checker. This is the last one.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89750
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Tue, 24 Nov 2009 07:06:39 +0000 (07:06 +0000)]
Refactor NilReceiverStructRet and NilReceiverLargerThanVoidPtrRet into
CallAndMessageChecker.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89745
91177308 -0d34-0410-b5e6-
96231b3b80d8
Kovarththanan Rajaratnam [Tue, 24 Nov 2009 06:30:23 +0000 (06:30 +0000)]
Remove trailing spaces
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89744
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 24 Nov 2009 05:51:11 +0000 (05:51 +0000)]
Get rid of the ugly CGCXX names and replace them with CGClass, CGExprCXX and CGTemporaries.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89742
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 24 Nov 2009 05:36:32 +0000 (05:36 +0000)]
When mangling a ctor/dtor we need to take into consideration whether it's a member template.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89741
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 24 Nov 2009 05:34:41 +0000 (05:34 +0000)]
Set the template specialization kind before instantiating the function definition so that the function will have the right linkage.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89740
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 24 Nov 2009 05:28:59 +0000 (05:28 +0000)]
Teach Evaluate to handle member expressions referring to enum constants and
static member constants. No significant visible difference at the moment
because it conservatively assumes the base has side effects. I'm planning to
use this for CodeGen.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89738
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 24 Nov 2009 05:16:24 +0000 (05:16 +0000)]
Ignore constructor member templates in CodeGenModule::EmitTopLevelDecl.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89737
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 24 Nov 2009 05:08:52 +0000 (05:08 +0000)]
It is common for vtables to contain pointers to functions that have either incomplete return types or incomplete argument types.
Handle this by returning the llvm::OpaqueType for those cases, which CodeGenModule::GetOrCreateLLVMFunction knows about, and treats as being an "incomplete function".
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89736
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Tue, 24 Nov 2009 04:45:44 +0000 (04:45 +0000)]
rename UndefinedArgChecker to CallAndMessageChecker.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89735
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Tue, 24 Nov 2009 04:08:01 +0000 (04:08 +0000)]
Rename: UndefinedArgChecker.cpp => CallAndMessageChecker.cpp
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89734
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 24 Nov 2009 01:33:10 +0000 (01:33 +0000)]
Enhance null dereference diagnostics by indicating what variable (if any) was dereferenced. Addresses <rdar://problem/
7039161 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89726
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 24 Nov 2009 00:54:16 +0000 (00:54 +0000)]
Sketch the rest of the clang -cc1 option definitions, aka fun with C-x C-(.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89721
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 23 Nov 2009 23:44:04 +0000 (23:44 +0000)]
Explicitly track the condition variable within an "if" statement,
rather than burying it in a CXXConditionDeclExpr (that occassionally
hides behind implicit conversions). Similar changes for
switch, while, and do-while will follow, then the removal of
CXXConditionDeclExpr. This commit is the canary.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89717
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 23 Nov 2009 23:41:17 +0000 (23:41 +0000)]
Add clang -cc1 parsing of diagnostic options.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89716
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 23 Nov 2009 23:23:26 +0000 (23:23 +0000)]
After performing a bounds check in ArrayBoundChecker, record the fact that a bounds check succeeded by transitioning the ExplodedGraph.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89712
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 23 Nov 2009 22:22:01 +0000 (22:22 +0000)]
Clean up the Checker API a little more, resolving some hidden bugs
along the way. Important changes:
1) To generate a sink node, use GenerateSink(); GenerateNode() is for
generating regular transitions. This makes the API clearer and also
allows us to use the 'bool' option to GenerateNode() for a different
purpose.
2) GenerateNode() now automatically adds the generated node to the
destination ExplodedNodeSet (autotransition) unless the client
specifies otherwise with a bool flag. Several checkers did not call
'addTransition()' after calling 'GenerateNode()', causing the
simulation path to be prematurely culled when a non-fail stop bug was
encountered.
3) Add variants of GenerateNode()/GenerateSink() that take neither a
Stmt* or a GRState*; most callers of GenerateNode() just pass in the
same Stmt* as provided when the CheckerContext object is created; we
can just use that the majority of the time. This cleanup also allows
us to potentially coelesce the APIs for evaluating branches and
end-of-paths (which currently directly use builders).
4) addTransition() no longer needs to be called except for a few
cases. We now have a variant of addTransition() that takes a
GRState*; this allows one to propagate the updated state without
caring about generating a new node explicitly. This nicely cleaned up
a bunch of cases that called autoTransition() with a bunch of
conditional logic surround the call (that common logic has now been
swallowed up by addTransition() itself).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89707
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 23 Nov 2009 21:56:41 +0000 (21:56 +0000)]
Don't try to treat an enum constant as an lvalue.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89705
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 23 Nov 2009 21:47:44 +0000 (21:47 +0000)]
Convert the && and || operands to bool using standard conversions. Fixes PR5593.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89704
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Mon, 23 Nov 2009 20:40:50 +0000 (20:40 +0000)]
Fixe a crash in encoding of SEL type caused by recent changes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89696
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 23 Nov 2009 20:04:44 +0000 (20:04 +0000)]
Handle converting member pointers to bool.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89692
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Mon, 23 Nov 2009 19:51:43 +0000 (19:51 +0000)]
Fix a recent regression probably caused by addition of altivec-style
type-casts in the parser.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89691
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 23 Nov 2009 18:53:03 +0000 (18:53 +0000)]
Provide out-of-line definition for destructor of Checker.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89688
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 23 Nov 2009 18:12:03 +0000 (18:12 +0000)]
Tweak UndefBranchChecker to register the most nested "undefined" expression with bugreporter::registerTrackNullOrUndefValue instead of the condition itself.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89682
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Mon, 23 Nov 2009 18:04:25 +0000 (18:04 +0000)]
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).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89680
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 23 Nov 2009 17:58:48 +0000 (17:58 +0000)]
Cleanup title/description of "undefined branch" BugType and add some test cases for this check.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89679
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 23 Nov 2009 17:57:54 +0000 (17:57 +0000)]
Handle base-to-derived casts. Will land test case shortly.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89678
91177308 -0d34-0410-b5e6-
96231b3b80d8
John Thompson [Mon, 23 Nov 2009 17:49:27 +0000 (17:49 +0000)]
Put back hard-coded paths for win32 until I figure out what happened to failed tests.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89677
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 23 Nov 2009 17:37:58 +0000 (17:37 +0000)]
Remove '-checker-simple' reference from scan-build. Patch by Kovarththanan Rajaratnam!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89673
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Mon, 23 Nov 2009 17:18:46 +0000 (17:18 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89668
91177308 -0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 23 Nov 2009 16:31:19 +0000 (16:31 +0000)]
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
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89661
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Mon, 23 Nov 2009 15:34:23 +0000 (15:34 +0000)]
Let using directives refer to namespace aliases. Fixes PR5479.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89657
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 23 Nov 2009 13:53:21 +0000 (13:53 +0000)]
Require a class type to be complete before probing its conversion
functions for a switch condition's conversion to integral or
enumeration type.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89656
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 23 Nov 2009 13:46:08 +0000 (13:46 +0000)]
Implement conversion from a switch condition with class type to an
integral or enumeration type (vi user-defined conversions). Fixes PR5518.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89655
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 23 Nov 2009 12:52:47 +0000 (12:52 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89654
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 23 Nov 2009 12:39:54 +0000 (12:39 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89653
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 23 Nov 2009 12:27:39 +0000 (12:27 +0000)]
Do not mark declarations as used when performing overload resolution. Fixes PR5541
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89652
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 23 Nov 2009 12:11:45 +0000 (12:11 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89651
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 23 Nov 2009 12:03:50 +0000 (12:03 +0000)]
Fix CMake build
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89650
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 23 Nov 2009 11:41:28 +0000 (11:41 +0000)]
Centralize and complete the computation of value- and type-dependence for DeclRefExprs
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89649
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Mon, 23 Nov 2009 03:29:59 +0000 (03:29 +0000)]
UndefBranchChecker: more bug reporter helper information emit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89643
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Mon, 23 Nov 2009 03:20:54 +0000 (03:20 +0000)]
Initial refactor of UndefBranchChecker. We still use GRBranchNodeBuilder
in the checker directly. But I don't have a better approach for now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89640
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Mon, 23 Nov 2009 01:53:49 +0000 (01:53 +0000)]
Encapsulate "an array of TemplateArgumentLocs and two angle bracket locations" into
a new class. Use it pervasively throughout Sema.
My fingers hurt.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89638
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 23 Nov 2009 00:07:14 +0000 (00:07 +0000)]
Change Clang-Code-Compile tests to only -emit-llvm instead of running
codegen/as.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89634
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 23 Nov 2009 00:07:06 +0000 (00:07 +0000)]
Teach CodeGenFunction::EmitDecl to ignore Using and UsingShadow decls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89633
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 22 Nov 2009 23:01:23 +0000 (23:01 +0000)]
x86_64, PR5582: Layout bases for C++ records.
- Ideally we would have an single iteration interface for this, but this works
for now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89632
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 22 Nov 2009 22:08:27 +0000 (22:08 +0000)]
Recognize .hpp as a C++ header.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89630
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 22 Nov 2009 22:08:20 +0000 (22:08 +0000)]
Add clang -cc1 parsing of analyzer options.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89629
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 22 Nov 2009 21:55:22 +0000 (21:55 +0000)]
CMake: Add support for running tests with valgrind.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89625
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sun, 22 Nov 2009 20:57:36 +0000 (20:57 +0000)]
Fix LookupResult's sanity-check to handle shadow decls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89624
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sun, 22 Nov 2009 20:26:21 +0000 (20:26 +0000)]
Change CheckDeadStores to use Expr::isNullPointerConstant, which will correctly determine whether an expression is a null pointer constant.
Patch by Kovarththanan Rajaratnam!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89621
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 22 Nov 2009 19:25:33 +0000 (19:25 +0000)]
Use EmitStoreOfScalar when copying the scalar to the space allocated by 'new'.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89613
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 22 Nov 2009 19:13:51 +0000 (19:13 +0000)]
When laying out bitfields, make sure that the data size is always aligned to a byte. This fixes PR5580.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89611
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 22 Nov 2009 18:56:40 +0000 (18:56 +0000)]
Update a test to FileCheck.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89610
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ken Dyck [Sun, 22 Nov 2009 18:29:06 +0000 (18:29 +0000)]
Use intptr_t from stdint.h (in freestanding mode) instead of redefining it here
with __INTPTR_TYPE__.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89609
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Chisnall [Sun, 22 Nov 2009 17:42:02 +0000 (17:42 +0000)]
Test case for bug fixed in r89457.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89605
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 22 Nov 2009 17:37:31 +0000 (17:37 +0000)]
Move bit-field layout out into a separate function. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89604
91177308 -0d34-0410-b5e6-
96231b3b80d8
Edward O'Callaghan [Sun, 22 Nov 2009 16:21:47 +0000 (16:21 +0000)]
Fix for PR5233.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89603
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ken Dyck [Sun, 22 Nov 2009 15:47:12 +0000 (15:47 +0000)]
Define SIG_ATOMIC_MIN and SIG_ATOMIC_MAX in terms of __SIG_ATOMIC_WIDTH__.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89598
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ken Dyck [Sun, 22 Nov 2009 15:41:04 +0000 (15:41 +0000)]
Define __SIG_ATOMIC_WIDTH__ for use in stdint.h.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89597
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sun, 22 Nov 2009 13:36:20 +0000 (13:36 +0000)]
Undefined compound assignment result is checked in UndefinedAssignmentChecker. So this check is redundant.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89592
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sun, 22 Nov 2009 13:30:10 +0000 (13:30 +0000)]
Remove invalid comments. The result is undefined only when operands are undefined.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89591
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sun, 22 Nov 2009 13:22:34 +0000 (13:22 +0000)]
Save and restore the HasGen flag in MallocChecker.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89590
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sun, 22 Nov 2009 12:51:08 +0000 (12:51 +0000)]
Don't include a dead header.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89587
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sun, 22 Nov 2009 12:29:52 +0000 (12:29 +0000)]
Remove UndefinedAssignmentChecker's header.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89585
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sean Hunt [Sun, 22 Nov 2009 07:05:50 +0000 (07:05 +0000)]
Use intptr_t rather than long so that this test will not fail on LLP64 systems,
where long is only 32-bits and so a reinterpret_cast would be ill-formed.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89583
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sun, 22 Nov 2009 02:49:43 +0000 (02:49 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89578
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sun, 22 Nov 2009 01:44:31 +0000 (01:44 +0000)]
Reorganize the intermediate BuildDeclarationNameExpr routines again.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89575
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sun, 22 Nov 2009 00:44:51 +0000 (00:44 +0000)]
Consider a FunctionTemplate to be an overload all on its lonesome. Track
this information through lookup rather than rederiving it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89570
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 21 Nov 2009 23:56:04 +0000 (23:56 +0000)]
Support emitting aggregate class initializers. Fixes PR5581.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89569
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Sat, 21 Nov 2009 19:53:08 +0000 (19:53 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89561
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 21 Nov 2009 17:55:24 +0000 (17:55 +0000)]
Make FixedAddressChecker and experimental check; it currently produces a ton of false positives when analyzing some projects (e.g., Wine).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89560
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sean Hunt [Sat, 21 Nov 2009 09:45:54 +0000 (09:45 +0000)]
Fix 80-cols violation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89558
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sat, 21 Nov 2009 09:38:42 +0000 (09:38 +0000)]
Overload resolution doesn't decide whether to do ADL or not anymore; stopping
threading that state.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89557
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Nov 2009 09:17:15 +0000 (09:17 +0000)]
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).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89556
91177308 -0d34-0410-b5e6-
96231b3b80d8