AsmCond.h revision 360784
1//===- AsmCond.h - Assembly file conditional assembly  ----------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLVM_MC_MCPARSER_ASMCOND_H
10#define LLVM_MC_MCPARSER_ASMCOND_H
11
12namespace llvm {
13
14/// AsmCond - Class to support conditional assembly
15///
16/// The conditional assembly feature (.if, .else, .elseif and .endif) is
17/// implemented with AsmCond that tells us what we are in the middle of
18/// processing.  Ignore can be either true or false.  When true we are ignoring
19/// the block of code in the middle of a conditional.
20
21class AsmCond {
22public:
23  enum ConditionalAssemblyType {
24    NoCond,     // no conditional is being processed
25    IfCond,     // inside if conditional
26    ElseIfCond, // inside elseif conditional
27    ElseCond    // inside else conditional
28  };
29
30  ConditionalAssemblyType TheCond = NoCond;
31  bool CondMet = false;
32  bool Ignore = false;
33};
34
35} // end namespace llvm
36
37#endif // LLVM_MC_MCPARSER_ASMCOND_H
38