[cfe-commits] r134989 - /cfe/trunk/lib/CodeGen/CGBlocks.cpp

Benjamin Kramer benny.kra at googlemail.com
Tue Jul 12 11:38:01 PDT 2011


Fixed in r134995.

On Tue, Jul 12, 2011 at 11:23, Bill Wendling <wendling at apple.com> wrote:
> It looks like we need this for CGExpr.cpp too?
>
> llvm[4]: Compiling CGExpr.cpp for Release+Asserts build
> /Users/void/llvm/llvm-tot.src/tools/clang/lib/CodeGen/CGExpr.cpp: In member function ‘clang::CodeGen::RValue clang::CodeGen::CodeGenFunction::EmitReferenceBindingToExpr(const clang::Expr*, const clang::NamedDecl*)’:
> /Users/void/llvm/llvm-tot.src/tools/clang/lib/CodeGen/CGExpr.cpp:481: error: no matching function for call to ‘clang::CodeGen::CodeGenFunction::pushDestroy(clang::CodeGen::CleanupKind&, llvm::Value*&, clang::QualType&, void (*)(clang::CodeGen::CodeGenFunction&, llvm::Value*, clang::QualType), int)’
> /Users/void/llvm/llvm-tot.src/tools/clang/lib/CodeGen/CodeGenFunction.h:1176: note: candidates are: void clang::CodeGen::CodeGenFunction::pushDestroy(clang::QualType::DestructionKind, llvm::Value*, clang::QualType)
> /Users/void/llvm/llvm-tot.src/tools/clang/lib/CodeGen/CodeGenFunction.h:1178: note:                 void clang::CodeGen::CodeGenFunction::pushDestroy(clang::CodeGen::CleanupKind, llvm::Value*, clang::QualType, void (&)(clang::CodeGen::CodeGenFunction&, llvm::Value*, clang::QualType), bool)
> /Users/void/llvm/llvm-tot.src/tools/clang/lib/CodeGen/CGExpr.cpp:489: error: no matching function for call to ‘clang::CodeGen::CodeGenFunction::pushDestroy(clang::CodeGen::CleanupKind, llvm::Value*&, clang::QualType&, void ()(clang::CodeGen::CodeGenFunction&, llvm::Value*, clang::QualType), bool)’
> /Users/void/llvm/llvm-tot.src/tools/clang/lib/CodeGen/CodeGenFunction.h:1176: note: candidates are: void clang::CodeGen::CodeGenFunction::pushDestroy(clang::QualType::DestructionKind, llvm::Value*, clang::QualType)
> /Users/void/llvm/llvm-tot.src/tools/clang/lib/CodeGen/CodeGenFunction.h:1178: note:                 void clang::CodeGen::CodeGenFunction::pushDestroy(clang::CodeGen::CleanupKind, llvm::Value*, clang::QualType, void (&)(clang::CodeGen::CodeGenFunction&, llvm::Value*, clang::QualType), bool)
>
> -bw
>
>
> On Jul 12, 2011, at 9:53 AM, John McCall wrote:
>
>> Author: rjmccall
>> Date: Tue Jul 12 11:53:04 2011
>> New Revision: 134989
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=134989&view=rev
>> Log:
>> Ugh, use this compiler workaround again.
>>
>>
>> Modified:
>>    cfe/trunk/lib/CodeGen/CGBlocks.cpp
>>
>> Modified: cfe/trunk/lib/CodeGen/CGBlocks.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGBlocks.cpp?rev=134989&r1=134988&r2=134989&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/CodeGen/CGBlocks.cpp (original)
>> +++ cfe/trunk/lib/CodeGen/CGBlocks.cpp Tue Jul 12 11:53:04 2011
>> @@ -633,11 +633,13 @@
>>
>>       // Block captures count as local values and have imprecise semantics.
>>       // They also can't be arrays, so need to worry about that.
>> -      case QualType::DK_objc_strong_lifetime:
>> +      case QualType::DK_objc_strong_lifetime: {
>> +        // This local is a GCC and MSVC compiler workaround.
>> +        Destroyer *destroyer = &destroyARCStrongImprecise;
>>         pushDestroy(getCleanupKind(dtorKind), blockField, type,
>> -                    destroyARCStrongImprecise,
>> -                    /*useEHCleanupForArray*/ false);
>> +                    *destroyer, /*useEHCleanupForArray*/ false);
>>         break;
>> +      }
>>
>>       case QualType::DK_objc_weak_lifetime:
>>       case QualType::DK_cxx_destructor:
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>




More information about the cfe-commits mailing list