Skip to content
Snippets Groups Projects
  • Keno Fischer's avatar
    a86c471a
    [CGDebugInfo] Finalize SubPrograms when we're done with them · a86c471a
    Keno Fischer authored
    `GenerateVarArgsThunk` in `CGVTables` clones a function before the frontend
    is done emitting the compilation unit. Because of the way that DIBuilder
    works, this means that the attached subprogram had incomplete (temporary)
    metadata. Cloning such metadata is semantically disallowed, but happened
    to work anyway due to bugs in the cloning logic. rL304226 attempted to fix
    up that logic, but in the process exposed the incorrect API use here and
    had to be reverted. To be able to fix this, I added a new method to
    DIBuilder in rL304467, to allow finalizing a subprogram independently
    of the entire compilation unit. Use that here, in preparation of re-applying
    rL304226.
    
    Reviewers: aprantl, dblaikie
    Differential Revision: https://reviews.llvm.org/D33705
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@304470 91177308-0d34-0410-b5e6-96231b3b80d8
    a86c471a
    History
    [CGDebugInfo] Finalize SubPrograms when we're done with them
    Keno Fischer authored
    `GenerateVarArgsThunk` in `CGVTables` clones a function before the frontend
    is done emitting the compilation unit. Because of the way that DIBuilder
    works, this means that the attached subprogram had incomplete (temporary)
    metadata. Cloning such metadata is semantically disallowed, but happened
    to work anyway due to bugs in the cloning logic. rL304226 attempted to fix
    up that logic, but in the process exposed the incorrect API use here and
    had to be reverted. To be able to fix this, I added a new method to
    DIBuilder in rL304467, to allow finalizing a subprogram independently
    of the entire compilation unit. Use that here, in preparation of re-applying
    rL304226.
    
    Reviewers: aprantl, dblaikie
    Differential Revision: https://reviews.llvm.org/D33705
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@304470 91177308-0d34-0410-b5e6-96231b3b80d8
Code owners
Assign users and groups as approvers for specific file changes. Learn more.