Displaying 4 results from an estimated 4 matches for "idispatchvmt".
Did you mean:
idispatch_vmt
2018 Mar 21
3
lld/lto/win32 crash on DIE code
...urce")
!4 = !{}
!5 = !{!0, !6, !620, !635, !637, !639, !660, !669, !671, !673, !675,
!680, !682, !684}
!6 = !DIGlobalVariableExpression(var: !7, expr: !DIExpression())
!7 = !DIGlobalVariable(name: "IDispatch_VMT", linkageName:
"f_t2b_RemObjects_d_Elements_d_System_d_____Global.IDispatchVMT", scope:
!2, file: !3, type: !8, isLocal: false, isDefinition: true)
It still crashes. Same callstack.
Note that all these .o files individually compile file, it's only when I
let the linker lto-merge them things go wrong for me.
(updated https://www.dropbox.com/s/n3e2eystps9qvwx/repr...
2018 Mar 21
0
lld/lto/win32 crash on DIE code
...source")
!4 = !{}
!5 = !{!0, !6, !620, !635, !637, !639, !660, !669, !671, !673, !675,
!680, !682, !684}
!6 = !DIGlobalVariableExpression(var: !7, expr: !DIExpression())
!7 = !DIGlobalVariable(name: "IDispatch_VMT", linkageName:
"f_t2b_RemObjects_d_Elements_d_System_d_____Global.IDispatchVMT", scope:
!2, file: !3, type: !8, isLocal: false, isDefinition: true)
It still crashes. Same callstack.
Note that all these .o files individually compile file, it's only when I
let the linker lto-merge them things go wrong for me.
(updated https://www.dropbox.com/s/n3e2eystps9qvwx/repro....
2018 Mar 21
0
lld/lto/win32 crash on DIE code
Ok, I've done a bit more investigation. I found the module which declares broken DIE
(e54b3dc8c0536e29a65f8548b5ae7958-Global.o) and here is what I found there:
!2 = !DIFile(filename: "island.windows.elements", ...
...
!4 = distinct !DICompileUnit(language: DW_LANG_C99, file: !5, ...
!5 = !DIFile(filename: "island.windows.elements-e54b3dc8c0536e29a65f8548b5ae7958-global",
2018 Mar 21
2
lld/lto/win32 crash on DIE code
Op 21-3-2018 om 10:28 schreef Evgeny Leviant:
> It looks the problem lies in how your compiler generates debug info. LLVM doesn't
> expect DIDerivedType scope to be an instance of DICompileUnit. Here is a quick fix:
>
> DIE *DwarfUnit::getOrCreateContextDIE(const DIScope *Context) {
> - if (!Context || isa<DIFile>(Context))
> + if (!Context ||