Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
447 Views

Internal error: assertion failed at "shared/cfe/edgcpfe/lower_il.c"

Jump to solution

We have the following problem which occurs with 19.0.5.281 and 19.1.1.217 on Linux. No issues with GCC 9.1, 9.2, 9.3, 10, Clang7.1/9.1 or PGI-19-10.

Internal error: assertion failed at: "shared/cfe/edgcpfe/lower_il.c", line 11913

struct make_shared_enabler: public table {

compilation aborted ... (code 4)

Compiler flags:

It fails with both:

#default

-Wall -Werror -std=c++14 -fopenmp

#production

-O2 -fp-model consistent -fimf-arch-consistency=true 

#debug

-O0 -g

 

Code:

std::shared_ptr<table> make_table(){

  struct make_shared_enabler : public table {

    make_shared_enabler() = default;

};

return std::make_shared<make_shared_enabler>();

}

0 Kudos

Accepted Solutions
Highlighted
Moderator
376 Views

Thanks for the test case. I've reported this problem to our Front End team.

 

View solution in original post

0 Kudos
7 Replies
Highlighted
Moderator
447 Views

Hi,

Thank you for reporting the issue, will you please send a small reproducer of it so that we can reproduce it at our end.

We tried your provided code snippet but it didn't get us any errors on both 19.0.5.281 and 19.1.1.217. So please share with us a small reproducer.

 

Warm Regards,

Abhishek

 

 

0 Kudos
Highlighted
447 Views

We currently don't have a small reproducing example. I will investigate further.

The snippet is from https://github.com/skystrife/cpptoml but I have not tried if the examples fail. Our software compilation fails due to our usage of the mentioned library. 

0 Kudos
Highlighted
435 Views

Hi,

I was not able to get find a minimal example. The following workaround works:

#if defined(CONF_INTEL_COMPILER)
class make_shared_enabler: public table{
public:
make_shared_enabler() = default;
};
#endif

std::shared_ptr<table> make_table () {
#if not defined(CONF_INTEL_COMPILER)
struct make_shared_enabler : public table {
make_shared_enabler () = default;
};
#endif

return std::make_shared<make_shared_enabler>();
}

 

The workaround doesnot compile with GCC.

 

Tags (1)
0 Kudos
Highlighted
Moderator
414 Views

Hi,

Glad to know that your workaround worked.

Please give us details of the architecture which you are using. Because we are not getting the errors that you are getting while executing your code snippet.

If possible also give us a small reproducer to reproduce this error from our side. It will help us to report it as a bug if we can reproduce it.



Warm Regards,

Abhishek


0 Kudos
Highlighted
Moderator
401 Views

Can you find out what source file that compiler throws this error, then create a preprocess file and provide it to us for investigation?


0 Kudos
Highlighted
383 Views

Attached is the preprocessed file.

Tags (1)
0 Kudos
Highlighted
Moderator
377 Views

Thanks for the test case. I've reported this problem to our Front End team.

 

View solution in original post

0 Kudos