1
0
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:
Rafael Espindola 2011-05-25 12:54:08 +00:00
parent 271d62cbd3
commit 84604c0b6c
2 changed files with 5 additions and 4 deletions

View File

@ -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;

View File

@ -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();
}