I kept the reference to the ABI since that is the common case. The
-fno-asynchronous-unwind-tables option is a user controlled way of breaking
the ABI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132053
91177308-0d34-0410-b5e6-
96231b3b80d8
/// uses tables for both, the semantics are:
/// nil = Needs an entry because an exception might pass by.
/// nounwind = No need for an entry
-/// ehframe = Needs an entry because the ABI says so and because
+/// uwtable = Needs an entry because the ABI says so and because
/// an exception might pass by.
-/// ehframe + nounwind = Needs an entry because the ABI says so.
+/// uwtable + nounwind = Needs an entry because the ABI says so.
/// @brief Attributes that only apply to function parameters.
const Attributes ParameterOnly = ByVal | Nest | StructRet | NoCapture;
else removeFnAttr(Attribute::NoUnwind);
}
- /// @brief True if the ABI mandates this function be in a unwind table.
+ /// @brief True if the ABI mandates (or the user requested) that this
+ /// function be in a unwind table.
bool hasUWTable() const {
return hasFnAttr(Attribute::UWTable);
}
removeFnAttr(Attribute::UWTable);
}
- /// @brief True if this function needs in a unwind table.
+ /// @brief True if this function needs an unwind table.
bool needsUnwindTableEntry() const {
return hasUWTable() || !doesNotThrow();
}