Module Name: src
Committed By: joerg
Date: Tue Mar 11 23:52:17 UTC 2014
Modified Files:
src/sys/lib/libunwind: DwarfParser.hpp
Log Message:
0 is a valid LSDA encoding and can be seen in statically linked
programs. Initialize lsdaEncoding to DW_EH_PE_omit and check for that
value to decide whether a value should be decoded.
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/lib/libunwind/DwarfParser.hpp
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/lib/libunwind/DwarfParser.hpp
diff -u src/sys/lib/libunwind/DwarfParser.hpp:1.1 src/sys/lib/libunwind/DwarfParser.hpp:1.2
--- src/sys/lib/libunwind/DwarfParser.hpp:1.1 Mon Oct 14 01:14:57 2013
+++ src/sys/lib/libunwind/DwarfParser.hpp Tue Mar 11 23:52:17 2014
@@ -172,7 +172,7 @@ bool CFI_Parser<A, R>::decodeFDE(A &addr
if (cieInfo->fdesHaveAugmentationData) {
uintptr_t augLen = addressSpace.getULEB128(p, nextCFI);
pint_t endOfAug = p + augLen;
- if (cieInfo->lsdaEncoding != 0) {
+ if (cieInfo->lsdaEncoding != DW_EH_PE_omit) {
// Peek at value (without indirection). Zero means no LSDA.
pint_t lsdaStart = p;
if (addressSpace.getEncodedP(p, nextCFI, cieInfo->lsdaEncoding & 0x0F,
@@ -198,7 +198,7 @@ template <typename A, typename R>
bool CFI_Parser<A, R>::parseCIE(A &addressSpace, pint_t cie,
CIE_Info *cieInfo) {
cieInfo->pointerEncoding = 0;
- cieInfo->lsdaEncoding = 0;
+ cieInfo->lsdaEncoding = DW_EH_PE_omit;
cieInfo->personalityEncoding = 0;
cieInfo->personalityOffsetInCIE = 0;
cieInfo->personality = 0;