You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Right now we do ZigLLVMReplaceCompositeType for the DIType of error sets, which means that we have to replace all references to it before we actually use it. Right now we put all the references in an array and then iterate later over this and do the replacements. It's pretty easy to mess up, and there are a few places, involving 0 bit types, where we make copies of the DIType and forget to append to this array.
So a better solution is to make the DIType of types indirect, so that we can replace them and simultaneously update all references.
Search codebase for g->error_di_types.append(&entry->di_type);
Actual best solution, but which requires a lot of rewriting, is not resolving debug info types until after analysis. We'll do this in the self hosted compiler at least, potentially doing the rewrite on the c++ compiler later.
The text was updated successfully, but these errors were encountered:
andrewrk
added
the
bug
Observed behavior contradicts documented or intended behavior
label
Feb 9, 2018
andrewrk
added
stage1
The process of building from source via WebAssembly and the C backend.
and removed
bug
Observed behavior contradicts documented or intended behavior
labels
Aug 27, 2018
Not tested yet, but it builds.
This closes#761, and lays the groundwork for fixing the remaining
false positive "foo depends on itself" bugs, such as #624.
It also lays the groundwork for implementing ability to specify
alignment of fields (#1512).
Not tested yet, but it builds.
This closes#761, and lays the groundwork for fixing the remaining
false positive "foo depends on itself" bugs, such as #624.
It also lays the groundwork for implementing ability to specify
alignment of fields (#1512).
Right now we do ZigLLVMReplaceCompositeType for the DIType of error sets, which means that we have to replace all references to it before we actually use it. Right now we put all the references in an array and then iterate later over this and do the replacements. It's pretty easy to mess up, and there are a few places, involving 0 bit types, where we make copies of the DIType and forget to append to this array.
So a better solution is to make the DIType of types indirect, so that we can replace them and simultaneously update all references.
Search codebase for
g->error_di_types.append(&entry->di_type);
Actual best solution, but which requires a lot of rewriting, is not resolving debug info types until after analysis. We'll do this in the self hosted compiler at least, potentially doing the rewrite on the c++ compiler later.
The text was updated successfully, but these errors were encountered: