New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Test matrix_free/fe_q_iso_q1_01 segfaults with clang-16 when linked against libc++ in debug mode #15496
Comments
For reference, the code is here (line 143): I think you'll have to run this in a debugger and poke around the various variables to see what's happening here. |
I investigated the problem and realized the following:
I tend to believe that this must be a compiler bug, because the compiler cannot make assumptions on the prior content of |
Note that the result of the upper lane, which contains |
@kronbichler I will add the flag to the debug variant when compiling with clang. |
We have to ensure that we emit floating-point instructions in debug mode that preserve the occurence of floating-point exceptions and don't introduce new ones. gcc plays nicely in this regard by enabling `-mfp-exceptions`, at least for the level of optimization we have in debug mode. clang however is more aggressive and assumes that it can optimize code disregarding precise floating-point exception semantics. We thus set `-ffp-exceptions-behavior=strict` in debug mode to ensure that our testsuite doesn't run into false positive floating-point exceptions. See dealii#15496
We have to ensure that we emit floating-point instructions in debug mode that preserve the occurence of floating-point exceptions and don't introduce new ones. gcc plays nicely in this regard by enabling `-mfp-exceptions`, at least for the level of optimization we have in debug mode. clang however is more aggressive and assumes that it can optimize code disregarding precise floating-point exception semantics. We thus set `-ffp-exceptions-behavior=strict` in debug mode to ensure that our testsuite doesn't run into false positive floating-point exceptions. See dealii#15496
We have to ensure that we emit floating-point instructions in debug mode that preserve the occurence of floating-point exceptions and don't introduce new ones. gcc plays nicely in this regard by enabling `-ftrapping-math` per default, at least for the level of optimization we have in debug mode. clang however is more aggressive and assumes that it can optimize code disregarding precise floating-point exception semantics. We thus set `-ffp-exceptions-behavior=strict` in debug mode to ensure that our testsuite doesn't run into false positive floating-point exceptions. See dealii#15496
We have to ensure that we emit floating-point instructions in debug mode that preserve the occurence of floating-point exceptions and don't introduce new ones. gcc plays nicely in this regard by enabling `-ftrapping-math` per default, at least for the level of optimization we have in debug mode. clang however is more aggressive and assumes that it can optimize code disregarding precise floating-point exception semantics. We thus set `-ffp-exceptions-behavior=strict` in debug mode to ensure that our testsuite doesn't run into false positive floating-point exceptions. See dealii#15496
We have to ensure that we emit floating-point instructions in debug mode that preserve the occurence of floating-point exceptions and don't introduce new ones. gcc plays nicely in this regard by enabling `-ftrapping-math` per default, at least for the level of optimization we have in debug mode. clang however is more aggressive and assumes that it can optimize code disregarding precise floating-point exception semantics. We thus set `-ffp-exceptions-behavior=strict` in debug mode to ensure that our testsuite doesn't run into false positive floating-point exceptions. See dealii#15496
We have to ensure that we emit floating-point instructions in debug mode that preserve the occurence of floating-point exceptions and don't introduce new ones. gcc plays nicely in this regard by enabling `-ftrapping-math` per default, at least for the level of optimization we have in debug mode. clang however is more aggressive and assumes that it can optimize code disregarding precise floating-point exception semantics. We thus set `-ffp-exceptions-behavior=strict` in debug mode to ensure that our testsuite doesn't run into false positive floating-point exceptions. See dealii#15496
I have no idea what to make out of this segfault with clang-16 in debug mode:
The test passes for all other compilers and test configurations. Also, the corresponding release-variant passes on all configurations.
In reference to #15383
The text was updated successfully, but these errors were encountered: