forked from OSchip/llvm-project
7cd441ff53
Wraps the expansions of TYPE_SWITCH and COMPOSITE_TYPE_SWITCH in the constexpr interpreter with "do { ... } while (0)" so that these macros can be used like this: if (llvm::Optional<PrimType> T = Ctx.classify(FieldTy)) TYPE_SWITCH(*T, Ok &= ReturnValue<T>(FP.deref<T>(), Value)); else Ok &= Composite(FieldTy, FP, Value); This bug was found while testing D116316. See also review comment: https://reviews.llvm.org/D64146?id=208520#inline-584131 Also cleaned up the macro definitions by removing the superfluous do-while statements and removed the unused INT_TPYE_SWITCH macro. Differential Revision: https://reviews.llvm.org/D117301 |
||
---|---|---|
.. | ||
Boolean.h | ||
ByteCodeEmitter.cpp | ||
ByteCodeEmitter.h | ||
ByteCodeExprGen.cpp | ||
ByteCodeExprGen.h | ||
ByteCodeGenError.cpp | ||
ByteCodeGenError.h | ||
ByteCodeStmtGen.cpp | ||
ByteCodeStmtGen.h | ||
Context.cpp | ||
Context.h | ||
Descriptor.cpp | ||
Descriptor.h | ||
Disasm.cpp | ||
EvalEmitter.cpp | ||
EvalEmitter.h | ||
Frame.cpp | ||
Frame.h | ||
Function.cpp | ||
Function.h | ||
Integral.h | ||
Interp.cpp | ||
Interp.h | ||
InterpBlock.cpp | ||
InterpBlock.h | ||
InterpFrame.cpp | ||
InterpFrame.h | ||
InterpStack.cpp | ||
InterpStack.h | ||
InterpState.cpp | ||
InterpState.h | ||
Opcode.h | ||
Opcodes.td | ||
Pointer.cpp | ||
Pointer.h | ||
PrimType.cpp | ||
PrimType.h | ||
Program.cpp | ||
Program.h | ||
Record.cpp | ||
Record.h | ||
Source.cpp | ||
Source.h | ||
State.cpp | ||
State.h |