[llvm] r228567 - [Orc] Tweak lambda capture lists to try to avoid an ICE on gcc-4.7.2. NFC.

Lang Hames lhames at gmail.com
Sun Feb 8 23:22:56 PST 2015


Author: lhames
Date: Mon Feb  9 01:22:56 2015
New Revision: 228567

URL: http://llvm.org/viewvc/llvm-project?rev=228567&view=rev
Log:
[Orc] Tweak lambda capture lists to try to avoid an ICE on gcc-4.7.2. NFC.

Apparently gcc-4.7.2 is touchy about 'this' appearing in a lambda capture list
along with other captures. I've rewritten my captures to try to avoid the issue.

Modified:
    llvm/trunk/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h
    llvm/trunk/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h

Modified: llvm/trunk/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h?rev=228567&r1=228566&r2=228567&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h (original)
+++ llvm/trunk/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h Mon Feb  9 01:22:56 2015
@@ -44,7 +44,7 @@ private:
       case NotEmitted:
         if (provides(Name, ExportedSymbolsOnly))
           return JITSymbol(
-              [this,ExportedSymbolsOnly,Name,&B]() -> TargetAddress {
+              [=,&B]() -> TargetAddress {
                 if (EmitState == Emitting)
                   return 0;
                 else if (EmitState != Emitted) {

Modified: llvm/trunk/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h?rev=228567&r1=228566&r2=228567&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h (original)
+++ llvm/trunk/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h Mon Feb  9 01:22:56 2015
@@ -221,7 +221,7 @@ public:
                          bool ExportedSymbolsOnly) {
     if (auto Addr = H->getSymbolAddress(Name, ExportedSymbolsOnly))
       return JITSymbol(
-        [this, Addr, H](){
+        [=](){
           if (H->NeedsFinalization()) {
             H->Finalize();
             if (NotifyFinalized)





More information about the llvm-commits mailing list