mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-19 19:12:56 +02:00
Fix some issues Duncan found in the previous commit.
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. llvm-svn: 132053
This commit is contained in:
parent
271d62cbd3
commit
84604c0b6c
@ -78,9 +78,9 @@ const Attributes UWTable = 1<<30; ///< Function must be in a unwind
|
||||
/// 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;
|
||||
|
@ -253,7 +253,8 @@ public:
|
||||
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);
|
||||
}
|
||||
@ -264,7 +265,7 @@ public:
|
||||
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();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user