mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
AsmParser: Use do{}while(false) in macros, NFC
`do { ... } while (false)` is standard macro etiquette for forcing instantiations into a single statement and requiring a `;` afterwards, making statement-like macros easier to reason about (and harder to use incorrectly). I'm about to modify the macros in `LexIdentifier()`. I noticed that the `KEYWORD` macro *does* follow the rule, so I thought I'd clean up the other macros to match (otherwise might not be worth changing, since the benefits of this pattern are fairly irrelevant here). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230095 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
74c45a19e3
commit
efcb266311
@ -668,9 +668,13 @@ lltok::Kind LLLexer::LexIdentifier() {
|
||||
#undef KEYWORD
|
||||
|
||||
// Keywords for types.
|
||||
#define TYPEKEYWORD(STR, LLVMTY) \
|
||||
if (Len == strlen(STR) && !memcmp(StartChar, STR, strlen(STR))) { \
|
||||
TyVal = LLVMTY; return lltok::Type; }
|
||||
#define TYPEKEYWORD(STR, LLVMTY) \
|
||||
do { \
|
||||
if (Len == strlen(STR) && !memcmp(StartChar, STR, strlen(STR))) { \
|
||||
TyVal = LLVMTY; \
|
||||
return lltok::Type; \
|
||||
} \
|
||||
} while (false)
|
||||
TYPEKEYWORD("void", Type::getVoidTy(Context));
|
||||
TYPEKEYWORD("half", Type::getHalfTy(Context));
|
||||
TYPEKEYWORD("float", Type::getFloatTy(Context));
|
||||
@ -684,9 +688,13 @@ lltok::Kind LLLexer::LexIdentifier() {
|
||||
#undef TYPEKEYWORD
|
||||
|
||||
// Keywords for instructions.
|
||||
#define INSTKEYWORD(STR, Enum) \
|
||||
if (Len == strlen(#STR) && !memcmp(StartChar, #STR, strlen(#STR))) { \
|
||||
UIntVal = Instruction::Enum; return lltok::kw_##STR; }
|
||||
#define INSTKEYWORD(STR, Enum) \
|
||||
do { \
|
||||
if (Len == strlen(#STR) && !memcmp(StartChar, #STR, strlen(#STR))) { \
|
||||
UIntVal = Instruction::Enum; \
|
||||
return lltok::kw_##STR; \
|
||||
} \
|
||||
} while (false)
|
||||
|
||||
INSTKEYWORD(add, Add); INSTKEYWORD(fadd, FAdd);
|
||||
INSTKEYWORD(sub, Sub); INSTKEYWORD(fsub, FSub);
|
||||
@ -739,11 +747,13 @@ lltok::Kind LLLexer::LexIdentifier() {
|
||||
#undef INSTKEYWORD
|
||||
|
||||
#define DWKEYWORD(TYPE, TOKEN) \
|
||||
if (Len >= strlen("DW_" #TYPE "_") && \
|
||||
!memcmp(StartChar, "DW_" #TYPE "_", strlen("DW_" #TYPE "_"))) { \
|
||||
StrVal.assign(StartChar, CurPtr); \
|
||||
return lltok::TOKEN; \
|
||||
}
|
||||
do { \
|
||||
if (Len >= strlen("DW_" #TYPE "_") && \
|
||||
!memcmp(StartChar, "DW_" #TYPE "_", strlen("DW_" #TYPE "_"))) { \
|
||||
StrVal.assign(StartChar, CurPtr); \
|
||||
return lltok::TOKEN; \
|
||||
} \
|
||||
} while (false)
|
||||
DWKEYWORD(TAG, DwarfTag);
|
||||
DWKEYWORD(ATE, DwarfAttEncoding);
|
||||
DWKEYWORD(VIRTUALITY, DwarfVirtuality);
|
||||
|
Loading…
Reference in New Issue
Block a user