Line data Source code
1 : //===- AsmCond.h - Assembly file conditional assembly ----------*- C++ -*-===//
2 : //
3 : // The LLVM Compiler Infrastructure
4 : //
5 : // This file is distributed under the University of Illinois Open Source
6 : // License. See LICENSE.TXT for details.
7 : //
8 : //===----------------------------------------------------------------------===//
9 :
10 : #ifndef LLVM_MC_MCPARSER_ASMCOND_H
11 : #define LLVM_MC_MCPARSER_ASMCOND_H
12 :
13 : namespace llvm {
14 :
15 : /// AsmCond - Class to support conditional assembly
16 : ///
17 : /// The conditional assembly feature (.if, .else, .elseif and .endif) is
18 : /// implemented with AsmCond that tells us what we are in the middle of
19 : /// processing. Ignore can be either true or false. When true we are ignoring
20 : /// the block of code in the middle of a conditional.
21 :
22 : class AsmCond {
23 : public:
24 : enum ConditionalAssemblyType {
25 : NoCond, // no conditional is being processed
26 : IfCond, // inside if conditional
27 : ElseIfCond, // inside elseif conditional
28 : ElseCond // inside else conditional
29 : };
30 :
31 : ConditionalAssemblyType TheCond = NoCond;
32 : bool CondMet = false;
33 : bool Ignore = false;
34 :
35 18553 : AsmCond() = default;
36 : };
37 :
38 : } // end namespace llvm
39 :
40 : #endif // LLVM_MC_MCPARSER_ASMCOND_H
|