diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-07-12 17:28:52 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-07-12 17:28:52 +0000 |
commit | f96e904783dc28b2b3fa4dcbb6dbdb40ca26aa8d (patch) | |
tree | 4e5899392f7d0e320953b5306e0972c1703d9e32 /lib/AST/Type.cpp | |
parent | 98a5403ecf1d2b60ae8cbf43e54194bd762cacaa (diff) |
In ARC mode, consider Objective-C lifetime types (object pointers and
block pointers) that don't have any qualification to be POD types. We
were previously considering them to be non-POD types, because this was
convenient in C++ for is_pod-like traits. However, we now end up
inferring lifetime in such cases (template arguments infer __strong),
so it is not necessary.
Moreover, we want rvalues of object type (which have their lifetime
stripped) to be PODs to allow, e.g., va_arg(arglist, id) to function
properly. Fixes <rdar://problem/9758798>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134993 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/Type.cpp')
-rw-r--r-- | lib/AST/Type.cpp | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/lib/AST/Type.cpp b/lib/AST/Type.cpp index 1f0a37efac..08971eb034 100644 --- a/lib/AST/Type.cpp +++ b/lib/AST/Type.cpp @@ -915,8 +915,6 @@ bool QualType::isPODType(ASTContext &Context) const { return false; case Qualifiers::OCL_None: - if ((*this)->isObjCLifetimeType()) - return false; break; } } |