diff options
author | Melanie Blower <melanie.blower@intel.com> | 2020-06-26 07:54:01 -0700 |
---|---|---|
committer | Melanie Blower <melanie.blower@intel.com> | 2020-06-26 08:00:08 -0700 |
commit | 9518763d710bfbbf9315fa88972c55898be44a0e (patch) | |
tree | f8dab0c6d06ea0b2fe44ab6db3d5578412d6f41b /clang/lib/Basic/LangOptions.cpp | |
parent | e086a39c118fa6c1d8d23257ff0f112d000d87fe (diff) | |
download | llvm-9518763d710bfbbf9315fa88972c55898be44a0e.zip llvm-9518763d710bfbbf9315fa88972c55898be44a0e.tar.gz llvm-9518763d710bfbbf9315fa88972c55898be44a0e.tar.bz2 |
Revert "Revert "Modify FPFeatures to use delta not absolute settings""
This reverts commit b55d723ed61052b77e720dcffecac43abe873186.
Reapply Modify FPFeatures to use delta not absolute settings
To solve https://bugs.llvm.org/show_bug.cgi?id=46166 where the
floating point settings in PCH files aren't compatible, rewrite
FPFeatures to use a delta in the settings rather than absolute settings.
With this patch, these floating point options can be benign.
Reviewers: rjmccall
Differential Revision: https://reviews.llvm.org/D81869
Diffstat (limited to 'clang/lib/Basic/LangOptions.cpp')
-rw-r--r-- | clang/lib/Basic/LangOptions.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/clang/lib/Basic/LangOptions.cpp b/clang/lib/Basic/LangOptions.cpp index a74efdc..c08670c 100644 --- a/clang/lib/Basic/LangOptions.cpp +++ b/clang/lib/Basic/LangOptions.cpp @@ -24,7 +24,7 @@ void LangOptions::resetNonModularOptions() { #define LANGOPT(Name, Bits, Default, Description) #define BENIGN_LANGOPT(Name, Bits, Default, Description) Name = Default; #define BENIGN_ENUM_LANGOPT(Name, Type, Bits, Default, Description) \ - Name = Default; + Name = static_cast<unsigned>(Default); #include "clang/Basic/LangOptions.def" // These options do not affect AST generation. @@ -53,6 +53,17 @@ FPOptions FPOptions::defaultWithoutTrailingStorage(const LangOptions &LO) { return result; } -bool FPOptions::requiresTrailingStorage(const LangOptions &LO) { - return getAsOpaqueInt() != defaultWithoutTrailingStorage(LO).getAsOpaqueInt(); +LLVM_DUMP_METHOD void FPOptions::dump() { +#define OPTION(NAME, TYPE, WIDTH, PREVIOUS) \ + llvm::errs() << "\n " #NAME " " << get##NAME(); +#include "clang/Basic/FPOptions.def" + llvm::errs() << "\n"; +} + +LLVM_DUMP_METHOD void FPOptionsOverride::dump() { +#define OPTION(NAME, TYPE, WIDTH, PREVIOUS) \ + if (has##NAME##Override()) \ + llvm::errs() << "\n " #NAME " Override is " << get##NAME##Override(); +#include "clang/Basic/FPOptions.def" + llvm::errs() << "\n"; } |