How to handle debug information not in source/How do I handle the error 'inlinable function call in a function with debug info must have a !dbg location'

I’m having an issue with the error “inlinable function call in a function with debug info must have a !dbg location”

My language will automatically call a destructor for you. LLVM is forcing me to use give it debug information. I try to with DILocation however scope is mandatory field. However since the destructor is generated it doesn’t exist in source. So when I try making DISubprogram for the scope I need to give it invalid lines.

What’s the best way to handle debugging information that doesn’t exist in source?

+llvm-dev, Adrian
bcc:cfe-users

+llvm-dev, Adrian
bcc:cfe-users

I'm having an issue with the error "inlinable function call in a function with debug info must have a !dbg location"

My language will automatically call a destructor for you. LLVM is forcing me to use give it debug information. I try to with DILocation however scope is mandatory field. However since the destructor is generated it doesn't exist in source. So when I try making DISubprogram for the scope I need to give it invalid lines.

What's the best way to handle debugging information that doesn't exist in source?

DWARF reserves line number 0 for exactly this purpose. You can check out how/when clang uses ApplyDebugLocation::CreateArtificial() for some examples.

-- adrian