brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 21808f0 Raw
49 lines · c
1//===--- COFFDirectiveParser.h - JITLink coff directive parser --*- 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-exception6//7//===----------------------------------------------------------------------===//8//9// MSVC COFF directive parser10//11//===----------------------------------------------------------------------===//12 13#ifndef LLVM_EXECUTIONENGINE_JITLINK_COFFDIRECTIVEPARSER_H14#define LLVM_EXECUTIONENGINE_JITLINK_COFFDIRECTIVEPARSER_H15 16#include "llvm/ExecutionEngine/JITLink/JITLink.h"17#include "llvm/Option/Arg.h"18#include "llvm/Option/ArgList.h"19#include "llvm/Support/CommandLine.h"20#include "llvm/Support/Error.h"21#include "llvm/Support/StringSaver.h"22#include "llvm/TargetParser/Triple.h"23 24namespace llvm {25namespace jitlink {26 27enum {28  COFF_OPT_INVALID = 0,29#define OPTION(...) LLVM_MAKE_OPT_ID_WITH_ID_PREFIX(COFF_OPT_, __VA_ARGS__),30#include "COFFOptions.inc"31#undef OPTION32};33 34/// Parser for the MSVC specific preprocessor directives.35/// https://docs.microsoft.com/en-us/cpp/preprocessor/comment-c-cpp?view=msvc-16036class COFFDirectiveParser {37public:38  Expected<opt::InputArgList> parse(StringRef Str);39 40private:41  llvm::BumpPtrAllocator bAlloc;42  llvm::StringSaver saver{bAlloc};43};44 45} // end namespace jitlink46} // end namespace llvm47 48#endif // LLVM_EXECUTIONENGINE_JITLINK_COFFDIRECTIVEPARSER_H49