1341825Sdim//===- LangOptions.cpp - C Language Family Language Options ---------------===// 2226586Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6226586Sdim// 7226586Sdim//===----------------------------------------------------------------------===// 8226586Sdim// 9226586Sdim// This file defines the LangOptions class. 10226586Sdim// 11226586Sdim//===----------------------------------------------------------------------===// 12341825Sdim 13226586Sdim#include "clang/Basic/LangOptions.h" 14226586Sdim 15226586Sdimusing namespace clang; 16226586Sdim 17341825SdimLangOptions::LangOptions() { 18226586Sdim#define LANGOPT(Name, Bits, Default, Description) Name = Default; 19226586Sdim#define ENUM_LANGOPT(Name, Type, Bits, Default, Description) set##Name(Default); 20226586Sdim#include "clang/Basic/LangOptions.def" 21226586Sdim} 22226586Sdim 23226586Sdimvoid LangOptions::resetNonModularOptions() { 24226586Sdim#define LANGOPT(Name, Bits, Default, Description) 25226586Sdim#define BENIGN_LANGOPT(Name, Bits, Default, Description) Name = Default; 26226586Sdim#define BENIGN_ENUM_LANGOPT(Name, Type, Bits, Default, Description) \ 27226586Sdim Name = Default; 28226586Sdim#include "clang/Basic/LangOptions.def" 29249423Sdim 30321369Sdim // These options do not affect AST generation. 31288943Sdim SanitizerBlacklistFiles.clear(); 32321369Sdim XRayAlwaysInstrumentFiles.clear(); 33321369Sdim XRayNeverInstrumentFiles.clear(); 34249423Sdim 35234353Sdim CurrentModule.clear(); 36314564Sdim IsHeaderFile = false; 37226586Sdim} 38226586Sdim 39314564Sdimbool LangOptions::isNoBuiltinFunc(StringRef FuncName) const { 40296417Sdim for (unsigned i = 0, e = NoBuiltinFuncs.size(); i != e; ++i) 41296417Sdim if (FuncName.equals(NoBuiltinFuncs[i])) 42296417Sdim return true; 43296417Sdim return false; 44296417Sdim} 45341825Sdim 46341825SdimVersionTuple LangOptions::getOpenCLVersionTuple() const { 47341825Sdim const int Ver = OpenCLCPlusPlus ? OpenCLCPlusPlusVersion : OpenCLVersion; 48341825Sdim return VersionTuple(Ver / 100, (Ver % 100) / 10); 49341825Sdim} 50