//===- AsmCond.h - Assembly file conditional assembly ----------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef ASMCOND_H #define ASMCOND_H namespace llvm { /// AsmCond - Class to support conditional assembly /// /// The conditional assembly feature (.if, .else, .elseif and .endif) is /// implemented with AsmCond that tells us what we are in the middle of /// processing. Ignore can be either true or false. When true we are ignoring /// the block of code in the middle of a conditional. class AsmCond { public: enum ConditionalAssemblyType { NoCond, // no conditional is being processed IfCond, // inside if conditional ElseIfCond, // inside elseif conditional ElseCond // inside else conditional }; ConditionalAssemblyType TheCond; bool CondMet; bool Ignore; AsmCond() : TheCond(NoCond), CondMet(false), Ignore(false) {} }; } // end namespace llvm #endif