diff options
author | Serge Guelton <sguelton@redhat.com> | 2021-03-24 16:45:04 -0400 |
---|---|---|
committer | serge-sans-paille <sguelton@redhat.com> | 2021-04-17 08:17:33 +0200 |
commit | d6de1e1a71406c75a4ea4d5a2fe84289f07ea3a1 (patch) | |
tree | abbf039ca49e20d35a9796d4fae72300ac4f5072 /clang/lib/CodeGen/CodeGenFunction.cpp | |
parent | bbba69425c6131283163af99201577c296aa3877 (diff) | |
download | llvm-d6de1e1a71406c75a4ea4d5a2fe84289f07ea3a1.zip llvm-d6de1e1a71406c75a4ea4d5a2fe84289f07ea3a1.tar.gz llvm-d6de1e1a71406c75a4ea4d5a2fe84289f07ea3a1.tar.bz2 |
Normalize interaction with boolean attributes
Such attributes can either be unset, or set to "true" or "false" (as string).
throughout the codebase, this led to inelegant checks ranging from
if (Fn->getFnAttribute("no-jump-tables").getValueAsString() == "true")
to
if (Fn->hasAttribute("no-jump-tables") && Fn->getFnAttribute("no-jump-tables").getValueAsString() == "true")
Introduce a getValueAsBool that normalize the check, with the following
behavior:
no attributes or attribute set to "false" => return false
attribute set to "true" => return true
Differential Revision: https://reviews.llvm.org/D99299
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.cpp')
-rw-r--r-- | clang/lib/CodeGen/CodeGenFunction.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CodeGenFunction.cpp b/clang/lib/CodeGen/CodeGenFunction.cpp index ca59dc4..09d49c9 100644 --- a/clang/lib/CodeGen/CodeGenFunction.cpp +++ b/clang/lib/CodeGen/CodeGenFunction.cpp @@ -174,7 +174,7 @@ void CodeGenFunction::CGFPOptionsRAII::ConstructorHelper(FPOptions FPFeatures) { auto mergeFnAttrValue = [&](StringRef Name, bool Value) { auto OldValue = - CGF.CurFn->getFnAttribute(Name).getValueAsString() == "true"; + CGF.CurFn->getFnAttribute(Name).getValueAsBool(); auto NewValue = OldValue & Value; if (OldValue != NewValue) CGF.CurFn->addFnAttr(Name, llvm::toStringRef(NewValue)); |