Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7956 Discussions

[bug report] find_seq_in_lookup_table: seq_number not found

Mark_L_3
Beginner
569 Views

This code causes icpc 16.0.0 (20150815) to report "Internal error loop:  assertion failed: find_seq_in_lookup_table: seq_number not found (shared/cfe/edgcpfe/il.cc, line 3997)

// Compile with -std=c++11

#include <vector>

struct Value
{
    float m_data;
    Value( ) : m_data(0.f) {}
    Value( const Value& other ) { m_data = other.m_data; }
    Value& operator=( const Value& other ) { m_data = other.m_data; return *this; }
};

template <typename T>
struct Foo
{
    struct Wrapper
    {
        Value m_val { Value() };
    };

    std::vector<Wrapper> m_vec;

    Wrapper& get()
    {
        m_vec.resize(1);
        return m_vec[0];
    }
};

template struct Foo<float>;

 

0 Kudos
2 Replies
Judith_W_Intel
Employee
569 Views

 

Hi,

I confirmed that our fix for DPD200575935 which was reported by another customer has fixed this problem. That fix was made on Dec 7th so it should be in 16.0 update 2 (which should be available shortly).

Sorry for the inconvenience. We don't know of any workaround.

Judy

0 Kudos
Mark_L_3
Beginner
569 Views

Thanks, that's great.  In my case I was able to work around it by moving the nested struct definitions to the enclosing scope.

 

0 Kudos
Reply