14#include "llvm/ADT/SmallString.h"
15#include "llvm/Support/Path.h"
20#define LANGOPT(Name, Bits, Default, Description) Name = Default;
21#define ENUM_LANGOPT(Name, Type, Bits, Default, Description) set##Name(Default);
22#include "clang/Basic/LangOptions.def"
26#define LANGOPT(Name, Bits, Default, Description)
27#define BENIGN_LANGOPT(Name, Bits, Default, Description) Name = Default;
28#define BENIGN_ENUM_LANGOPT(Name, Type, Bits, Default, Description) \
29 Name = static_cast<unsigned>(Default);
30#include "clang/Basic/LangOptions.def"
36 AllowFPReassoc = UnsafeFPMath;
37 NoHonorInfs = FastMath;
38 NoHonorNaNs = FastMath;
57 const int Ver = OpenCLCPlusPlus ? OpenCLCPlusPlusVersion : OpenCLVersion;
58 if (OpenCLCPlusPlus && Ver != 100)
59 return VersionTuple(Ver / 100);
60 return VersionTuple(Ver / 100, (Ver % 100) / 10);
66 if (OpenCLCPlusPlusVersion == 100)
68 if (OpenCLCPlusPlusVersion == 202100)
70 llvm_unreachable(
"Unknown OpenCL version");
75 if (llvm::sys::path::replace_path_prefix(
Path, Entry.first, Entry.second))
82 llvm::raw_string_ostream Out(
Result);
83 Out << (OpenCLCPlusPlus ?
"C++ for OpenCL" :
"OpenCL C") <<
" version "