http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55538



             Bug #: 55538

           Summary: [C++11] ICE when calling a member function from lambda

                    in templated class; in get_expr_operands, at

                    tree-ssa-operands.c:1035

    Classification: Unclassified

           Product: gcc

           Version: 4.7.2

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: c++

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: etlverif...@gmail.com





Input:

------

#include <functional>



struct IBar

{

    virtual void runLambda(const std::function<void ()>& func) const = 0;

};



template<bool x>

struct Foo

{

    void test(IBar* b)

    {

        b->runLambda([this]() { onTest(); });

    }



    void onTest() {}

};



int main(int argc, char** argv)

{

    Foo<true> f;

    f.test(nullptr);



    return 0;

}



Output:

-------

test.cpp: In lambda function:

test.cpp:25:1: internal compiler error: in get_expr_operands, at

tree-ssa-operands.c:1035

Reply via email to