diff options
author | Melanie Blower <melanie.blower@intel.com> | 2020-06-26 09:23:45 -0700 |
---|---|---|
committer | Melanie Blower <melanie.blower@intel.com> | 2020-06-27 01:34:57 -0700 |
commit | f4aaed3bf16b3c07152c7a47d1a363a8267ebcf1 (patch) | |
tree | f96af05b5edd63e33c240d5f447057ad014c08d1 /clang/lib/Basic/LangOptions.cpp | |
parent | 89812eeee97c8f7ab2e6ee2c48edb7a409dfff39 (diff) | |
download | llvm-f4aaed3bf16b3c07152c7a47d1a363a8267ebcf1.zip llvm-f4aaed3bf16b3c07152c7a47d1a363a8267ebcf1.tar.gz llvm-f4aaed3bf16b3c07152c7a47d1a363a8267ebcf1.tar.bz2 |
Reland D81869 "Modify FPFeatures to use delta not absolute settings"
This reverts commit defd43a5b393bb63a902042adf578081b03b171d.
with correction to solve msan report
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"; } |