-
-
Notifications
You must be signed in to change notification settings - Fork 261
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
assertions triggered during runtime build with trunk llvm #607
Comments
plus compiler options for both
But it's also triggered without those. /d2Zi+ really makes a difference for debugging the release exe though. |
|
I can reproduce the assertion. I'll fix this soon as VS2012 is my primary development tool. |
Also the one that only happens in release mode? |
Yes. It also happens on Linux. Not fixing this would be a release blocker once LLVM 3.5 is released. |
Ok good. Also seems to happen with the 3.4 llvm branch. |
Hm. This is a bit surprising. |
The commit should correct the debug build issue. |
With the 3.4 branch I get the following before and after the patch:
|
My fix applies only for LLVM 3.5 and generating debug output. I still investigate the 3.4 branch failure. |
I could not reproduce the assertion failure with LLVM 3.4 using a release build with assertions on mingw. I now try a MSVC build. Could it be a MSVC problem only? |
Ok, I now get the failure in |
No clue either. Even with d2Zi+ the debug info is still too inconclusive. |
module std.algorithm;
import std.functional, std.range, std.utf;
bool startsWith(alias pred = "a == b", R, E)(R doesThisStart, E withThis)
{
return doesThisStart.empty
? false
: binaryFun!pred(doesThisStart.front, withThis);
}
uint endsWith()()
{
}
int cmp()()
{
}
|
Back on 3.5 trunk now. Had to remove the stdint.h in vcbuild btw to fix the build. Seems like even a module with 'int ff;' leads to one of the assertions.
|
Just tried with the 2.065 branch again, llvm trunk, debug.
It treats JumpInstrTables like a FunctionPass and passes a Function instead of a Module cause There are more module passes in the list. Coming from Target.addPassesToEmitFile in codegenModule. |
Nice analysis. Any chance that you provide a pull request to fix it? |
It seems to fix something but at least in release mode there are still various issues. |
The change to AtomicCmpXchgInst is now fixed, too. |
Nice currently looking into the assertion in stacktrace:263.
Basically it's |
I think it is a problem in ldc - the pointer is not dereferenced. I constructed this small test case:
|
@redstar: The problem seems to be that the LLVM type of _foo.bar.ptr is |
Oh boy FINALLY found out what the heck is going on in release mode: Now it's just compile errors remaining: #651 |
Swap alias initializer syntax to make core.time aliases easier to find.
As I already reported in this thread I run into llvm assertions when it compiles druntime and phobos.
trunk llvm, 2.064 branch, EH patch, VS2013
In Debug mode:
Generating std/algorithm-debug.obj
Assertion failed: !N->getContext().pImpl->MDNodeSet.RemoveNode(N)
&& "Deleting a non-temporary uniqued node!", file
......\lib\IR\Metadata.cpp, line 296
In Release also:
Generating src/core/atomic.obj
Assertion failed: List && "Handle list is null?", file
......\lib\IR\Value.cpp, line 528
The text was updated successfully, but these errors were encountered: