clang  14.0.0git
LangOptions.h
Go to the documentation of this file.
1 //===- LangOptions.h - C Language Family Language Options -------*- 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-exception
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 /// \file
10 /// Defines the clang::LangOptions interface.
11 //
12 //===----------------------------------------------------------------------===//
13 
14 #ifndef LLVM_CLANG_BASIC_LANGOPTIONS_H
15 #define LLVM_CLANG_BASIC_LANGOPTIONS_H
16 
18 #include "clang/Basic/LLVM.h"
21 #include "clang/Basic/Sanitizers.h"
23 #include "clang/Basic/Visibility.h"
24 #include "llvm/ADT/FloatingPointMode.h"
25 #include "llvm/ADT/StringRef.h"
26 #include "llvm/ADT/Triple.h"
27 #include <string>
28 #include <vector>
29 
30 namespace clang {
31 
32 /// Bitfields of LangOptions, split out from LangOptions in order to ensure that
33 /// this large collection of bitfields is a trivial class type.
35  friend class CompilerInvocation;
36 
37 public:
38  // Define simple language options (with no accessors).
39 #define LANGOPT(Name, Bits, Default, Description) unsigned Name : Bits;
40 #define ENUM_LANGOPT(Name, Type, Bits, Default, Description)
41 #include "clang/Basic/LangOptions.def"
42 
43 protected:
44  // Define language options of enumeration type. These are private, and will
45  // have accessors (below).
46 #define LANGOPT(Name, Bits, Default, Description)
47 #define ENUM_LANGOPT(Name, Type, Bits, Default, Description) \
48  unsigned Name : Bits;
49 #include "clang/Basic/LangOptions.def"
50 };
51 
52 /// In the Microsoft ABI, this controls the placement of virtual displacement
53 /// members used to implement virtual inheritance.
55 
56 /// Keeps track of the various options that can be
57 /// enabled, which controls the dialect of C or C++ that is accepted.
58 class LangOptions : public LangOptionsBase {
59 public:
61  using RoundingMode = llvm::RoundingMode;
62 
65 
66  // Automatic variables live on the stack, and when trivial they're usually
67  // uninitialized because it's undefined behavior to use them without
68  // initializing them.
70 
72  // Default C standard behavior.
74 
75  // -fwrapv
77 
78  // -ftrapv
80  };
81 
82  // FIXME: Unify with TUKind.
84  /// Not compiling a module interface at all.
86 
87  /// Compiling a module from a module map.
89 
90  /// Compiling a module from a list of header files.
92 
93  /// Compiling a C++ modules TS module interface unit.
95  };
96 
102  };
103 
105 
113  };
114 
116 
117  // Corresponds to _MSC_VER
119  MSVC2010 = 1600,
120  MSVC2012 = 1700,
121  MSVC2013 = 1800,
122  MSVC2015 = 1900,
123  MSVC2017 = 1910,
124  MSVC2017_5 = 1912,
125  MSVC2017_7 = 1914,
126  MSVC2019 = 1920,
127  MSVC2019_5 = 1925,
128  MSVC2019_8 = 1928,
129  };
130 
135  // The "default" SYCL version to be used when none is specified on the
136  // frontend command line.
138  };
139 
140  /// Clang versions with different platform ABI conformance.
141  enum class ClangABI {
142  /// Attempt to be ABI-compatible with code generated by Clang 3.8.x
143  /// (SVN r257626). This causes <1 x long long> to be passed in an
144  /// integer register instead of an SSE register on x64_64.
145  Ver3_8,
146 
147  /// Attempt to be ABI-compatible with code generated by Clang 4.0.x
148  /// (SVN r291814). This causes move operations to be ignored when
149  /// determining whether a class type can be passed or returned directly.
150  Ver4,
151 
152  /// Attempt to be ABI-compatible with code generated by Clang 6.0.x
153  /// (SVN r321711). This causes determination of whether a type is
154  /// standard-layout to ignore collisions between empty base classes
155  /// and between base classes and member subobjects, which affects
156  /// whether we reuse base class tail padding in some ABIs.
157  Ver6,
158 
159  /// Attempt to be ABI-compatible with code generated by Clang 7.0.x
160  /// (SVN r338536). This causes alignof (C++) and _Alignof (C11) to be
161  /// compatible with __alignof (i.e., return the preferred alignment)
162  /// rather than returning the required alignment.
163  Ver7,
164 
165  /// Attempt to be ABI-compatible with code generated by Clang 9.0.x
166  /// (SVN r351319). This causes vectors of __int128 to be passed in memory
167  /// instead of passing in multiple scalar registers on x86_64 on Linux and
168  /// NetBSD.
169  Ver9,
170 
171  /// Attempt to be ABI-compatible with code generated by Clang 11.0.x
172  /// (git 2e10b7a39b93). This causes clang to pass unions with a 256-bit
173  /// vector member on the stack instead of using registers, to not properly
174  /// mangle substitutions for template names in some cases, and to mangle
175  /// declaration template arguments without a cast to the parameter type
176  /// even when that can lead to mangling collisions.
177  Ver11,
178 
179  /// Attempt to be ABI-compatible with code generated by Clang 12.0.x
180  /// (git 8e464dd76bef). This causes clang to mangle lambdas within
181  /// global-scope inline variables incorrectly.
182  Ver12,
183 
184  /// Conform to the underlying platform's C and C++ ABIs as closely
185  /// as we can.
186  Latest
187  };
188 
189  enum class CoreFoundationABI {
190  /// No interoperability ABI has been specified
191  Unspecified,
192  /// CoreFoundation does not have any language interoperability
193  Standalone,
194  /// Interoperability with the ObjectiveC runtime
195  ObjectiveC,
196  /// Interoperability with the latest known version of the Swift runtime
197  Swift,
198  /// Interoperability with the Swift 5.0 runtime
199  Swift5_0,
200  /// Interoperability with the Swift 4.2 runtime
201  Swift4_2,
202  /// Interoperability with the Swift 4.1 runtime
203  Swift4_1,
204  };
205 
206  enum FPModeKind {
207  // Disable the floating point pragma
209 
210  // Enable the floating point pragma
212 
213  // Aggressively fuse FP ops (E.g. FMA) disregarding pragmas.
215 
216  // Aggressively fuse FP ops and honor pragmas.
218  };
219 
220  /// Alias for RoundingMode::NearestTiesToEven.
221  static constexpr unsigned FPR_ToNearest =
222  static_cast<unsigned>(llvm::RoundingMode::NearestTiesToEven);
223 
224  /// Possible floating point exception behavior.
226  /// Assume that floating-point exceptions are masked.
228  /// Transformations do not cause new exceptions but may hide some.
230  /// Strictly preserve the floating-point exception semantics.
232  };
233 
234  /// Possible exception handling behavior.
236 
238  /// Permit no implicit vector bitcasts.
239  None,
240  /// Permit vector bitcasts between integer vectors with different numbers
241  /// of elements but the same total bit-width.
242  Integer,
243  /// Permit vector bitcasts between all vectors with the same total
244  /// bit-width.
245  All,
246  };
247 
248  enum class AltivecSrcCompatKind {
249  // All vector compares produce scalars except vector pixel and vector bool.
250  // The types vector pixel and vector bool return vector results.
251  Mixed,
252  // All vector compares produce vector results as in GCC.
253  GCC,
254  // All vector compares produce scalars as in XL.
255  XL,
256  // Default clang behaviour.
257  Default = Mixed,
258  };
259 
261  /// No signing for any function.
262  None,
263  /// Sign the return address of functions that spill LR.
264  NonLeaf,
265  /// Sign the return address of all functions,
266  All
267  };
268 
270  /// Return address signing uses APIA key.
271  AKey,
272  /// Return address signing uses APIB key.
273  BKey
274  };
275 
276  enum class ThreadModelKind {
277  /// POSIX Threads.
278  POSIX,
279  /// Single Threaded Environment.
280  Single
281  };
282 
283  enum class ExtendArgsKind {
284  /// Integer arguments are sign or zero extended to 32/64 bits
285  /// during default argument promotions.
286  ExtendTo32,
287  ExtendTo64
288  };
289 
290 public:
291  /// The used language standard.
293 
294  /// Set of enabled sanitizers.
296  /// Is at least one coverage instrumentation type enabled.
297  bool SanitizeCoverage = false;
298 
299  /// Paths to files specifying which objects
300  /// (files, functions, variables) should not be instrumented.
301  std::vector<std::string> NoSanitizeFiles;
302 
303  /// Paths to the XRay "always instrument" files specifying which
304  /// objects (files, functions, variables) should be imbued with the XRay
305  /// "always instrument" attribute.
306  /// WARNING: This is a deprecated field and will go away in the future.
307  std::vector<std::string> XRayAlwaysInstrumentFiles;
308 
309  /// Paths to the XRay "never instrument" files specifying which
310  /// objects (files, functions, variables) should be imbued with the XRay
311  /// "never instrument" attribute.
312  /// WARNING: This is a deprecated field and will go away in the future.
313  std::vector<std::string> XRayNeverInstrumentFiles;
314 
315  /// Paths to the XRay attribute list files, specifying which objects
316  /// (files, functions, variables) should be imbued with the appropriate XRay
317  /// attribute(s).
318  std::vector<std::string> XRayAttrListFiles;
319 
320  /// Paths to special case list files specifying which entities
321  /// (files, functions) should or should not be instrumented.
322  std::vector<std::string> ProfileListFiles;
323 
325 
327 
329 
330  /// The name of the handler function to be called when -ftrapv is
331  /// specified.
332  ///
333  /// If none is specified, abort (GCC-compatible behaviour).
335 
336  /// The module currently being compiled as specified by -fmodule-name.
338 
339  /// The name of the current module, of which the main source file
340  /// is a part. If CompilingModule is set, we are compiling the interface
341  /// of this module, otherwise we are compiling an implementation file of
342  /// it. This starts as ModuleName in case -fmodule-name is provided and
343  /// changes during compilation to reflect the current module.
345 
346  /// The names of any features to enable in module 'requires' decls
347  /// in addition to the hard-coded list in Module.cpp and the target features.
348  ///
349  /// This list is sorted.
350  std::vector<std::string> ModuleFeatures;
351 
352  /// Options for parsing comments.
354 
355  /// A list of all -fno-builtin-* function names (e.g., memset).
356  std::vector<std::string> NoBuiltinFuncs;
357 
358  /// A prefix map for __FILE__, __BASE_FILE__ and __builtin_FILE().
359  std::map<std::string, std::string, std::greater<std::string>> MacroPrefixMap;
360 
361  /// Triples of the OpenMP targets that the host code codegen should
362  /// take into account in order to generate accurate offloading descriptors.
363  std::vector<llvm::Triple> OMPTargetTriples;
364 
365  /// Name of the IR file that contains the result of the OpenMP target
366  /// host code generation.
368 
369  /// The user provided compilation unit ID, if non-empty. This is used to
370  /// externalize static variables which is needed to support accessing static
371  /// device variables in host code for single source offloading languages
372  /// like CUDA/HIP.
374 
375  /// C++ ABI to compile with, if specified by the frontend through -fc++-abi=.
376  /// This overrides the default ABI used by the target.
378 
379  /// Indicates whether the front-end is explicitly told that the
380  /// input is a header file (i.e. -x c-header).
381  bool IsHeaderFile = false;
382 
383  LangOptions();
384 
385  // Define accessors/mutators for language options of enumeration type.
386 #define LANGOPT(Name, Bits, Default, Description)
387 #define ENUM_LANGOPT(Name, Type, Bits, Default, Description) \
388  Type get##Name() const { return static_cast<Type>(Name); } \
389  void set##Name(Type Value) { Name = static_cast<unsigned>(Value); }
390 #include "clang/Basic/LangOptions.def"
391 
392  /// Are we compiling a module interface (.cppm or module map)?
393  bool isCompilingModule() const {
394  return getCompilingModule() != CMK_None;
395  }
396 
397  /// Do we need to track the owning module for a local declaration?
398  bool trackLocalOwningModule() const {
399  return isCompilingModule() || ModulesLocalVisibility;
400  }
401 
402  bool isSignedOverflowDefined() const {
403  return getSignedOverflowBehavior() == SOB_Defined;
404  }
405 
408  !ObjCSubscriptingLegacyRuntime;
409  }
410 
411  bool isCompatibleWithMSVC(MSVCMajorVersion MajorVersion) const {
412  return MSCompatibilityVersion >= MajorVersion * 100000U;
413  }
414 
415  /// Reset all of the options that are not considered when building a
416  /// module.
417  void resetNonModularOptions();
418 
419  /// Is this a libc/libm function that is no longer recognized as a
420  /// builtin because a -fno-builtin-* option has been specified?
421  bool isNoBuiltinFunc(StringRef Name) const;
422 
423  /// True if any ObjC types may have non-trivial lifetime qualifiers.
425  return ObjCAutoRefCount || ObjCWeak;
426  }
427 
429  return ConvergentFunctions;
430  }
431 
432  /// Return the OpenCL C or C++ version as a VersionTuple.
433  VersionTuple getOpenCLVersionTuple() const;
434 
435  /// Return the OpenCL version that kernel language is compatible with
436  unsigned getOpenCLCompatibleVersion() const;
437 
438  /// Return the OpenCL C or C++ for OpenCL language name and version
439  /// as a string.
441 
442  /// Check if return address signing is enabled.
443  bool hasSignReturnAddress() const {
444  return getSignReturnAddressScope() != SignReturnAddressScopeKind::None;
445  }
446 
447  /// Check if return address signing uses AKey.
449  return getSignReturnAddressKey() == SignReturnAddressKeyKind::AKey;
450  }
451 
452  /// Check if leaf functions are also signed.
454  return getSignReturnAddressScope() == SignReturnAddressScopeKind::All;
455  }
456 
457  bool hasSjLjExceptions() const {
458  return getExceptionHandling() == ExceptionHandlingKind::SjLj;
459  }
460 
461  bool hasSEHExceptions() const {
462  return getExceptionHandling() == ExceptionHandlingKind::WinEH;
463  }
464 
465  bool hasDWARFExceptions() const {
466  return getExceptionHandling() == ExceptionHandlingKind::DwarfCFI;
467  }
468 
469  bool hasWasmExceptions() const {
470  return getExceptionHandling() == ExceptionHandlingKind::Wasm;
471  }
472 
473  bool isSYCL() const { return SYCLIsDevice || SYCLIsHost; }
474 
475  /// Remap path prefix according to -fmacro-prefix-path option.
476  void remapPathPrefix(SmallString<256> &Path) const;
477 };
478 
479 /// Floating point control options
480 class FPOptionsOverride;
481 class FPOptions {
482 public:
483  // We start by defining the layout.
484  using storage_type = uint16_t;
485 
486  using RoundingMode = llvm::RoundingMode;
487 
488  static constexpr unsigned StorageBitSize = 8 * sizeof(storage_type);
489 
490  // Define a fake option named "First" so that we have a PREVIOUS even for the
491  // real first option.
492  static constexpr storage_type FirstShift = 0, FirstWidth = 0;
493 #define OPTION(NAME, TYPE, WIDTH, PREVIOUS) \
494  static constexpr storage_type NAME##Shift = \
495  PREVIOUS##Shift + PREVIOUS##Width; \
496  static constexpr storage_type NAME##Width = WIDTH; \
497  static constexpr storage_type NAME##Mask = ((1 << NAME##Width) - 1) \
498  << NAME##Shift;
499 #include "clang/Basic/FPOptions.def"
500 
501  static constexpr storage_type TotalWidth = 0
502 #define OPTION(NAME, TYPE, WIDTH, PREVIOUS) +WIDTH
503 #include "clang/Basic/FPOptions.def"
504  ;
505  static_assert(TotalWidth <= StorageBitSize, "Too short type for FPOptions");
506 
507 private:
509 
510 public:
511  FPOptions() : Value(0) {
512  setFPContractMode(LangOptions::FPM_Off);
513  setRoundingMode(static_cast<RoundingMode>(LangOptions::FPR_ToNearest));
514  setFPExceptionMode(LangOptions::FPE_Ignore);
515  }
516  explicit FPOptions(const LangOptions &LO) {
517  Value = 0;
518  // The language fp contract option FPM_FastHonorPragmas has the same effect
519  // as FPM_Fast in frontend. For simplicity, use FPM_Fast uniformly in
520  // frontend.
521  auto LangOptContractMode = LO.getDefaultFPContractMode();
522  if (LangOptContractMode == LangOptions::FPM_FastHonorPragmas)
523  LangOptContractMode = LangOptions::FPM_Fast;
524  setFPContractMode(LangOptContractMode);
525  setRoundingMode(LO.getFPRoundingMode());
526  setFPExceptionMode(LO.getFPExceptionMode());
527  setAllowFPReassociate(LO.AllowFPReassoc);
528  setNoHonorNaNs(LO.NoHonorNaNs);
529  setNoHonorInfs(LO.NoHonorInfs);
530  setNoSignedZero(LO.NoSignedZero);
531  setAllowReciprocal(LO.AllowRecip);
532  setAllowApproxFunc(LO.ApproxFunc);
533  if (getFPContractMode() == LangOptions::FPM_On &&
534  getRoundingMode() == llvm::RoundingMode::Dynamic &&
535  getFPExceptionMode() == LangOptions::FPE_Strict)
536  // If the FP settings are set to the "strict" model, then
537  // FENV access is set to true. (ffp-model=strict)
538  setAllowFEnvAccess(true);
539  else
540  setAllowFEnvAccess(LangOptions::FPM_Off);
541  }
542 
544  return getFPContractMode() == LangOptions::FPM_On;
545  }
547  setFPContractMode(LangOptions::FPM_On);
548  }
549 
551  return getFPContractMode() == LangOptions::FPM_Fast;
552  }
554  setFPContractMode(LangOptions::FPM_Fast);
555  }
556 
557  bool isFPConstrained() const {
558  return getRoundingMode() != llvm::RoundingMode::NearestTiesToEven ||
559  getFPExceptionMode() != LangOptions::FPE_Ignore ||
560  getAllowFEnvAccess();
561  }
562 
563  bool operator==(FPOptions other) const { return Value == other.Value; }
564 
565  /// Return the default value of FPOptions that's used when trailing
566  /// storage isn't required.
568 
569  storage_type getAsOpaqueInt() const { return Value; }
571  FPOptions Opts;
572  Opts.Value = Value;
573  return Opts;
574  }
575 
576  // We can define most of the accessors automatically:
577 #define OPTION(NAME, TYPE, WIDTH, PREVIOUS) \
578  TYPE get##NAME() const { \
579  return static_cast<TYPE>((Value & NAME##Mask) >> NAME##Shift); \
580  } \
581  void set##NAME(TYPE value) { \
582  Value = (Value & ~NAME##Mask) | (storage_type(value) << NAME##Shift); \
583  }
584 #include "clang/Basic/FPOptions.def"
585  LLVM_DUMP_METHOD void dump();
586 };
587 
588 /// Represents difference between two FPOptions values.
589 ///
590 /// The effect of language constructs changing the set of floating point options
591 /// is usually a change of some FP properties while leaving others intact. This
592 /// class describes such changes by keeping information about what FP options
593 /// are overridden.
594 ///
595 /// The integral set of FP options, described by the class FPOptions, may be
596 /// represented as a default FP option set, defined by language standard and
597 /// command line options, with the overrides introduced by pragmas.
598 ///
599 /// The is implemented as a value of the new FPOptions plus a mask showing which
600 /// fields are actually set in it.
603  FPOptions::storage_type OverrideMask = 0;
604 
605 public:
606  using RoundingMode = llvm::RoundingMode;
607 
608  /// The type suitable for storing values of FPOptionsOverride. Must be twice
609  /// as wide as bit size of FPOption.
610  using storage_type = uint32_t;
611  static_assert(sizeof(storage_type) >= 2 * sizeof(FPOptions::storage_type),
612  "Too short type for FPOptionsOverride");
613 
614  /// Bit mask selecting bits of OverrideMask in serialized representation of
615  /// FPOptionsOverride.
616  static constexpr storage_type OverrideMaskBits =
617  (static_cast<storage_type>(1) << FPOptions::StorageBitSize) - 1;
618 
621  : Options(LO), OverrideMask(OverrideMaskBits) {}
623  : Options(FPO), OverrideMask(OverrideMaskBits) {}
624 
625  bool requiresTrailingStorage() const { return OverrideMask != 0; }
626 
628  setFPContractModeOverride(LangOptions::FPM_On);
629  }
630 
632  setFPContractModeOverride(LangOptions::FPM_Fast);
633  }
634 
636  setFPContractModeOverride(LangOptions::FPM_Off);
637  }
638 
640  setAllowFPReassociateOverride(!Value);
641  setNoHonorNaNsOverride(!Value);
642  setNoHonorInfsOverride(!Value);
643  setNoSignedZeroOverride(!Value);
644  setAllowReciprocalOverride(!Value);
645  setAllowApproxFuncOverride(!Value);
646  if (Value)
647  /* Precise mode implies fp_contract=on and disables ffast-math */
649  else
650  /* Precise mode disabled sets fp_contract=fast and enables ffast-math */
652  }
653 
655  return (static_cast<storage_type>(Options.getAsOpaqueInt())
657  OverrideMask;
658  }
660  FPOptionsOverride Opts;
661  Opts.OverrideMask = I & OverrideMaskBits;
663  return Opts;
664  }
665 
667  FPOptions Result =
668  FPOptions::getFromOpaqueInt((Base.getAsOpaqueInt() & ~OverrideMask) |
669  (Options.getAsOpaqueInt() & OverrideMask));
670  return Result;
671  }
672 
674  return applyOverrides(FPOptions(LO));
675  }
676 
677  bool operator==(FPOptionsOverride other) const {
678  return Options == other.Options && OverrideMask == other.OverrideMask;
679  }
680  bool operator!=(FPOptionsOverride other) const { return !(*this == other); }
681 
682 #define OPTION(NAME, TYPE, WIDTH, PREVIOUS) \
683  bool has##NAME##Override() const { \
684  return OverrideMask & FPOptions::NAME##Mask; \
685  } \
686  TYPE get##NAME##Override() const { \
687  assert(has##NAME##Override()); \
688  return Options.get##NAME(); \
689  } \
690  void clear##NAME##Override() { \
691  /* Clear the actual value so that we don't have spurious differences when \
692  * testing equality. */ \
693  Options.set##NAME(TYPE(0)); \
694  OverrideMask &= ~FPOptions::NAME##Mask; \
695  } \
696  void set##NAME##Override(TYPE value) { \
697  Options.set##NAME(value); \
698  OverrideMask |= FPOptions::NAME##Mask; \
699  }
700 #include "clang/Basic/FPOptions.def"
701  LLVM_DUMP_METHOD void dump();
702 };
703 
704 /// Describes the kind of translation unit being processed.
705 enum TranslationUnitKind {
706  /// The translation unit is a complete translation unit.
707  TU_Complete,
708 
709  /// The translation unit is a prefix to a translation unit, and is
710  /// not complete.
711  TU_Prefix,
712 
713  /// The translation unit is a module.
714  TU_Module,
715 
716  /// The translation unit is a is a complete translation unit that we might
717  /// incrementally extend later.
719 };
720 
721 } // namespace clang
722 
723 #endif // LLVM_CLANG_BASIC_LANGOPTIONS_H
clang::LangOptions::LaxVectorConversionKind
LaxVectorConversionKind
Definition: LangOptions.h:237
clang::LangOptions::SignReturnAddressScopeKind
SignReturnAddressScopeKind
Definition: LangOptions.h:260
clang::LangOptions::DCC_FastCall
@ DCC_FastCall
Definition: LangOptions.h:109
clang::LangOptions::PPTMK_FullGeneralitySingleInheritance
@ PPTMK_FullGeneralitySingleInheritance
Definition: LangOptions.h:99
clang::FPOptionsOverride::operator==
bool operator==(FPOptionsOverride other) const
Definition: LangOptions.h:677
clang::LangOptions::CurrentModule
std::string CurrentModule
The name of the current module, of which the main source file is a part.
Definition: LangOptions.h:344
clang::FPOptionsOverride::setAllowFPContractAcrossStatement
void setAllowFPContractAcrossStatement()
Definition: LangOptions.h:631
clang::LangOptions::isSignedOverflowDefined
bool isSignedOverflowDefined() const
Definition: LangOptions.h:402
clang::LangOptions::hasSEHExceptions
bool hasSEHExceptions() const
Definition: LangOptions.h:461
clang::LangOptions::ExceptionHandlingKind::DwarfCFI
@ DwarfCFI
clang::LangOptions::CMK_ModuleInterface
@ CMK_ModuleInterface
Compiling a C++ modules TS module interface unit.
Definition: LangOptions.h:94
Visibility.h
clang::LangOptions::ExceptionHandlingKind::None
@ None
clang::LangOptions::XRayAlwaysInstrumentFiles
std::vector< std::string > XRayAlwaysInstrumentFiles
Paths to the XRay "always instrument" files specifying which objects (files, functions,...
Definition: LangOptions.h:307
clang::FPOptions::isFPConstrained
bool isFPConstrained() const
Definition: LangOptions.h:557
clang::LangOptions::TrivialAutoVarInitKind::Zero
@ Zero
ObjCRuntime.h
clang::LangOptions::getOpenCLCompatibleVersion
unsigned getOpenCLCompatibleVersion() const
Return the OpenCL version that kernel language is compatible with.
Definition: LangOptions.cpp:55
clang::LangOptions::CoreFoundationABI::Swift
@ Swift
Interoperability with the latest known version of the Swift runtime.
clang::LangOptions::StackProtectorMode
StackProtectorMode
Definition: LangOptions.h:64
clang::LangOptions::isSignReturnAddressScopeAll
bool isSignReturnAddressScopeAll() const
Check if leaf functions are also signed.
Definition: LangOptions.h:453
clang::LangOptions::SYCLMajorVersion
SYCLMajorVersion
Definition: LangOptions.h:131
clang::FPOptionsOverride::requiresTrailingStorage
bool requiresTrailingStorage() const
Definition: LangOptions.h:625
string
string(SUBSTRING ${CMAKE_CURRENT_BINARY_DIR} 0 ${PATH_LIB_START} PATH_HEAD) string(SUBSTRING $
Definition: CMakeLists.txt:22
clang::LangOptions::ClangABI::Latest
@ Latest
Conform to the underlying platform's C and C++ ABIs as closely as we can.
clang::LangOptions::AltivecSrcCompatKind::GCC
@ GCC
clang::LangOptions::ExceptionHandlingKind::Wasm
@ Wasm
clang::LangOptions::SSPStrong
@ SSPStrong
Definition: LangOptions.h:64
clang::LangOptions::ASMM_On
@ ASMM_On
Definition: LangOptions.h:115
clang::FPOptions::FirstShift
static constexpr storage_type FirstShift
Definition: LangOptions.h:492
clang::LangOptions::isCompilingModule
bool isCompilingModule() const
Are we compiling a module interface (.cppm or module map)?
Definition: LangOptions.h:393
clang::LangOptions::OverflowHandler
std::string OverflowHandler
The name of the handler function to be called when -ftrapv is specified.
Definition: LangOptions.h:334
clang::LangOptions::ClangABI::Ver11
@ Ver11
Attempt to be ABI-compatible with code generated by Clang 11.0.x (git 2e10b7a39b93).
clang::LangOptions::ASMM_Off
@ ASMM_Off
Definition: LangOptions.h:115
clang::LangOptions::assumeFunctionsAreConvergent
bool assumeFunctionsAreConvergent() const
Definition: LangOptions.h:428
clang::LangOptions::FPE_MayTrap
@ FPE_MayTrap
Transformations do not cause new exceptions but may hide some.
Definition: LangOptions.h:229
clang::FPOptions::operator==
bool operator==(FPOptions other) const
Definition: LangOptions.h:563
clang::LangOptions::CoreFoundationABI::Unspecified
@ Unspecified
No interoperability ABI has been specified.
clang::LangOptions::MSVC2010
@ MSVC2010
Definition: LangOptions.h:119
clang::LangOptions::CFRuntime
CoreFoundationABI CFRuntime
Definition: LangOptions.h:326
clang::LangOptions::SSPReq
@ SSPReq
Definition: LangOptions.h:64
clang::FPOptionsOverride::OverrideMaskBits
static constexpr storage_type OverrideMaskBits
Bit mask selecting bits of OverrideMask in serialized representation of FPOptionsOverride.
Definition: LangOptions.h:616
clang::LangOptions::ObjCConstantStringClass
std::string ObjCConstantStringClass
Definition: LangOptions.h:328
clang::LangOptions::allowsNonTrivialObjCLifetimeQualifiers
bool allowsNonTrivialObjCLifetimeQualifiers() const
True if any ObjC types may have non-trivial lifetime qualifiers.
Definition: LangOptions.h:424
clang::LangOptions::CXXABI
llvm::Optional< TargetCXXABI::Kind > CXXABI
C++ ABI to compile with, if specified by the frontend through -fc++-abi=.
Definition: LangOptions.h:377
clang::LangOptions::FPM_On
@ FPM_On
Definition: LangOptions.h:211
clang::LangOptions::SignReturnAddressScopeKind::NonLeaf
@ NonLeaf
Sign the return address of functions that spill LR.
clang::LangOptions::SignReturnAddressScopeKind::None
@ None
No signing for any function.
clang::FPOptions::FPOptions
FPOptions(const LangOptions &LO)
Definition: LangOptions.h:516
clang::LangOptions::CMK_ModuleMap
@ CMK_ModuleMap
Compiling a module from a module map.
Definition: LangOptions.h:88
clang::FPOptionsOverride::FPOptionsOverride
FPOptionsOverride()
Definition: LangOptions.h:619
llvm::Optional< TargetCXXABI::Kind >
clang::LangOptions::XRayAttrListFiles
std::vector< std::string > XRayAttrListFiles
Paths to the XRay attribute list files, specifying which objects (files, functions,...
Definition: LangOptions.h:318
clang::LangOptions::CoreFoundationABI::Swift4_1
@ Swift4_1
Interoperability with the Swift 4.1 runtime.
clang::LangOptions::GCOnly
@ GCOnly
Definition: LangOptions.h:63
clang::LangOptions::DCC_None
@ DCC_None
Definition: LangOptions.h:107
clang::LangOptions::GCMode
GCMode
Definition: LangOptions.h:63
clang::FPOptions::setAllowFPContractWithinStatement
void setAllowFPContractWithinStatement()
Definition: LangOptions.h:546
clang::LangOptions::getOpenCLVersionString
std::string getOpenCLVersionString() const
Return the OpenCL C or C++ for OpenCL language name and version as a string.
Definition: LangOptions.cpp:71
clang::LangOptions::hasDWARFExceptions
bool hasDWARFExceptions() const
Definition: LangOptions.h:465
clang::FPOptionsOverride::setFPPreciseEnabled
void setFPPreciseEnabled(bool Value)
Definition: LangOptions.h:639
clang::LangOptions::MacroPrefixMap
std::map< std::string, std::string, std::greater< std::string > > MacroPrefixMap
A prefix map for FILE, BASE_FILE and __builtin_FILE().
Definition: LangOptions.h:359
clang::MSVtorDispMode::ForVFTable
@ ForVFTable
clang::MSVtorDispMode
MSVtorDispMode
In the Microsoft ABI, this controls the placement of virtual displacement members used to implement v...
Definition: LangOptions.h:54
clang::FPOptions::RoundingMode
llvm::RoundingMode RoundingMode
Definition: LangOptions.h:486
clang::LangOptions::DefaultCallingConvention
DefaultCallingConvention
Definition: LangOptions.h:106
clang::LangOptions::SignReturnAddressKeyKind::AKey
@ AKey
Return address signing uses APIA key.
clang::LangOptions::FPR_ToNearest
static constexpr unsigned FPR_ToNearest
Alias for RoundingMode::NearestTiesToEven.
Definition: LangOptions.h:221
clang::TU_Prefix
@ TU_Prefix
The translation unit is a prefix to a translation unit, and is not complete.
Definition: LangOptions.h:710
clang::LangOptions::CompilingModuleKind
CompilingModuleKind
Definition: LangOptions.h:83
clang::LangStandard::Kind
Kind
Definition: LangStandard.h:64
clang::LangOptions::TrivialAutoVarInitKind
TrivialAutoVarInitKind
Definition: LangOptions.h:69
U
clang::LangOptions::PPTMK_FullGeneralityVirtualInheritance
@ PPTMK_FullGeneralityVirtualInheritance
Definition: LangOptions.h:101
clang::FPOptionsOverride::FPOptionsOverride
FPOptionsOverride(const LangOptions &LO)
Definition: LangOptions.h:620
clang::FPOptionsOverride::storage_type
uint32_t storage_type
The type suitable for storing values of FPOptionsOverride.
Definition: LangOptions.h:610
clang::LangOptions::SanitizeCoverage
bool SanitizeCoverage
Is at least one coverage instrumentation type enabled.
Definition: LangOptions.h:297
clang::TU_Module
@ TU_Module
The translation unit is a module.
Definition: LangOptions.h:713
clang::FPOptions::storage_type
uint16_t storage_type
Definition: LangOptions.h:484
clang::LangOptions::SSPOff
@ SSPOff
Definition: LangOptions.h:64
clang::FPOptions::getAsOpaqueInt
storage_type getAsOpaqueInt() const
Definition: LangOptions.h:569
clang::LangOptions::SOB_Trapping
@ SOB_Trapping
Definition: LangOptions.h:79
clang::LangOptions::ClangABI::Ver12
@ Ver12
Attempt to be ABI-compatible with code generated by Clang 12.0.x (git 8e464dd76bef).
clang::LangOptions::LaxVectorConversionKind::Integer
@ Integer
Permit vector bitcasts between integer vectors with different numbers of elements but the same total ...
clang::LangOptions::isCompatibleWithMSVC
bool isCompatibleWithMSVC(MSVCMajorVersion MajorVersion) const
Definition: LangOptions.h:411
clang::LangOptions::AltivecSrcCompatKind
AltivecSrcCompatKind
Definition: LangOptions.h:248
clang::FPOptionsOverride::applyOverrides
FPOptions applyOverrides(const LangOptions &LO)
Definition: LangOptions.h:673
clang::SanitizerSet
Definition: Sanitizers.h:153
clang::LangOptions::ObjCRuntime
clang::ObjCRuntime ObjCRuntime
Definition: LangOptions.h:324
clang::LangOptions::OMPTargetTriples
std::vector< llvm::Triple > OMPTargetTriples
Triples of the OpenMP targets that the host code codegen should take into account in order to generat...
Definition: LangOptions.h:363
clang::LangOptions::CMK_None
@ CMK_None
Not compiling a module interface at all.
Definition: LangOptions.h:85
clang::LangOptions::CoreFoundationABI::ObjectiveC
@ ObjectiveC
Interoperability with the ObjectiveC runtime.
clang::LangOptions::MSVCMajorVersion
MSVCMajorVersion
Definition: LangOptions.h:118
clang::LangOptions::hasWasmExceptions
bool hasWasmExceptions() const
Definition: LangOptions.h:469
clang::LangOptions::MSVC2019
@ MSVC2019
Definition: LangOptions.h:126
clang::LangOptionsBase
Bitfields of LangOptions, split out from LangOptions in order to ensure that this large collection of...
Definition: LangOptions.h:34
clang::FPOptionsOverride
Represents difference between two FPOptions values.
Definition: LangOptions.h:601
clang::LangOptions::FPExceptionModeKind
FPExceptionModeKind
Possible floating point exception behavior.
Definition: LangOptions.h:225
clang::TU_Incremental
@ TU_Incremental
The translation unit is a is a complete translation unit that we might incrementally extend later.
Definition: LangOptions.h:717
clang::LangOptions::CMK_HeaderModule
@ CMK_HeaderModule
Compiling a module from a list of header files.
Definition: LangOptions.h:91
clang::LangOptions::ThreadModelKind::POSIX
@ POSIX
POSIX Threads.
clang::FPOptions::allowFPContractWithinStatement
bool allowFPContractWithinStatement() const
Definition: LangOptions.h:543
clang::FPOptionsOverride::applyOverrides
FPOptions applyOverrides(FPOptions Base)
Definition: LangOptions.h:666
clang::LangOptions::ExtendArgsKind
ExtendArgsKind
Definition: LangOptions.h:283
clang::FPOptions
Definition: LangOptions.h:481
clang::LangOptions::ModuleFeatures
std::vector< std::string > ModuleFeatures
The names of any features to enable in module 'requires' decls in addition to the hard-coded list in ...
Definition: LangOptions.h:350
clang::LangOptions::NoBuiltinFuncs
std::vector< std::string > NoBuiltinFuncs
A list of all -fno-builtin-* function names (e.g., memset).
Definition: LangOptions.h:356
clang::LangOptions::CoreFoundationABI
CoreFoundationABI
Definition: LangOptions.h:189
llvm::SmallString
Definition: LLVM.h:37
clang::LangOptions::TrivialAutoVarInitKind::Uninitialized
@ Uninitialized
clang::LangOptions::SYCL_Default
@ SYCL_Default
Definition: LangOptions.h:137
clang::LangOptions::hasSjLjExceptions
bool hasSjLjExceptions() const
Definition: LangOptions.h:457
clang::LangOptions::SYCL_2017
@ SYCL_2017
Definition: LangOptions.h:133
clang::LangOptions::CoreFoundationABI::Swift5_0
@ Swift5_0
Interoperability with the Swift 5.0 runtime.
clang::LangOptions::HybridGC
@ HybridGC
Definition: LangOptions.h:63
clang::FPOptionsOverride::FPOptionsOverride
FPOptionsOverride(FPOptions FPO)
Definition: LangOptions.h:622
clang::LangOptions::DCC_VectorCall
@ DCC_VectorCall
Definition: LangOptions.h:111
clang::LangOptions::IsHeaderFile
bool IsHeaderFile
Indicates whether the front-end is explicitly told that the input is a header file (i....
Definition: LangOptions.h:381
Base
clang::LangOptions::ExtendArgsKind::ExtendTo32
@ ExtendTo32
Integer arguments are sign or zero extended to 32/64 bits during default argument promotions.
clang::LangOptions::ClangABI::Ver4
@ Ver4
Attempt to be ABI-compatible with code generated by Clang 4.0.x (SVN r291814).
clang::FPOptions::defaultWithoutTrailingStorage
static FPOptions defaultWithoutTrailingStorage(const LangOptions &LO)
Return the default value of FPOptions that's used when trailing storage isn't required.
Definition: LangOptions.cpp:81
clang::LangOptions::ExtendArgsKind::ExtendTo64
@ ExtendTo64
clang::LangOptions::isNoBuiltinFunc
bool isNoBuiltinFunc(StringRef Name) const
Is this a libc/libm function that is no longer recognized as a builtin because a -fno-builtin-* optio...
Definition: LangOptions.cpp:41
clang::LangOptions::ClangABI
ClangABI
Clang versions with different platform ABI conformance.
Definition: LangOptions.h:141
clang::LangOptions::SYCL_None
@ SYCL_None
Definition: LangOptions.h:132
TargetCXXABI.h
clang::Visibility
Visibility
Describes the different kinds of visibility that a declaration may have.
Definition: Visibility.h:33
clang::MSVtorDispMode::Never
@ Never
clang::LangOptions::DCC_CDecl
@ DCC_CDecl
Definition: LangOptions.h:108
clang::LangOptions::Sanitize
SanitizerSet Sanitize
Set of enabled sanitizers.
Definition: LangOptions.h:295
clang::LangOptions::FPModeKind
FPModeKind
Definition: LangOptions.h:206
clang::LangOptions::XRayNeverInstrumentFiles
std::vector< std::string > XRayNeverInstrumentFiles
Paths to the XRay "never instrument" files specifying which objects (files, functions,...
Definition: LangOptions.h:313
clang::LangOptions::SOB_Undefined
@ SOB_Undefined
Definition: LangOptions.h:73
clang::FPOptionsOverride::operator!=
bool operator!=(FPOptionsOverride other) const
Definition: LangOptions.h:680
clang::LangOptions::LangOptions
LangOptions()
Definition: LangOptions.cpp:19
clang::LangOptions::getOpenCLVersionTuple
VersionTuple getOpenCLVersionTuple() const
Return the OpenCL C or C++ version as a VersionTuple.
Definition: LangOptions.cpp:48
clang::MSVtorDispMode::ForVBaseOverride
@ ForVBaseOverride
clang::LangOptions::remapPathPrefix
void remapPathPrefix(SmallString< 256 > &Path) const
Remap path prefix according to -fmacro-prefix-path option.
Definition: LangOptions.cpp:65
clang::LangOptions::ExceptionHandlingKind
ExceptionHandlingKind
Possible exception handling behavior.
Definition: LangOptions.h:235
clang::LangOptions::NoSanitizeFiles
std::vector< std::string > NoSanitizeFiles
Paths to files specifying which objects (files, functions, variables) should not be instrumented.
Definition: LangOptions.h:301
clang::CommentOptions
Options for controlling comment parsing.
Definition: CommentOptions.h:23
LangStandard.h
clang::LangOptions::NonGC
@ NonGC
Definition: LangOptions.h:63
clang::LangOptions::ExceptionHandlingKind::SjLj
@ SjLj
clang::LangOptions::SignedOverflowBehaviorTy
SignedOverflowBehaviorTy
Definition: LangOptions.h:71
clang::LangOptions::ThreadModelKind
ThreadModelKind
Definition: LangOptions.h:276
clang::LangOptions::LaxVectorConversionKind::All
@ All
Permit vector bitcasts between all vectors with the same total bit-width.
clang::LangOptions::ASMM_Target
@ ASMM_Target
Definition: LangOptions.h:115
clang::LangOptions::AltivecSrcCompatKind::Default
@ Default
clang::LangOptions::SYCL_2020
@ SYCL_2020
Definition: LangOptions.h:134
clang::LangOptions::ClangABI::Ver3_8
@ Ver3_8
Attempt to be ABI-compatible with code generated by Clang 3.8.x (SVN r257626).
Value
Value
Definition: UninitializedValues.cpp:102
clang::LangOptions::DCC_RegCall
@ DCC_RegCall
Definition: LangOptions.h:112
clang::LangOptions::SSPOn
@ SSPOn
Definition: LangOptions.h:64
LLVM.h
clang::LangOptions::AltivecSrcCompatKind::XL
@ XL
clang::LangOptions::ThreadModelKind::Single
@ Single
Single Threaded Environment.
clang::LangOptions::MSVC2017
@ MSVC2017
Definition: LangOptions.h:123
clang::LangOptions::FPM_FastHonorPragmas
@ FPM_FastHonorPragmas
Definition: LangOptions.h:217
clang::FPOptions::TotalWidth
static constexpr storage_type TotalWidth
Definition: LangOptions.h:501
clang::LangOptions::TrivialAutoVarInitKind::Pattern
@ Pattern
clang::LangOptions::hasSignReturnAddress
bool hasSignReturnAddress() const
Check if return address signing is enabled.
Definition: LangOptions.h:443
clang::LangOptions::CUID
std::string CUID
The user provided compilation unit ID, if non-empty.
Definition: LangOptions.h:373
clang::ObjCRuntime
The basic abstraction for the target Objective-C runtime.
Definition: ObjCRuntime.h:28
clang::LangOptions::isSubscriptPointerArithmetic
bool isSubscriptPointerArithmetic() const
Definition: LangOptions.h:406
clang::LangOptions::LangStd
LangStandard::Kind LangStd
The used language standard.
Definition: LangOptions.h:292
clang::FPOptionsOverride::dump
LLVM_DUMP_METHOD void dump()
Definition: LangOptions.cpp:93
clang::LangOptions::isSYCL
bool isSYCL() const
Definition: LangOptions.h:473
clang::LangOptions
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...
Definition: LangOptions.h:58
clang::LangOptions::LaxVectorConversionKind::None
@ None
Permit no implicit vector bitcasts.
clang::LangOptions::ProfileListFiles
std::vector< std::string > ProfileListFiles
Paths to special case list files specifying which entities (files, functions) should or should not be...
Definition: LangOptions.h:322
clang::LangOptions::AltivecSrcCompatKind::Mixed
@ Mixed
clang::TranslationUnitKind
TranslationUnitKind
Describes the kind of translation unit being processed.
Definition: LangOptions.h:704
Sanitizers.h
clang::FPOptions::FPOptions
FPOptions()
Definition: LangOptions.h:511
clang::LangOptions::ClangABI::Ver9
@ Ver9
Attempt to be ABI-compatible with code generated by Clang 9.0.x (SVN r351319).
clang::FPOptionsOverride::getFromOpaqueInt
static FPOptionsOverride getFromOpaqueInt(storage_type I)
Definition: LangOptions.h:659
clang::LangOptions::SignReturnAddressKeyKind
SignReturnAddressKeyKind
Definition: LangOptions.h:269
clang::LangOptions::PragmaMSPointersToMembersKind
PragmaMSPointersToMembersKind
Definition: LangOptions.h:97
clang::LangOptions::DCC_StdCall
@ DCC_StdCall
Definition: LangOptions.h:110
clang::LangOptions::ExceptionHandlingKind::WinEH
@ WinEH
clang
Definition: CalledOnceCheck.h:17
clang::LangOptions::MSVC2015
@ MSVC2015
Definition: LangOptions.h:122
clang::LangOptions::OMPHostIRFile
std::string OMPHostIRFile
Name of the IR file that contains the result of the OpenMP target host code generation.
Definition: LangOptions.h:367
clang::LangOptions::PPTMK_BestCase
@ PPTMK_BestCase
Definition: LangOptions.h:98
clang::LangOptions::MSVC2019_8
@ MSVC2019_8
Definition: LangOptions.h:128
clang::LangOptions::isSignReturnAddressWithAKey
bool isSignReturnAddressWithAKey() const
Check if return address signing uses AKey.
Definition: LangOptions.h:448
clang::LangOptions::CoreFoundationABI::Standalone
@ Standalone
CoreFoundation does not have any language interoperability.
clang::FPOptionsOverride::getAsOpaqueInt
storage_type getAsOpaqueInt() const
Definition: LangOptions.h:654
clang::LangOptions::SignReturnAddressKeyKind::BKey
@ BKey
Return address signing uses APIB key.
clang::FPOptionsOverride::setDisallowFPContract
void setDisallowFPContract()
Definition: LangOptions.h:635
clang::CompilerInvocation
Helper class for holding the data necessary to invoke the compiler.
Definition: CompilerInvocation.h:193
clang::LangOptions::resetNonModularOptions
void resetNonModularOptions()
Reset all of the options that are not considered when building a module.
Definition: LangOptions.cpp:25
clang::LangOptions::FPE_Ignore
@ FPE_Ignore
Assume that floating-point exceptions are masked.
Definition: LangOptions.h:227
CommentOptions.h
clang::LangOptions::trackLocalOwningModule
bool trackLocalOwningModule() const
Do we need to track the owning module for a local declaration?
Definition: LangOptions.h:398
clang::LangOptions::FPE_Strict
@ FPE_Strict
Strictly preserve the floating-point exception semantics.
Definition: LangOptions.h:231
clang::FPOptions::getFromOpaqueInt
static FPOptions getFromOpaqueInt(storage_type Value)
Definition: LangOptions.h:570
clang::LangOptions::MSVC2017_5
@ MSVC2017_5
Definition: LangOptions.h:124
clang::TU_Complete
@ TU_Complete
The translation unit is a complete translation unit.
Definition: LangOptions.h:706
clang::LangOptions::CommentOpts
CommentOptions CommentOpts
Options for parsing comments.
Definition: LangOptions.h:353
clang::LangOptions::FPM_Off
@ FPM_Off
Definition: LangOptions.h:208
clang::LangOptions::SignReturnAddressScopeKind::All
@ All
Sign the return address of all functions,.
clang::LangOptions::PPTMK_FullGeneralityMultipleInheritance
@ PPTMK_FullGeneralityMultipleInheritance
Definition: LangOptions.h:100
clang::LangOptions::ClangABI::Ver7
@ Ver7
Attempt to be ABI-compatible with code generated by Clang 7.0.x (SVN r338536).
clang::FPOptions::allowFPContractAcrossStatement
bool allowFPContractAcrossStatement() const
Definition: LangOptions.h:550
clang::FPOptionsOverride::setAllowFPContractWithinStatement
void setAllowFPContractWithinStatement()
Definition: LangOptions.h:627
clang::LangOptions::MSVC2019_5
@ MSVC2019_5
Definition: LangOptions.h:127
clang::FPOptions::dump
LLVM_DUMP_METHOD void dump()
Definition: LangOptions.cpp:86
clang::FPOptions::FirstWidth
static constexpr storage_type FirstWidth
Definition: LangOptions.h:492
clang::FPOptions::StorageBitSize
static constexpr unsigned StorageBitSize
Definition: LangOptions.h:488
clang::LangOptions::SOB_Defined
@ SOB_Defined
Definition: LangOptions.h:76
clang::LangOptions::MSVC2013
@ MSVC2013
Definition: LangOptions.h:121
clang::ObjCRuntime::isSubscriptPointerArithmetic
bool isSubscriptPointerArithmetic() const
Is subscripting pointer arithmetic?
Definition: ObjCRuntime.h:340
clang::LangOptions::ModuleName
std::string ModuleName
The module currently being compiled as specified by -fmodule-name.
Definition: LangOptions.h:337
clang::LangOptions::FPM_Fast
@ FPM_Fast
Definition: LangOptions.h:214
clang::LangOptions::ClangABI::Ver6
@ Ver6
Attempt to be ABI-compatible with code generated by Clang 6.0.x (SVN r321711).
clang::FPOptions::setAllowFPContractAcrossStatement
void setAllowFPContractAcrossStatement()
Definition: LangOptions.h:553
clang::LangOptions::AddrSpaceMapMangling
AddrSpaceMapMangling
Definition: LangOptions.h:115
clang::LangOptions::RoundingMode
llvm::RoundingMode RoundingMode
Definition: LangOptions.h:61
clang::LangOptions::MSVC2017_7
@ MSVC2017_7
Definition: LangOptions.h:125
clang::LangOptions::CoreFoundationABI::Swift4_2
@ Swift4_2
Interoperability with the Swift 4.2 runtime.
clang::LangOptions::MSVC2012
@ MSVC2012
Definition: LangOptions.h:120
clang::FPOptionsOverride::RoundingMode
llvm::RoundingMode RoundingMode
Definition: LangOptions.h:606