[llvm] r335897 - [Debugify] Do not report line 0 locations as errors

via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 2 08:25:36 PDT 2018



> -----Original Message-----
> From: llvm-commits [mailto:llvm-commits-bounces at lists.llvm.org] On Behalf
> Of Vedant Kumar via llvm-commits
> Sent: Thursday, June 28, 2018 2:21 PM
> To: llvm-commits at lists.llvm.org
> Subject: [llvm] r335897 - [Debugify] Do not report line 0 locations as
> errors
> 
> Author: vedantk
> Date: Thu Jun 28 11:21:11 2018
> New Revision: 335897
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=335897&view=rev
> Log:
> [Debugify] Do not report line 0 locations as errors
> 
> The checking logic should not treat artificial locations as being
> somehow problematic. Producing these locations can be the desired
> behavior of some passes.
> 
> See llvm.org/PR37961.
> 
> Added:
>     llvm/trunk/test/DebugInfo/debugify-report-missing-locs-only.ll
> Modified:
>     llvm/trunk/tools/opt/Debugify.cpp
> 
> Added: llvm/trunk/test/DebugInfo/debugify-report-missing-locs-only.ll
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/test/DebugInfo/debugify-report-missing-locs-
> only.ll?rev=335897&view=auto
> ==========================================================================
> ====
> --- llvm/trunk/test/DebugInfo/debugify-report-missing-locs-only.ll (added)
> +++ llvm/trunk/test/DebugInfo/debugify-report-missing-locs-only.ll Thu Jun
> 28 11:21:11 2018
> @@ -0,0 +1,31 @@
> +; RUN: opt -check-debugify < %s -S -o - 2>&1 | FileCheck %s
> +
> +; CHECK: ERROR: Instruction with empty DebugLoc in function foo --   ret
> void
> +define void @foo() !dbg !6 {
> +  ret void
> +}
> +

Please put a CHECK-LABEL before the CHECK-NOT so we can be sure the two
checks are looking at the correct functions.
Thanks,
--paulr

> +; CHECK-NOT: ERROR: Instruction with empty DebugLoc in function bar
> +define i32 @bar() !dbg !9 {
> +  ret i32 0, !dbg !15
> +}
> +
> +declare void @llvm.dbg.value(metadata, metadata, metadata)
> +
> +!llvm.dbg.cu = !{!0}
> +!llvm.debugify = !{!3, !4}
> +!llvm.module.flags = !{!5}
> +
> +!0 = distinct !DICompileUnit(language: DW_LANG_C, file: !1, producer:
> "debugify", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug,
> enums: !2)
> +!1 = !DIFile(filename: "void", directory: "/")
> +!2 = !{}
> +!3 = !{i32 6}
> +!4 = !{i32 1}
> +!5 = !{i32 2, !"Debug Info Version", i32 3}
> +!6 = distinct !DISubprogram(name: "foo", linkageName: "foo", scope: null,
> file: !1, line: 1, type: !7, isLocal: false, isDefinition: true,
> scopeLine: 1, isOptimized: true, unit: !0, retainedNodes: !2)
> +!7 = !DISubroutineType(types: !2)
> +!9 = distinct !DISubprogram(name: "bar", linkageName: "bar", scope: null,
> file: !1, line: 2, type: !7, isLocal: false, isDefinition: true,
> scopeLine: 2, isOptimized: true, unit: !0, retainedNodes: !10)
> +!10 = !{!11}
> +!11 = !DILocalVariable(name: "1", scope: !9, file: !1, line: 3, type:
> !12)
> +!12 = !DIBasicType(name: "ty32", size: 32, encoding: DW_ATE_unsigned)
> +!15 = !DILocation(line: 0, column: 1, scope: !9)
> 
> Modified: llvm/trunk/tools/opt/Debugify.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/tools/opt/Debugify.cpp?rev=335897&r1=335896&r2=335897&v
> iew=diff
> ==========================================================================
> ====
> --- llvm/trunk/tools/opt/Debugify.cpp (original)
> +++ llvm/trunk/tools/opt/Debugify.cpp Thu Jun 28 11:21:11 2018
> @@ -237,11 +237,13 @@ bool checkDebugifyMetadata(Module &M,
>          continue;
>        }
> 
> -      dbg() << "ERROR: Instruction with empty DebugLoc in function ";
> -      dbg() << F.getName() << " --";
> -      I.print(dbg());
> -      dbg() << "\n";
> -      HasErrors = true;
> +      if (!DL) {
> +        dbg() << "ERROR: Instruction with empty DebugLoc in function ";
> +        dbg() << F.getName() << " --";
> +        I.print(dbg());
> +        dbg() << "\n";
> +        HasErrors = true;
> +      }
>      }
> 
>      // Find missing variables and mis-sized debug values.
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits


More information about the llvm-commits mailing list