LLVM invalid debug info in unit finalize/init
## Summary The example unit cannot be debugged when compiled with llvm ## System Information * **Operating system:** Ubuntu 22.04 * **Processor architecture:** x86-64 * **Compiler version:** 3\.3.1 36a2835f8c95290fbd3002700726d4bfb2ac006c LLVM ## Example Project A unit containing: ``` var x: TRTLCriticalSection; initialization x := default(TRTLCriticalSection); InitCriticalSection(x); finalization DoneCriticalsection(x); ``` ## What is the current bug behavior? the entire unit cannot be debugged anymore No breakpoints, no mixed disassembly with source ## What is the expected (correct) behavior? debugging ## Relevant logs and/or screenshots there is an error message during compiling: ``` mismatched subprogram between llvm.dbg.addr variable and !dbg attachment call void @llvm.dbg.addr(metadata %typ.SYSTEM.TRTLCriticalSection* %tmp.1, metadata !48637, metadata !DIExpression()), !dbg !48773 label %0 void ()* @"\01XQUERY_$$_finalize$" !48637 = !DILocalVariable(name: "_zero_$SYSTEM_$$_TRTLCRITICALSECTION", scope: !48635, file: !3, line: 10567, type: !1260) !48635 = distinct !DISubprogram(name: "XQUERY_$$_init$", scope: !3, file: !3, line: 3506, type: !7606, scopeLine: 10504, spFlags: DISPFlagDefinition, unit: !2) !48773 = !DILocation(line: 10570, column: 1, scope: !48772) !48772 = distinct !DISubprogram(name: "XQUERY_$$_finalize$", scope: !3, file: !3, line: 10570, type: !7606, scopeLine: 10570, spFlags: DISPFlagDefinition, unit: !2) warning: ignoring invalid debug info in /home/theo/lib/fpc/x86_64-linux/xquery.ll ```
issue