On Fri, Jul 8, 2011 at 10:30 PM, John McCall <[email protected]> wrote:
> Author: rjmccall
> Date: Fri Jul  8 21:30:03 2011
> New Revision: 134785
>
> URL: http://llvm.org/viewvc/llvm-project?rev=134785&view=rev
> Log:
> GCC 4.2 compatibility hack.
>
>
> Modified:
>    cfe/trunk/lib/CodeGen/CGDecl.cpp
>
> Modified: cfe/trunk/lib/CodeGen/CGDecl.cpp
> URL: 
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDecl.cpp?rev=134785&r1=134784&r2=134785&view=diff
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGDecl.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGDecl.cpp Fri Jul  8 21:30:03 2011
> @@ -1099,11 +1099,12 @@
>
>  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;
>   }

MSVC doesn't like this hack:

38>CGDecl.cpp(1105): error C2276: '*' : illegal operation on bound
member function expression
38>CGDecl.cpp(1106): error C2276: '*' : illegal operation on bound
member function expression
38>CGDecl.cpp(1107): error C2276: '*' : illegal operation on bound
member function expression

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to