diff options
author | John McCall <rjmccall@apple.com> | 2010-05-28 08:20:36 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2010-05-28 08:20:36 +0000 |
commit | 1d0a5856d066f9030efbe3e0d9bbbb50ea597b99 (patch) | |
tree | febfa262414dfd3cdf66ad3cef7bda8860667bf4 /lib/Sema/SemaLookup.cpp | |
parent | 42a4f66ffeb26e69b2f0ec873a5d41b0e39e634c (diff) |
Add a new attribute on records, __attribute__((adl_invisible)), and define
the x86-64 __va_list_tag with this attribute. The attribute causes the
affected type to behave like a fundamental type when considered by ADL.
(x86-64 is the only target we currently provide with a struct-based
__builtin_va_list)
Fixes PR6762.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104941 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaLookup.cpp')
-rw-r--r-- | lib/Sema/SemaLookup.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/Sema/SemaLookup.cpp b/lib/Sema/SemaLookup.cpp index 16d7305867..8710c496de 100644 --- a/lib/Sema/SemaLookup.cpp +++ b/lib/Sema/SemaLookup.cpp @@ -1500,6 +1500,10 @@ addAssociatedClassesAndNamespaces(CXXRecordDecl *Class, ASTContext &Context, Sema::AssociatedNamespaceSet &AssociatedNamespaces, Sema::AssociatedClassSet &AssociatedClasses) { + + // Some classes are invisible to ADL. + if (Class->isInvisibleToADL()) return; + // C++ [basic.lookup.koenig]p2: // [...] // -- If T is a class type (including unions), its associated |