[llvm] r314426 - [dwarfdump] Verify that CUs have a unit DIE.

Robinson, Paul via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 29 13:57:57 PDT 2017



> -----Original Message-----
> From: llvm-commits [mailto:llvm-commits-bounces at lists.llvm.org] On Behalf
> Of Jonas Devlieghere via llvm-commits
> Sent: Thursday, September 28, 2017 8:58 AM
> To: llvm-commits at lists.llvm.org
> Subject: [llvm] r314426 - [dwarfdump] Verify that CUs have a unit DIE.
> 
> Author: jdevlieghere
> Date: Thu Sep 28 08:57:50 2017
> New Revision: 314426
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=314426&view=rev
> Log:
> [dwarfdump] Verify that CUs have a unit DIE.
> 
> This patch adds a check to the DWARF verifier to detect CUs without a
> unit DIE.
> 
> Differential revision: https://reviews.llvm.org/D38363
> 
> Added:
>     llvm/trunk/test/tools/llvm-dwarfdump/X86/empty-CU.s
> Modified:
>     llvm/trunk/lib/DebugInfo/DWARF/DWARFVerifier.cpp
> 
> Modified: llvm/trunk/lib/DebugInfo/DWARF/DWARFVerifier.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/lib/DebugInfo/DWARF/DWARFVerifier.cpp?rev=314426&r1=314
> 425&r2=314426&view=diff
> ==========================================================================
> ====
> --- llvm/trunk/lib/DebugInfo/DWARF/DWARFVerifier.cpp (original)
> +++ llvm/trunk/lib/DebugInfo/DWARF/DWARFVerifier.cpp Thu Sep 28 08:57:50
> 2017
> @@ -179,9 +179,14 @@ bool DWARFVerifier::verifyUnitContents(D
>      }
>    }
> 
> -  DieRangeInfo RI;
> -  DWARFDie Die = Unit.getUnitDIE(/* ExtractUnitDIEOnly = */ false);
> -  NumUnitErrors += verifyDieRanges(Die, RI);
> +  if (DWARFDie Die = Unit.getUnitDIE(/* ExtractUnitDIEOnly = */ false)) {
> +    DieRangeInfo RI;
> +    NumUnitErrors += verifyDieRanges(Die, RI);
> +  } else {
> +    OS << "error: Compilation unit without unit DIE.\n";
> +    NumUnitErrors++;
> +  }
> +
>    return NumUnitErrors == 0;
>  }
> 
> 
> Added: llvm/trunk/test/tools/llvm-dwarfdump/X86/empty-CU.s
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-
> dwarfdump/X86/empty-CU.s?rev=314426&view=auto
> ==========================================================================
> ====
> --- llvm/trunk/test/tools/llvm-dwarfdump/X86/empty-CU.s (added)
> +++ llvm/trunk/test/tools/llvm-dwarfdump/X86/empty-CU.s Thu Sep 28
> 08:57:50 2017
> @@ -0,0 +1,21 @@
> +# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \
> +# RUN: | not llvm-dwarfdump --verify --debug-info - \
> +# RUN: | FileCheck %s
> +# CHECK: error: Compilation unit without unit DIE.
> +
> +        .section        __DWARF,__debug_info,regular,debug
> +.long 8  # CU length
> +.short 3 # Version
> +.long 0  # Abbrev offset
> +.byte 4  # AddrSize
> +.byte 1  # Abbrev 1
> +.long 7  # Unit lengthh...

"lengthh..." ?

> +.short 3
> +.long 0
> +.byte 4
> +        .section        __DWARF,__debug_abbrev,regular,debug
> +.byte 1    # Abbrev code
> +.byte 0x11 # TAG_compile_unit
> +.byte 0    # no children
> +.byte 0    # no attributes
> +.byte 0
> 
> 
> _______________________________________________
> 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