]> granicus.if.org Git - clang/commitdiff
GCC 4.2 compatibility hack.
authorJohn McCall <rjmccall@apple.com>
Sat, 9 Jul 2011 02:30:03 +0000 (02:30 +0000)
committerJohn McCall <rjmccall@apple.com>
Sat, 9 Jul 2011 02:30:03 +0000 (02:30 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134785 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGDecl.cpp

index 5ce7b3374e9dc10f250ba3a43d558774d678313f..3d9691d20a304a97c6ce1cb10f42809ac47e47b5 100644 (file)
@@ -1099,11 +1099,12 @@ void CodeGenFunction::EmitAutoVarCleanups(const AutoVarEmission &emission) {
 
 CodeGenFunction::Destroyer &
 CodeGenFunction::getDestroyer(QualType::DestructionKind kind) {
+  // GCC 4.2 requires the *& on these function references.
   switch (kind) {
   case QualType::DK_none: llvm_unreachable("no destroyer for trivial dtor");
-  case QualType::DK_cxx_destructor: return destroyCXXObject;
-  case QualType::DK_objc_strong_lifetime: return destroyARCStrongPrecise;
-  case QualType::DK_objc_weak_lifetime: return destroyARCWeak;
+  case QualType::DK_cxx_destructor: return *&destroyCXXObject;
+  case QualType::DK_objc_strong_lifetime: return *&destroyARCStrongPrecise;
+  case QualType::DK_objc_weak_lifetime: return *&destroyARCWeak;
   }
 }