diff options
author | Duncan Sands <baldrick@free.fr> | 2007-07-27 15:09:54 +0000 |
---|---|---|
committer | Duncan Sands <baldrick@free.fr> | 2007-07-27 15:09:54 +0000 |
commit | fdef00f1f7da225ad5d21f3148487e3547954a0c (patch) | |
tree | 2af2e0d7c9c69a5d9ba5df6a6f6d2b9c840e2dd5 /lib/Support/SmallPtrSet.cpp | |
parent | 36397f50343639ce9a25996f2d790c656791ab92 (diff) |
As the number of parameter attributes increases,
Verifier::visitFunction is suffering a combinatorial
explosion due to the number of mutually incompatible
attributes. This patch tidies the whole thing up
using attribute masks. While there I fixed some
small bugs: (1) the ByVal attribute tests cast a
type to a pointer type, which can fail. Yes, the
fact it is of a pointer type is checked before,
but a failing check does not cause the program
to exit, it continues on outputting further errors;
(2) Nothing was checking that an sret attribute is
on the first parameter; (3) nothing was checking that
a function for which isStructReturn() is true has a
parameter with the sret attribute and vice-versa (I
don't think it is possible for this to go wrong, but
it seems right to check it).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40553 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Support/SmallPtrSet.cpp')
0 files changed, 0 insertions, 0 deletions