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
VarDecl::checkInitIsIce() !Init->isValueDependent Assertion failure #26508
Comments
In the FreeBSD ports tree, we are running into the same assertion, during building of the sfcgal port: cd /wrkdirs/usr/ports/databases/sfcgal/work/SFCGAL-1.1.0/src && /usr/bin/c++ -DBOOST_ALL_DYN_LINK -DBOOST_ALL_NO_LIB -DCGAL_INTERSECTION_VERSION=1 -DSFCGAL_BUILD_SHARED -DSFCGAL_EXPORTS -I/wrkdirs/usr/ports/databases/sfcgal/work/SFCGAL-1.1.0/include -I/wrkdirs/usr/ports/databases/sfcgal/work/SFCGAL-1.1.0/patches/CGAL-4.3 -isystem /usr/local/include -O2 -pipe -fstack-protector -fno-strict-aliasing -O2 -pipe -fstack-protector -fno-strict-aliasing -fPIC -o CMakeFiles/SFCGAL.dir/algorithm/connection.cpp.o -c /wrkdirs/usr/ports/databases/sfcgal/work/SFCGAL-1.1.0/src/algorithm/connection.cpp Etc. I am attempting to minimize the test case, but I assume it look similar to your example, which also results in the same assertion for me, both with the 3.8 release branch, and with trunk r257999. [1] http://package18.nyi.freebsd.org/data/headamd64#206074 -default/2016-01-15_15h26m58s/logs/errors/sfcgal-1.1.0.log |
Bisection shows that this problem has been introduced with r253590 ("Change the expression evaluation context from Unevaluated to ConstantEvaluated while substituting into non-type template argument defaults") by Faisal Vali. Since the commit message says there should be no functionality change, maybe this is something latent that was now exposed by the change? Or is it really caused by the change itself? Faisal or Richard, any comments? |
Hmm - I'll take a look at it later today - thanks for looping me in - sorry about this. |
Backtrace: #0 0x0000000807aeab3a in thr_kill () from /lib/libc.so.7 In frame 4, local variables 'Eval' and 'Init' variable look like this: (gdb) frame 4 |
Should be fixed by r258110 Let me know if something else emerges related to this. |
Thanks Faisal. I can confirm that r258110 fixes both the test case from saugustine@google.com, and my test case. This change should be merged to the 3.8 branch, I will notify Hans Wennborg. |
*** Bug llvm/llvm-bugzilla-archive#37247 has been marked as a duplicate of this bug. *** |
mentioned in issue llvm/llvm-bugzilla-archive#37247 |
Extended Description
This looks quite similar to these bugs, but they have been marked fixed for a while. So this is either a regression, or a new code path.
https://llvm.org/bugs/show_bug.cgi?id=13988
https://llvm.org/bugs/show_bug.cgi?id=14615
The following code and command line results in an assertion failure at inside a debug copy of trunk:
clang++ orig.ii -std=gnu++11
template<typename GebpKernel, bool UseRotatingKernel = GebpKernel::UseRotatingKernel>
struct PossiblyRotatingKernelHelper {};
template struct gebp_kernel {
void f() { PossiblyRotatingKernelHelper<gebp_kernel> possiblyRotatingKernelHelper; }
static const bool UseRotatingKernel = B;
};
clang-3.8: /usr/local/google/home/saugustine/llvm/llvm/tools/clang/lib/AST/Decl.cpp:2181: bool clang::VarDecl::checkInitIsICE() const: Assertion `!Init->isValueDependent()' failed.
....
Incidentally, if I comment out this assertion, an identical one fires very soon after, and if I comment out that one, another identical one fires very soon after.
The text was updated successfully, but these errors were encountered: