mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-01 08:28:19 +00:00
b7b28dc6d0
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). llvm-svn: 40553 |
||
---|---|---|
.. | ||
AsmWriter.cpp | ||
BasicBlock.cpp | ||
ConstantFold.cpp | ||
ConstantFold.h | ||
Constants.cpp | ||
Dominators.cpp | ||
Function.cpp | ||
Globals.cpp | ||
InlineAsm.cpp | ||
Instruction.cpp | ||
Instructions.cpp | ||
IntrinsicInst.cpp | ||
LeakDetector.cpp | ||
Makefile | ||
Mangler.cpp | ||
Module.cpp | ||
ModuleProvider.cpp | ||
Pass.cpp | ||
PassManager.cpp | ||
SymbolTableListTraitsImpl.h | ||
Type.cpp | ||
TypeSymbolTable.cpp | ||
Value.cpp | ||
ValueSymbolTable.cpp | ||
ValueTypes.cpp | ||
Verifier.cpp |