6bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89 |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update Clang for 3.5 rebase (r209713). Change-Id: I8c9133b0f8f776dc915f270b60f94962e771bc83
/external/clang/lib/AST/CXXInheritance.cpp
|
651f13cea278ec967336033dd032faef0e9fc2ec |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Updated to Clang 3.5a. Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
/external/clang/lib/AST/CXXInheritance.cpp
|
344472ebeded2fca2ed5013b9e87f81d09bfa908 |
|
23-Aug-2013 |
Robert Wilhelm <robert.wilhelm@gmx.net> |
Use pop_back_val() instead of both back() and pop_back(). No functionality change intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189112 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
09d19efaa147762f84aed55efa7930bb3616a4e5 |
|
04-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Use SmallVectorImpl instead of SmallVector for iterators and references to avoid specifying the vector size unnecessarily. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
3f7b3a754e9698d613672dd1f7af3ccd1b42470a |
|
15-Jan-2013 |
David Greene <greened@obbligato.org> |
Fix Cast Avoid a cast-away-const error by properly using const_cast<>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172558 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
3bc93e3124ad5e7191c4a12dc981c8ee53578193 |
|
19-Dec-2012 |
David Blaikie <dblaikie@gmail.com> |
Change DeclContextLookup(Const)Result to (Mutable)ArrayRef<NamedDecl*>, as per review discussion in r170365 This does limit these typedefs to being sequences, but no current usage requires them to be contiguous (we could expand this to a more general iterator pair range concept at some point). Also, it'd be nice if SmallVector were constructible directly from an ArrayRef but this is a bit tricky since ArrayRef depends on SmallVectorBaseImpl for the inverse conversion. (& generalizing over all range-like things, while nice, would require some nontrivial SFINAE I haven't thought about yet) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170482 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
55fc873017f10f6f566b182b70f6fc22aefa3464 |
|
04-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Sort all of Clang's files under 'lib', and fix up the broken headers uncovered. This required manually correcting all of the incorrect main-module headers I could find, and running the new llvm/utils/sort_includes.py script over the files. I also manually added quite a few missing headers that were uncovered by shuffling the order or moving headers up to be main-module-headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169237 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
f62c690c55fb920f3ba0a4f6e6e259e2ae7ce297 |
|
22-Nov-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Fix CXXRecordDecl::forallBases to not look through bases which are dependent and defined within the current instantiation, but which are not part of the current instantiation. Previously, it would look at bases which could be specialized separately from the current template. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168477 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
229d47aef27e6f65fe4dc3beb22f622dd81104ad |
|
10-Nov-2012 |
Douglas Gregor <dgregor@apple.com> |
Rework my implementation of circular-reference finding to not use CXXRecordDecl::forallBases, which does *not* do what I need. Fixes the failure introduced in r167651. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167668 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
d777e2845110469182809e4efc577899395805f7 |
|
10-Nov-2012 |
Douglas Gregor <dgregor@apple.com> |
Diagnostic circular inheritance involving dependent base classes. We would have diagnosed this at instantiation time anyway, if only we didn't hang on all of these test cases. Fixes <rdar://problem/12629723> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167651 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
cca178014377d5ee756afba47edb93d76a100b06 |
|
12-Sep-2012 |
Ted Kremenek <kremenek@apple.com> |
Convert a few more getAs cases to castAs where we immediately call a member function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163684 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
a13cdf4780a885c0d3726fe8d3562b9bc770b7ec |
|
11-Sep-2012 |
Douglas Gregor <dgregor@apple.com> |
Switch a SmallPtrSet/SmallVector pair over to SetVector. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163600 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
890f0f1612b0028b8b16730ae7ed07e295600c76 |
|
23-Aug-2012 |
Ted Kremenek <kremenek@apple.com> |
Change a bunch of cases where we do "getAs<...>->doSomething()" to "castAs<...>->doSomething()". The analyzer was flagging these as potential null dereferences, which is technically true. The invariants appear to be that these casts should never fail, so let's use castAs<> instead and avoid a runtime check. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162468 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
925d58c20aba52ef3901db7402a2067266ed12ea |
|
23-Aug-2012 |
Douglas Gregor <dgregor@apple.com> |
array_pod_sort on the addresses of declaration pointers leads to inconsistent ordering of results; instead, use use SmallPtrSet to eliminate duplicates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162429 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
2aa800a955132d83a666bcd52d3d59d09cffc079 |
|
08-Aug-2012 |
Jordan Rose <jordan_rose@apple.com> |
Constify CXXRecordDecl::isVirtuallyDerivedFrom. No functionality change. A couple ugly const_casts because the ancestor search code is used for other purposes as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161509 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
d4f5198ae07d9a4958d8191bac694ded12173ad9 |
|
04-Jul-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove get(V)BaseClassOffsetInBits, the CharUnit functions should be used instead. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159719 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
e0cf31dc263979027f345c00318a704c5f5b1e76 |
|
28-May-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
PR12962: Fix a rare use after free when collecting virtual overrides. The DenseMap reallocates after 64 insertions so this only happened in large test cases under very specific circumstances. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157549 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
eb2f220b334fc77202864c1a57246361f262b5e1 |
|
23-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Actually remove the duplicated elements from the vector. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151270 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
d0e49e587afd15ccc6c2f910a979f0d3d602d166 |
|
23-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Unique CXXBasePath decls with the SmallVector/pod_sort/std::unique idiom instead of employing a wasteful std::set. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151255 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
5f9e272e632e951b1efe824cd16acb4d96077930 |
|
23-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports them into the clang namespace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135852 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
162e1c1b487352434552147967c3dd296ebee2f7 |
|
15-Apr-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Support for C++11 (non-template) alias declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129567 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
d89d30fdd9e3061fb100fb8f976aab5c6cf2c901 |
|
28-Jan-2011 |
John McCall <rjmccall@apple.com> |
Fix some corner cases in the __is_base_of logic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124505 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
c9e814ba193f38a7b08268612248f63beb279bb3 |
|
25-Nov-2010 |
Anders Carlsson <andersca@mac.com> |
Rename RecordLayout::getPrimaryBaseWasVirtual to isPrimaryBaseVirtual. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120133 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
3a03765f706024f8b054635631547287bdd1831b |
|
24-Nov-2010 |
Anders Carlsson <andersca@mac.com> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120130 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
46170f9c7d561d0f94af34a4b5da909d2584370a |
|
24-Nov-2010 |
Anders Carlsson <andersca@mac.com> |
Add CXXRecordDecl::getIndirectPrimaryBases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120129 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
1c4c397c581ad7106fc911fc4592c7aca163b5bc |
|
04-Jun-2010 |
Anders Carlsson <andersca@mac.com> |
Add a short circuit in isVirtuallyDerivedFrom. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105457 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
ffdb2d2a8860c601b35575855494f45d85cf14d9 |
|
03-Jun-2010 |
Anders Carlsson <andersca@mac.com> |
Add all final overriders to the map. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105374 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
e0d5fe2a417b84ac8b51927ebeb8f1c9ae492760 |
|
21-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Use CanQualType to enforce the use of a canonical type argument to CXXBasePaths::isAmbiguous(), rather than just asserting that we have a canonical type. Fixes PR7176. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104374 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
7b2fc9d3c97f2526528a8b686af1589054025ca0 |
|
24-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement computation of the final overriders for each virtual function within a class hierarchy (C++ [class.virtual]p2). We use the final-overrider computation to determine when a particular class is ill-formed because it has multiple final overriders for a given virtual function (e.g., because two virtual functions override the same virtual function in the same virtual base class). Fixes PR5973. We also use the final-overrider computation to determine which virtual member functions are pure when determining whether a class is abstract or diagnosing the improper use of an abstract class. The prior approach to determining whether there were any pure virtual functions in a class didn't cope with virtual base class subobjects properly, and could not easily be fixed to deal with the oddities of subobject hiding. Fixes PR6631. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99351 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
4e6ba4be8ddeca2978da6b9bae02cbe9594f2ef4 |
|
03-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement name hiding for names found through virtual base subobjects that are hidden by other derived base subobjects reached along a lookup path that does *not* pass through the hiding subobject (C++ [class.member.lookup]p6). Fixes PR6462. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
89b7702c9a64e12093ed34fc02dc3cfbb6eb133a |
|
03-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Refactor CXXRecordDecl::lookupInBases() to push the recursion down a level. No functionality change, and it obeys access control this time. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
7f7f5f2803290121a1f78e041411ffc49b4c37fc |
|
03-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Revert r97618. Access control sucks git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97621 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
3262a0f7b8c5484635b591dc83125fd24d6ad016 |
|
03-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Factor out the recursive lookup into C++ base classes into a separate, static function. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97618 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
952b017601f9c82b51119c3a1600f1312a833db9 |
|
11-Feb-2010 |
Douglas Gregor <dgregor@apple.com> |
Eliminate the ASTContext parameter from RecordDecl::getDefinition() and CXXRecordDecl::getDefinition(); it's totally unnecessary. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95836 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
ed814cc4cd2bd4d32cbb4bfde3cc59ccae723a92 |
|
09-Feb-2010 |
John McCall <rjmccall@apple.com> |
Reset the found-virtual-base state unless the *current* base produces a path, not *any* base up to now has produced a path. Fixes PR 6254. I'll do the access-control part of this patch RSN. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
92f883177b162928a8e632e4e3b93fafd2b26072 |
|
23-Jan-2010 |
John McCall <rjmccall@apple.com> |
Implement elementary access control. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94268 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
46460a68f6508775e98c19b4bb8454bb471aac24 |
|
20-Jan-2010 |
John McCall <rjmccall@apple.com> |
First pass at collecting access-specifier information along inheritance paths. Triggers lots of assertions about missing access information; fix them. Will actually consume this information soon. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94038 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
ca910e84ea026a898c7184d3f3608403005b9bc0 |
|
09-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
In CXXRecordDecl::forallBases, add the base to the "queue", so we walk more than one heirarchy of classes. John, please review. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90948 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
e8174bc483615e79614d9284a50ac94831e8b7c6 |
|
08-Dec-2009 |
John McCall <rjmccall@apple.com> |
Add CXXRecordDecl::forallBases to walk an inheritance hierarchy with non-lookup semantics and CXXRecordDecl::isProvablyNotDerivedFrom to assist with pre-instantiation diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90842 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
a4923eb7c4b04d360cb2747641a5e92818edf804 |
|
16-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
First part of changes to eliminate problems with cv-qualifiers and sugared types. The basic problem is that our qualifier accessors (getQualifiers, getCVRQualifiers, isConstQualified, etc.) only look at the current QualType and not at any qualifiers that come from sugared types, meaning that we won't see these qualifiers through, e.g., typedefs: typedef const int CInt; typedef CInt Self; Self.isConstQualified() currently returns false! Various bugs (e.g., PR5383) have cropped up all over the front end due to such problems. I'm addressing this problem by splitting each qualifier accessor into two versions: - the "local" version only returns qualifiers on this particular QualType instance - the "normal" version that will eventually combine qualifiers from this QualType instance with the qualifiers on the canonical type to produce the full set of qualifiers. This commit adds the local versions and switches a few callers from the "normal" version (e.g., isConstQualified) over to the "local" version (e.g., isLocalConstQualified) when that is the right thing to do, e.g., because we're printing or serializing the qualifiers. Also, switch a bunch of Context.getCanonicalType(T1).getUnqualifiedType() == Context.getCanonicalType(T2).getQualifiedType() expressions over to Context.hasSameUnqualifiedType(T1, T2) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88969 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
af8e6ed61b5e80ab95632b63f583af79dcb62590 |
|
12-Nov-2009 |
John McCall <rjmccall@apple.com> |
Random const correctness, and incidentally use computeDeclContext when building a using declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86942 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
467b27b9a24bdc823218ad1ad0e37673b6cc1e83 |
|
22-Oct-2009 |
John McCall <rjmccall@apple.com> |
Canonicality is a property of qualified types, not unqualified types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84891 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
82109bd64a8494c801263c11f4d2294f47e21807 |
|
07-Oct-2009 |
Mike Stump <mrs@apple.com> |
Fix eof. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83433 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|
a8f32e0965ee19ecc53cd796e34268377a20357c |
|
06-Oct-2009 |
Douglas Gregor <dgregor@apple.com> |
Refactor the code that walks a C++ inheritance hierarchy, searching for bases, members, overridden virtual methods, etc. The operations isDerivedFrom and lookupInBases are now provided by CXXRecordDecl, rather than by Sema, so that CodeGen and other clients can use them directly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83396 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CXXInheritance.cpp
|