Chromium Code Reviews| Index: lib/Analysis/NaCl/PNaClABIVerifyFunctions.cpp |
| diff --git a/lib/Analysis/NaCl/PNaClABIVerifyFunctions.cpp b/lib/Analysis/NaCl/PNaClABIVerifyFunctions.cpp |
| index abc66b0addca49ac34139b9250abcb9f4462b4e4..2cbfe7068b6e42ccdf5e96f6e274d84fe8475e19 100644 |
| --- a/lib/Analysis/NaCl/PNaClABIVerifyFunctions.cpp |
| +++ b/lib/Analysis/NaCl/PNaClABIVerifyFunctions.cpp |
| @@ -48,8 +48,60 @@ bool PNaClABIVerifyFunctions::runOnFunction(Function &F) { |
| case Instruction::Switch: |
| case Instruction::Resume: |
| case Instruction::Unreachable: |
| + case Instruction::Invoke: |
| // indirectbr is not allowed for now. |
| - // invoke and call are handled separately. |
| + // Binary operations |
| + case Instruction::Add: |
| + case Instruction::FAdd: |
| + case Instruction::Sub: |
| + case Instruction::FSub: |
| + case Instruction::Mul: |
| + case Instruction::FMul: |
| + case Instruction::UDiv: |
| + case Instruction::SDiv: |
| + case Instruction::FDiv: |
| + case Instruction::URem: |
| + case Instruction::SRem: |
| + case Instruction::FRem: |
| + // Bitwise binary operations |
| + case Instruction::Shl: |
| + case Instruction::LShr: |
| + case Instruction::AShr: |
| + case Instruction::And: |
| + case Instruction::Or: |
| + case Instruction::Xor: |
| + // No vector instructions yet |
| + case Instruction::ExtractValue: |
| + case Instruction::InsertValue: |
| + // Memory instructions |
| + case Instruction::Alloca: |
| + case Instruction::Load: |
| + case Instruction::Store: |
| + case Instruction::Fence: |
| + case Instruction::AtomicCmpXchg: |
| + case Instruction::AtomicRMW: |
| + case Instruction::GetElementPtr: |
| + // Conversion operations |
| + case Instruction::Trunc: |
| + case Instruction::ZExt: |
| + case Instruction::SExt: |
| + case Instruction::FPTrunc: |
| + case Instruction::FPExt: |
| + case Instruction::FPToUI: |
| + case Instruction::FPToSI: |
| + case Instruction::UIToFP: |
| + case Instruction::SIToFP: |
| + case Instruction::PtrToInt: |
| + case Instruction::IntToPtr: |
| + case Instruction::BitCast: |
| + // Other operations |
| + case Instruction::ICmp: |
| + case Instruction::FCmp: |
| + case Instruction::PHI: |
| + case Instruction::Select: |
| + case Instruction::Call: |
| + case Instruction::VAArg: |
| + case Instruction::LandingPad: |
| break; |
| default: |
|
Mark Seaborn
2013/01/22 21:44:18
If you remove the "default:", we should get werror
Derek Schuff
2013/01/22 22:13:09
Done. It's still a good idea, but
1) LLVM doesn't
|
| errs() << Twine("Function ") + F.getName() + |