]>
granicus.if.org Git - clang/log
Douglas Gregor [Wed, 2 Sep 2009 13:07:20 +0000 (13:07 +0000)]
Add a few more typename-specifier tests that involve simple-template-ids in the nested-name-specifier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80784
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 2 Sep 2009 13:05:45 +0000 (13:05 +0000)]
When parsing typename specifiers (with either the identifier or
simple-template-id form), check whether the scope specifier is
computable as a declaration context rather than checking whether it is
dependent, so that we properly cope with members of the current
instantiation.
Improve testing for typename specifiers that terminate in a
simpe-template-id.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80783
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Wed, 2 Sep 2009 08:10:35 +0000 (08:10 +0000)]
Refactor bad callee check into a Checker.
Now bad callee is checked as a PreVisit to the CallExpr.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80771
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Wed, 2 Sep 2009 07:09:39 +0000 (07:09 +0000)]
Still use BadArg bugtype in the checker. This saves us implement registerInitialVisitors
in the BugReport.
When all internal bug checking logic are moved to checkers, BuiltinBug will
not reference GRExprEngine, and FlushReports() will be not necessary, since
all bugs are emitted into the equivalent classes immediately.
For now just add a ctor with no arguments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80770
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 2 Sep 2009 06:03:18 +0000 (06:03 +0000)]
Replace uses of ImmutableSet in SymbolReaper with DenseSet. This was
motivated from Shark profiles that shows that 'markLive' was very
heavy when using --analyzer-store=region. On my benchmark file, this
reduces the analysis time for --analyzer-store=region from 19.5s to
13.5s and for --analyzer-store=basic from 5.3s to 3.5s. For the
benchmark file, this is a reduction of about 30% analysis time for
both analysis modes (a huge win).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80765
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 2 Sep 2009 02:47:41 +0000 (02:47 +0000)]
Implement: <rdar://problem/
6337100 > CWE-338: Use of cryptographically weak prng
Patch by Geoff Keating!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80752
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Wed, 2 Sep 2009 02:15:17 +0000 (02:15 +0000)]
When adding a friend class declaration to the lookup tables, use the access specifier
of any previous declaration in case we replace it in a class's declaration table.
Fixes bug 4858. This sort of thing makes me reconsider putting friend declarations in
declaration lists.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80750
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Wed, 2 Sep 2009 01:07:03 +0000 (01:07 +0000)]
Fix a little crasher in friend decls. Thanks again to Eli for finding this.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80748
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Wed, 2 Sep 2009 00:56:18 +0000 (00:56 +0000)]
Add mangling for covariant thunks.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80747
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Wed, 2 Sep 2009 00:55:30 +0000 (00:55 +0000)]
Ensure that the tag decls of friend decls aren't added to the friending class's
decl list, and remove some workarounds that were due to this. Thanks to Eli for
pointing this out and providing the test case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80745
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Wed, 2 Sep 2009 00:28:47 +0000 (00:28 +0000)]
Shorten name.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80744
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Wed, 2 Sep 2009 00:25:38 +0000 (00:25 +0000)]
Add mangling for thunks.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80743
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 2 Sep 2009 00:05:10 +0000 (00:05 +0000)]
Test for my last patch.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80740
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 2 Sep 2009 00:00:05 +0000 (00:00 +0000)]
It is illegal to derefrercne to an interface in
objc's non-fragile ABI.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80739
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Tue, 1 Sep 2009 23:22:44 +0000 (23:22 +0000)]
More overriding base work and some cleanups. WIP.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80737
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 1 Sep 2009 23:08:16 +0000 (23:08 +0000)]
After a conversation with Doug. I added a fix me to
where we build the constructor's initializer list.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80735
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Tue, 1 Sep 2009 22:20:28 +0000 (22:20 +0000)]
Split out overriding. WIP.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80732
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Tue, 1 Sep 2009 22:01:25 +0000 (22:01 +0000)]
Testcase for recent checkin.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80725
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 1 Sep 2009 21:18:52 +0000 (21:18 +0000)]
Handle member expressions that return references correctly.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80723
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 1 Sep 2009 21:12:16 +0000 (21:12 +0000)]
Assert that we don't have any virtual bases. We can emit dtors for polymorphics classes just fune.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80722
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 1 Sep 2009 21:04:42 +0000 (21:04 +0000)]
In CXXBaseOrMemberInitializer, don't confuse CtorTocall with
AnonUnionMember. Fixes PR4826.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80721
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 1 Sep 2009 20:52:42 +0000 (20:52 +0000)]
Use the correct cast kinds for bit casts and function to pointer decay. Fixes PR4827.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80720
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 1 Sep 2009 20:37:18 +0000 (20:37 +0000)]
Add a CK_FunctionToPointerDecay cast kind.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80719
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 1 Sep 2009 18:33:46 +0000 (18:33 +0000)]
We can generate constructors/destructors with base classes and non-trivial fields just fine now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80701
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 1 Sep 2009 18:33:16 +0000 (18:33 +0000)]
Add test case from <rdar://problem/
7184450 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80700
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 1 Sep 2009 17:53:10 +0000 (17:53 +0000)]
Implement proper substitution for OverloadedFunctionDecls, but substituting each of the functions in the overload set
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80692
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 1 Sep 2009 17:22:34 +0000 (17:22 +0000)]
Add DeclContext::Equals to compare declaration contexts based on their primary context. Use this instead of pointer comparisons
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80690
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Tue, 1 Sep 2009 17:13:31 +0000 (17:13 +0000)]
Tweak comment based on Daniel's recently added '-emit-ast' option.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80684
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 1 Sep 2009 17:10:19 +0000 (17:10 +0000)]
"The attached patch moves AttributeList::addAttributeList outside the
class so as to accomodate one or both parameters being NULL, " from Sean Hunt!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80683
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 1 Sep 2009 17:02:21 +0000 (17:02 +0000)]
Fixed a property getter ir-gen crash.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80681
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 1 Sep 2009 16:58:52 +0000 (16:58 +0000)]
Fix a crasher involving template instantiation of non-dependent
expressions making use of an overloaded operator. Thanks for the test
case, Anders!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80679
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 1 Sep 2009 16:57:46 +0000 (16:57 +0000)]
Add driver support for -emit-ast and AST compilation steps.
- <rdar://problem/
7185031 > Add 'clang' option '-emit-ast'
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80678
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 1 Sep 2009 16:13:00 +0000 (16:13 +0000)]
Tip-toe around strict-aliasing violation. Fixes PR4061.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80674
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Tue, 1 Sep 2009 15:55:40 +0000 (15:55 +0000)]
Add explicit "blind" client data to callback function (since we aren't using blocks).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80673
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 1 Sep 2009 15:39:05 +0000 (15:39 +0000)]
Move C++ test over to CodeGenCXX, since it requires CodeGen to reproduce
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80672
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 1 Sep 2009 06:22:14 +0000 (06:22 +0000)]
Don't assume that a base is always a RecordType, it can also be a TemplateSpecializationType. Also, make sure to get the instantiated union member.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80662
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 1 Sep 2009 05:12:24 +0000 (05:12 +0000)]
Add pretty stack traces when instantiating functions and static data members.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80661
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 1 Sep 2009 04:31:02 +0000 (04:31 +0000)]
Handle member initializers that point to fields in anonymous structs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80659
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 1 Sep 2009 04:26:58 +0000 (04:26 +0000)]
Don't assert when instantiating member references to fields in anonymous structs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80657
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 1 Sep 2009 04:19:44 +0000 (04:19 +0000)]
PR4836, part 2: CodeGen for __builtin_isnan.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80655
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 1 Sep 2009 00:37:14 +0000 (00:37 +0000)]
Preliminary AST representation and semantic analysis for
explicitly-specified template argument lists in member reference
expressions, e.g.,
x->f<int>()
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80646
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 1 Sep 2009 00:36:20 +0000 (00:36 +0000)]
Force triple for this test (non-fragile ABI is default on x86_64-apple-darwin9).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80645
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 1 Sep 2009 00:17:12 +0000 (00:17 +0000)]
Sentence-case bug category.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80644
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 31 Aug 2009 23:44:04 +0000 (23:44 +0000)]
Remember to write the qualifier of a MemberExpr to the PCH file when we get to C++ PCH
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80643
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 31 Aug 2009 23:41:50 +0000 (23:41 +0000)]
Eliminate CXXAdornedMemberExpr entirely. Instead, optionally allocate
space within the MemberExpr for the nested-name-specifier and its
source range. We'll do the same thing with explicitly-specified
template arguments, assuming I don't flip-flop again.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80642
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Mon, 31 Aug 2009 22:39:49 +0000 (22:39 +0000)]
Fix bug 4784 and allow friend declarations to properly extend
existing declaration chains.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80636
91177308 -0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 31 Aug 2009 22:00:32 +0000 (22:00 +0000)]
Rename DIBlock as DILexicalBlock.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80634
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 31 Aug 2009 21:41:48 +0000 (21:41 +0000)]
Rename CXXQualifiedMemberExpr -> CXXAdornedMemberExpr, since we will
also be adding explicit template arguments as an additional
"adornment". No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80628
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 31 Aug 2009 21:16:32 +0000 (21:16 +0000)]
Add parsing for references to member function templates with explicit
template argument lists, e.g., x.f<int>().
Semantic analysis will be a separate commit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80624
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 31 Aug 2009 20:06:00 +0000 (20:06 +0000)]
PR4836, part 1: add Sema support for __builtin_isnan and friends; they
are apparently used by Solaris libc despite the fact that clang claims
to be compatible with gcc 4.2, which doesn't support them.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80610
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 31 Aug 2009 20:00:26 +0000 (20:00 +0000)]
Implement template instantiation for member operator access.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80609
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 31 Aug 2009 19:52:13 +0000 (19:52 +0000)]
Support explicit C++ member operator syntax, from James Porter!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80608
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Mon, 31 Aug 2009 19:33:16 +0000 (19:33 +0000)]
Re-implemented generation of objc_memmove_collectable
API for copying GC'able aggregates (Next runtime only).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80607
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 31 Aug 2009 19:16:38 +0000 (19:16 +0000)]
Fix a -Asserts warning.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80606
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Chisnall [Mon, 31 Aug 2009 16:53:06 +0000 (16:53 +0000)]
Added test cases for presence and absence of __has_feature(objc_nonfragile_abi) with and without -fobjc-nonfragile-abi.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80593
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Chisnall [Mon, 31 Aug 2009 16:41:57 +0000 (16:41 +0000)]
Updated GNU runtime non-fragile ABI.
Added -fconstant-string-class= option.
Added __has_feature() test for non-fragile ABI.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80591
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Mon, 31 Aug 2009 14:26:51 +0000 (14:26 +0000)]
Implement source/line/column hooks.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80585
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Mon, 31 Aug 2009 00:59:03 +0000 (00:59 +0000)]
More fleshing out the C-based indexing API (under construction).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80529
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 30 Aug 2009 07:09:50 +0000 (07:09 +0000)]
More missing member goodness.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80491
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 30 Aug 2009 06:49:43 +0000 (06:49 +0000)]
Improve missing error messages as suggested by Doug.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80489
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 30 Aug 2009 00:58:45 +0000 (00:58 +0000)]
Use DiagnoseMissingMember for UsingDecls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80470
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 30 Aug 2009 00:54:35 +0000 (00:54 +0000)]
Improve diagnostics for missing members. This renames the err_typecheck_no_member to err_typecheck_no_member_deprecated. The idea is that err_typecheck_no_member_deprecated should be phased out and any call sites that reference it should call DiagnoseMissingMember instead.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80469
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sun, 30 Aug 2009 00:53:54 +0000 (00:53 +0000)]
Unbreak tests. I'll look into why this is necessary later.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80468
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Sat, 29 Aug 2009 22:39:34 +0000 (22:39 +0000)]
Fix the start source location for type-specs like long, short, etc.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80448
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Sat, 29 Aug 2009 22:39:19 +0000 (22:39 +0000)]
Fix TypeLoc::operator bool().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80447
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sat, 29 Aug 2009 22:22:07 +0000 (22:22 +0000)]
Make instantiating initializers for classes with a dependent base type
work correctly.
The change in lib/AST/DeclCXX.cpp is mostly a large reindentation; I
couldn't figure out a good way to avoid it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80446
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sat, 29 Aug 2009 20:58:20 +0000 (20:58 +0000)]
Make IRGen for initializing a member reference work correctly.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80439
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 29 Aug 2009 20:47:47 +0000 (20:47 +0000)]
Add a workaround for decls that come from friend decls pointing to undeclared classes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80438
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 29 Aug 2009 20:36:12 +0000 (20:36 +0000)]
In DeclPrinter, assert when asked to print AS_None.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80437
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Sat, 29 Aug 2009 20:33:32 +0000 (20:33 +0000)]
Patch to ir-gen user-defined conversions used in expressions
[12.3.2-p3]
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80436
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 29 Aug 2009 19:54:19 +0000 (19:54 +0000)]
Set the access specifier for using decls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80435
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 29 Aug 2009 19:37:28 +0000 (19:37 +0000)]
Improve instantiation of UnresolvedUsingDecls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80434
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Sat, 29 Aug 2009 19:15:16 +0000 (19:15 +0000)]
Patch for code gen. for c-style cast which ends in
using class's conversion functions [12.3.2-p2]
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80433
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sat, 29 Aug 2009 19:09:59 +0000 (19:09 +0000)]
Get rid of mostly-unused, buggy method.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80432
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 29 Aug 2009 12:56:35 +0000 (12:56 +0000)]
gcc 4.4 needs cstdio for printf. Reorder includes while at it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80430
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sat, 29 Aug 2009 08:20:44 +0000 (08:20 +0000)]
Test case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80426
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sat, 29 Aug 2009 08:11:13 +0000 (08:11 +0000)]
Fix the breakage by handling indirect instantiations. This would be much
improved if there were a consistent name for getInstantiatedFromMemberX()
across all classes. Cheap refactor if someone wants to do it, but let's get the
buildbots happy first.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80425
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 29 Aug 2009 05:16:22 +0000 (05:16 +0000)]
Instantiate member and base initializers. Patch by Anders Johnsen! (tweaked slightly by me)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80422
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sat, 29 Aug 2009 04:08:08 +0000 (04:08 +0000)]
Fix a couple issues with parsing invalid nested-name-specifiers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80421
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sat, 29 Aug 2009 03:50:18 +0000 (03:50 +0000)]
For consistency, just make friend declarations AS_public.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80420
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sat, 29 Aug 2009 03:28:20 +0000 (03:28 +0000)]
Fix a last-minute typo and make the test not emit temporaries.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80419
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sat, 29 Aug 2009 03:16:09 +0000 (03:16 +0000)]
Ensure code generation for friend declarations in class templates.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80418
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sat, 29 Aug 2009 02:11:01 +0000 (02:11 +0000)]
Refactor undefined argument checking into a Checker.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80417
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 29 Aug 2009 01:31:33 +0000 (01:31 +0000)]
Store the SourceLocation of right parentheses in member initializers. Patch by Anders Johnsen!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80416
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 29 Aug 2009 01:13:02 +0000 (01:13 +0000)]
Don't assert that friend declarations must have access specifiers for now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80415
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 29 Aug 2009 01:06:32 +0000 (01:06 +0000)]
CreateDeclRefExprs that point to UnresolvedUsingDecls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80413
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 29 Aug 2009 00:56:38 +0000 (00:56 +0000)]
Add another check for UnresolvedUsingDecl.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80412
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 28 Aug 2009 23:22:54 +0000 (23:22 +0000)]
iGenerate vcalls as we build up the methods. WIP.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80405
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 28 Aug 2009 22:54:55 +0000 (22:54 +0000)]
Make sure we actually found a redeclaration before complaining about attributes added to a redeclaration in C++
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80403
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 28 Aug 2009 22:39:52 +0000 (22:39 +0000)]
Add printing of access specifiers to DeclPrinter. The formatting is pretty bad but it works :)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80402
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 28 Aug 2009 22:06:43 +0000 (22:06 +0000)]
Remove #if 0'd code that is clearly not needed
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80399
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 28 Aug 2009 22:04:50 +0000 (22:04 +0000)]
path to ir-gen 12.3.1 Conversion by constructor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80398
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 28 Aug 2009 22:03:51 +0000 (22:03 +0000)]
Don't crash when instantiating templates containing anonymous structs/unions
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80397
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 28 Aug 2009 21:41:19 +0000 (21:41 +0000)]
Test instantiation of static data members that live within nested
member templates.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80396
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 28 Aug 2009 21:15:08 +0000 (21:15 +0000)]
Test instantiations of out-of-line member definitions of nested templates.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80395
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 28 Aug 2009 21:09:48 +0000 (21:09 +0000)]
Fix and test template instantiation for nested member templates.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80394
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 28 Aug 2009 20:50:45 +0000 (20:50 +0000)]
Tighten up the conversion from a single-level template argument list
to a multi-level template argument list by making it explicit. The
forced auditing of callers found a bug in the instantiation of member
classes inside member templates.
I *love* static type systems.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80391
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 28 Aug 2009 20:33:09 +0000 (20:33 +0000)]
Remove the conversion from a multi-level template argument list back to a single template argument list. We no longer need this crutch
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80390
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 28 Aug 2009 20:31:08 +0000 (20:31 +0000)]
Implement template instantiation for member class templates.
When performing template instantiation of the definitions of member
templates (or members thereof), we build a data structure containing
the template arguments from each "level" of template
instantiation. During template instantiation, we substitute all levels
of template arguments simultaneously.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80389
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 28 Aug 2009 20:25:33 +0000 (20:25 +0000)]
Add uninitialized values test case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80388
91177308 -0d34-0410-b5e6-
96231b3b80d8