blob: cb9d9d53e9085d7fb2a12c1d61d8830b482d7233 [file] [log] [blame]
//===-- Options.h - clang-cc Option Handling --------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_CLANGCC_OPTIONS_H
#define LLVM_CLANGCC_OPTIONS_H
#include "llvm/ADT/StringMap.h"
namespace clang {
class CompileOptions;
class LangOptions;
class PreprocessorOptions;
class TargetInfo;
enum LangKind {
langkind_unspecified,
langkind_c,
langkind_c_cpp,
langkind_asm_cpp,
langkind_cxx,
langkind_cxx_cpp,
langkind_objc,
langkind_objc_cpp,
langkind_objcxx,
langkind_objcxx_cpp,
langkind_ocl,
langkind_ast
};
// FIXME: This can be sunk into InitializeCompileOptions now that that happens
// before language initialization?
void ComputeFeatureMap(TargetInfo &Target, llvm::StringMap<bool> &Features);
void InitializeCompileOptions(CompileOptions &Opts,
const llvm::StringMap<bool> &Features);
void InitializeLangOptions(LangOptions &Options, LangKind LK,
TargetInfo &Target,
const CompileOptions &CompileOpts,
const llvm::StringMap<bool> &Features);
void InitializePreprocessorOptions(PreprocessorOptions &Opts);
} // end namespace clang
#endif