hanchenye-llvm-project/llvm/test/Assembler
Joseph Tremoulet 8220bcc570 [WinEH] Require token linkage in EH pad/ret signatures
Summary:
WinEHPrepare is going to require that cleanuppad and catchpad produce values
of token type which are consumed by any cleanupret or catchret exiting the
pad.  This change updates the signatures of those operators to require/enforce
that the type produced by the pads is token type and that the rets have an
appropriate argument.

The catchpad argument of a `CatchReturnInst` must be a `CatchPadInst` (and
similarly for `CleanupReturnInst`/`CleanupPadInst`).  To accommodate that
restriction, this change adds a notion of an operator constraint to both
LLParser and BitcodeReader, allowing appropriate sentinels to be constructed
for forward references and appropriate error messages to be emitted for
illegal inputs.

Also add a verifier rule (noted in LangRef) that a catchpad with a catchpad
predecessor must have no other predecessors; this ensures that WinEHPrepare
will see the expected linear relationship between sibling catches on the
same try.

Lastly, remove some superfluous/vestigial casts from instruction operand
setters operating on BasicBlocks.

Reviewers: rnk, majnemer

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D12108

llvm-svn: 245797
2015-08-23 00:26:33 +00:00
..
2002-03-08-NameCollision.ll
2002-03-08-NameCollision2.ll
2002-04-07-HexFloatConstants.ll
2002-04-07-InfConstant.ll
2002-04-29-NameBinding.ll
2002-05-02-InvalidForwardRef.ll
2002-07-14-OpaqueType.ll
2002-07-25-QuoteInString.ll
2002-07-25-ReturnPtrFunction.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
2002-07-31-SlashInString.ll
2002-08-15-CastAmbiguity.ll
2002-08-15-ConstantExprProblem.ll
2002-08-15-UnresolvedGlobalReference.ll
2002-08-16-ConstExprInlined.ll
2002-08-19-BytecodeReader.ll
2002-08-22-DominanceProblem.ll
2002-10-08-LargeArrayPerformance.ll
2002-10-13-ConstantEncodingProblem.ll
2002-12-15-GlobalResolve.ll
2003-01-30-UnsignedString.ll
2003-04-15-ConstantInitAssertion.ll
2003-04-25-UnresolvedGlobalReference.ll
2003-05-03-BytecodeReaderProblem.ll
2003-05-12-MinIntProblem.ll
2003-05-15-AssemblerProblem.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
2003-05-15-SwitchBug.ll
2003-05-21-ConstantShiftExpr.ll
2003-05-21-EmptyStructTest.ll
2003-05-21-MalformedShiftCrash.ll
2003-05-21-MalformedStructCrash.ll
2003-08-20-ConstantExprGEP-Fold.ll
2003-08-21-ConstantExprCast-Fold.ll
2003-11-05-ConstantExprShift.ll
2003-11-11-ImplicitRename.ll
2003-11-12-ConstantExprCast.ll
2003-11-24-SymbolTableCrash.ll
2004-01-11-getelementptrfolding.ll
2004-01-20-MaxLongLong.ll
2004-02-01-NegativeZero.ll
2004-02-27-SelfUseAssertError.ll
2004-03-07-FunctionAddressAlignment.ll
2004-03-30-UnclosedFunctionCrash.ll
2004-04-04-GetElementPtrIndexTypes.ll
2004-06-07-VerifierBug.ll
2004-10-22-BCWriterUndefBug.ll
2004-11-28-InvalidTypeCrash.ll
2005-01-03-FPConstantDisassembly.ll
2005-01-31-CallingAggregateFunction.ll
2005-05-05-OpaqueUndefValues.ll
2005-12-21-ZeroInitVector.ll
2006-09-28-CrashOnInvalid.ll
2006-12-09-Cast-To-Bool.ll
2007-01-02-Undefined-Arg-Type.ll
2007-01-05-Cmp-ConstExpr.ll
2007-01-16-CrashOnBadCast.ll
2007-01-16-CrashOnBadCast2.ll
2007-03-18-InvalidNumberedVar.ll
2007-03-19-NegValue.ll
2007-04-20-AlignedLoad.ll
2007-04-20-AlignedStore.ll
2007-04-25-AssemblerFoldExternWeak.ll
2007-05-21-Escape.ll
2007-07-19-ParamAttrAmbiguity.ll
2007-08-06-AliasInvalid.ll
2007-09-10-AliasFwdRef.ll
2007-09-29-GC.ll
2007-11-26-AttributeOverload.ll
2007-12-11-AddressSpaces.ll
2008-01-11-VarargAttrs.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
2008-02-18-IntPointerCrash.ll
2008-07-10-APInt.ll
2008-09-02-FunctionNotes.ll
2008-09-02-FunctionNotes2.ll
2008-09-29-RetAttr.ll
2008-10-14-QuoteInName.ll
2009-02-01-UnnamedForwardRef.ll
2009-02-28-CastOpc.ll
2009-02-28-StripOpaqueName.ll
2009-03-24-ZextConstantExpr.ll
2009-07-24-ZeroArgGEP.ll
2010-02-05-FunctionLocalMetadataBecomesNull.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
ConstantExprFold.ll
ConstantExprFoldCast.ll
ConstantExprFoldSelect.ll
ConstantExprNoFold.ll
MultipleReturnValueType.ll
addrspacecast-alias.ll
aggregate-constant-values.ll
aggregate-return-single-value.ll
alias-redefinition.ll
alias-use-list-order.ll
align-inst-alloca.ll
align-inst-load.ll
align-inst-store.ll
align-inst.ll
alignstack.ll
alloca-invalid-type-2.ll
alloca-invalid-type.ll
alloca-size-one.ll AsmWriter: Write alloca array size explicitly (and -instcombine fixup) 2015-03-13 19:30:44 +00:00
anon-functions.ll
atomic.ll
attribute-builtin.ll
auto_upgrade_intrinsics.ll
bcwrap.ll
call-invalid-1.ll
comment.ll
debug-info.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
dicompileunit.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
diexpression.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
difile-escaped-chars.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
diglobalvariable.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
diimportedentity.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
dilexicalblock.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
dilocalvariable-arg-large.ll DI: Remove DW_TAG_arg_variable and DW_TAG_auto_variable 2015-07-31 18:58:39 +00:00
dilocalvariable.ll DI: Remove DW_TAG_arg_variable and DW_TAG_auto_variable 2015-07-31 18:58:39 +00:00
dilocation.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
dimodule.ll Add a DIModule metadata node to the IR. 2015-06-29 23:03:47 +00:00
dinamespace.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
diobjcproperty.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
distinct-mdnode.ll
disubprogram.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
disubrange-empty-array.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
disubroutinetype.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
ditemplateparameter.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
ditype-large-values.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
drop-debug-info.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
externally-initialized.ll
extractvalue-invalid-idx.ll
extractvalue-no-idx.ll
fast-math-flags.ll
flags.ll
generic-debug-node.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
getInt.ll
getelementptr.ll Make the test introduced in r239015 more targeted. 2015-06-04 07:21:42 +00:00
getelementptr_invalid_ptr.ll
getelementptr_struct.ll
getelementptr_vec_idx1.ll Extended syntax of vector version of getelementptr instruction. 2015-07-09 07:42:48 +00:00
getelementptr_vec_idx2.ll Extended syntax of vector version of getelementptr instruction. 2015-07-09 07:42:48 +00:00
getelementptr_vec_idx3.ll Extended syntax of vector version of getelementptr instruction. 2015-07-09 07:42:48 +00:00
getelementptr_vec_idx4.ll
getelementptr_vec_struct.ll
global-addrspace-forwardref.ll
gv-invalid-type.ll
half-constprop.ll
half-conv.ll
half.ll
huge-array.ll
inalloca.ll
inline-asm-clobber.ll
insertextractvalue.ll
insertvalue-invalid-idx.ll
insertvalue-invalid-type-1.ll
insertvalue-invalid-type.ll
internal-hidden-alias.ll
internal-hidden-function.ll
internal-hidden-variable.ll
internal-protected-alias.ll
internal-protected-function.ll
internal-protected-variable.ll
invalid-OperatorConstraint.ll [WinEH] Require token linkage in EH pad/ret signatures 2015-08-23 00:26:33 +00:00
invalid-attrgrp.ll
invalid-comdat.ll
invalid-comdat2.ll
invalid-datalayout1.ll
invalid-datalayout2.ll
invalid-datalayout3.ll
invalid-datalayout4.ll
invalid-datalayout5.ll
invalid-datalayout6.ll
invalid-datalayout7.ll
invalid-datalayout8.ll
invalid-datalayout9.ll
invalid-datalayout10.ll
invalid-datalayout11.ll
invalid-datalayout12.ll
invalid-datalayout13.ll
invalid-datalayout14.ll
invalid-datalayout15.ll
invalid-datalayout16.ll
invalid-datalayout17.ll
invalid-datalayout18.ll
invalid-datalayout19.ll
invalid-datalayout20.ll
invalid-datalayout21.ll
invalid-datalayout22.ll
invalid-datalayout23.ll
invalid-datalayout24.ll
invalid-debug-info-version.ll
invalid-dicompileunit-language-bad.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
invalid-dicompileunit-language-overflow.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
invalid-dicompileunit-missing-language.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
invalid-dicompileunit-null-file.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
invalid-dicompileunit-uniqued.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
invalid-dicompositetype-missing-tag.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-diderivedtype-missing-basetype.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-diderivedtype-missing-tag.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dienumerator-missing-name.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dienumerator-missing-value.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-diexpression-large.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-diexpression-verify.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-difile-missing-directory.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-difile-missing-filename.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-diglobalvariable-empty-name.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-diglobalvariable-missing-name.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-diimportedentity-missing-scope.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-diimportedentity-missing-tag.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilexicalblock-missing-scope.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilexicalblock-null-scope.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilexicalblockfile-missing-discriminator.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilexicalblockfile-missing-scope.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilexicalblockfile-null-scope.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilocalvariable-arg-large.ll DI: Remove DW_TAG_arg_variable and DW_TAG_auto_variable 2015-07-31 18:58:39 +00:00
invalid-dilocalvariable-arg-negative.ll DI: Remove DW_TAG_arg_variable and DW_TAG_auto_variable 2015-07-31 18:58:39 +00:00
invalid-dilocalvariable-missing-scope.ll DI: Remove DW_TAG_arg_variable and DW_TAG_auto_variable 2015-07-31 18:58:39 +00:00
invalid-dilocalvariable-null-scope.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilocation-field-bad.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilocation-field-twice.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilocation-missing-scope-2.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilocation-missing-scope.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilocation-null-scope.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilocation-overflow-column.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilocation-overflow-line.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dinamespace-missing-namespace.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-disubrange-count-large.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-disubrange-count-missing.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-disubrange-count-negative.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-disubrange-lowerBound-max.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-disubrange-lowerBound-min.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-disubroutinetype-missing-types.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-ditemplatetypeparameter-missing-type.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-ditemplatevalueparameter-missing-value.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-fwdref1.ll
invalid-fwdref2.ll
invalid-generic-debug-node-tag-bad.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
invalid-generic-debug-node-tag-missing.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
invalid-generic-debug-node-tag-overflow.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
invalid-generic-debug-node-tag-wrong-type.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
invalid-gep-mismatched-explicit-type.ll
invalid-gep-missing-explicit-type.ll
invalid-hexint.ll
invalid-label.ll
invalid-landingpad.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
invalid-load-mismatched-explicit-type.ll
invalid-load-missing-explicit-type.ll
invalid-mdnode-badref.ll
invalid-mdnode-vector.ll
invalid-mdnode-vector2.ll
invalid-metadata-attachment-has-type.ll
invalid-metadata-function-local-attachments.ll
invalid-metadata-function-local-complex-1.ll
invalid-metadata-function-local-complex-2.ll
invalid-metadata-function-local-complex-3.ll
invalid-metadata-has-type.ll
invalid-name.ll
invalid-name2.ll
invalid-safestack-param.ll Add safestack attribute to LLVMAttribute enum and Go bindings. Correct 2015-06-15 22:16:51 +00:00
invalid-safestack-return.ll Add safestack attribute to LLVMAttribute enum and Go bindings. Correct 2015-06-15 22:16:51 +00:00
invalid-specialized-mdnode.ll
invalid-uselistorder-function-between-blocks.ll
invalid-uselistorder-function-missing-named.ll
invalid-uselistorder-function-missing-numbered.ll
invalid-uselistorder-global-missing.ll
invalid-uselistorder-indexes-duplicated.ll
invalid-uselistorder-indexes-empty.ll
invalid-uselistorder-indexes-one.ll
invalid-uselistorder-indexes-ordered.ll
invalid-uselistorder-indexes-range.ll
invalid-uselistorder-indexes-toofew.ll
invalid-uselistorder-indexes-toomany.ll
invalid-uselistorder-type.ll
invalid-uselistorder_bb-missing-bb.ll
invalid-uselistorder_bb-missing-body.ll
invalid-uselistorder_bb-missing-func.ll
invalid-uselistorder_bb-not-bb.ll
invalid-uselistorder_bb-not-func.ll
invalid-uselistorder_bb-numbered.ll
invalid_cast.ll
invalid_cast2.ll
invalid_cast3.ll
invalid_cast4.ll
large-comdat.ll
metadata-function-local.ll Assembler: Rewrite test for function-local metadata 2015-03-15 00:45:51 +00:00
metadata-null-operands.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
metadata.ll [IR/AsmWriter] Output escape sequences if the first character isdigit() 2015-06-02 21:25:08 +00:00
musttail-invalid-1.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
musttail-invalid-2.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
musttail.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
named-metadata.ll
numbered-values.ll
private-hidden-alias.ll
private-hidden-function.ll
private-hidden-variable.ll
private-protected-alias.ll
private-protected-function.ll
private-protected-variable.ll
select.ll
short-hexpair.ll
tls-models.ll
token.ll [IR] Add token types 2015-08-14 05:09:07 +00:00
unnamed-addr.ll
unnamed-alias.ll Allow aliases to be unnamed. 2015-06-17 17:53:31 +00:00
unnamed-comdat.ll
unnamed.ll
unsized-recursive-type.ll
upgrade-loop-metadata.ll
uselistorder.ll
uselistorder_bb.ll
vbool-cmp.ll
vector-cmp.ll
vector-select.ll
vector-shift.ll
x86mmx.ll