From d3bd97a97d8aa1eea6153b6bf39bc5a10ee0a981 Mon Sep 17 00:00:00 2001 From: Rui Ueyama Date: Tue, 9 Feb 2016 23:11:21 +0000 Subject: [PATCH] Rangefy, and replace a switch with `if`s. NFC. llvm-svn: 260320 --- lld/ELF/OutputSections.cpp | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/lld/ELF/OutputSections.cpp b/lld/ELF/OutputSections.cpp index 936c00e90af5e..92e6c9ba1f572 100644 --- a/lld/ELF/OutputSections.cpp +++ b/lld/ELF/OutputSections.cpp @@ -943,21 +943,20 @@ uint8_t EHOutputSection::getFdeEncoding(ArrayRef D) { // We only care about an 'R' value, but other records may precede an 'R' // record. Records are not in TLV (type-length-value) format, so we need // to teach the linker how to skip records for each type. - for (; !Aug.empty(); Aug = Aug.substr(1)) { - switch (Aug[0]) { - case 'z': - skipLeb128(D); - break; - case 'R': + for (char C : Aug) { + if (C == 'R') return readByte(D); - case 'P': + if (C == 'z') { + skipLeb128(D); + continue; + } + if (C == 'P') { skipAugP(D); - break; - case 'L': - break; - default: - fatal("unknown .eh_frame augmentation string: " + Aug); + continue; } + if (C == 'L') + continue; + fatal("unknown .eh_frame augmentation string: " + Aug); } return DW_EH_PE_absptr; }