llvm-project/llvm/test/Assembler
Peter Collingbourne fb9ce100d1 hwasan: Add a tag_offset DWARF attribute to instrumented stack variables.
The goal is to improve hwasan's error reporting for stack use-after-return by
recording enough information to allow the specific variable that was accessed
to be identified based on the pointer's tag. Currently we record the PC and
lower bits of SP for each stack frame we create (which will eventually be
enough to derive the base tag used by the stack frame) but that's not enough
to determine the specific tag for each variable, which is the stack frame's
base tag XOR a value (the "tag offset") that is unique for each variable in
a function.

In IR, the tag offset is most naturally represented as part of a location
expression on the llvm.dbg.declare instruction. However, the presence of the
tag offset in the variable's actual location expression is likely to confuse
debuggers which won't know about tag offsets, and moreover the tag offset
is not required for a debugger to determine the location of the variable on
the stack, so at the DWARF level it is represented as an attribute so that
it will be ignored by debuggers that don't know about it.

Differential Revision: https://reviews.llvm.org/D63119

llvm-svn: 363635
2019-06-17 23:39:41 +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
2002-07-31-SlashInString.ll Don't output bitcode to stdout in 2002-07-31-SlashInString.ll test 2018-02-27 11:15:05 +00:00
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
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 Make shell redirection construct portable 2017-07-12 13:24:46 +00:00
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 Revert patches 348835 and 348571 because they're 2019-01-04 16:39:10 +00:00
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 Make shell redirection construct portable 2017-07-12 13:24:46 +00:00
2007-12-11-AddressSpaces.ll
2008-01-11-VarargAttrs.ll
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
ConstantExprFold.ll
ConstantExprFoldCast.ll
ConstantExprFoldSelect.ll
ConstantExprNoFold.ll ConstantFold: Don't fold global address vs. null for addrspace != 0 2018-06-26 18:55:43 +00:00
DICommonBlock.ll Add LLVM IR debug info support for Fortran COMMON blocks 2019-04-08 19:13:55 +00:00
DIEnumerator.ll Rename DIFlagFixedEnum to DIFlagEnumClass. NFC 2019-01-08 17:52:29 +00:00
DIGlobalVariableExpression.ll Parse and print DIExpressions inline to ease IR and MIR testing 2017-08-23 20:31:27 +00:00
DIMacroFile.ll [LLParser] Make the line field of DIMacro(File) optional. 2016-12-22 00:29:00 +00:00
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-addrspace-elems.ll Fix assembler for alloca of multiple elements in non-zero addr space 2017-10-14 03:23:18 +00:00
alloca-addrspace-parse-error-0.ll Allow DataLayout to specify addrspace for allocas. 2017-04-10 22:27:50 +00:00
alloca-addrspace-parse-error-1.ll Allow DataLayout to specify addrspace for allocas. 2017-04-10 22:27:50 +00:00
alloca-addrspace0.ll Allow DataLayout to specify addrspace for allocas. 2017-04-10 22:27:50 +00:00
alloca-invalid-type-2.ll
alloca-invalid-type.ll
alloca-size-one.ll
anon-functions.ll
asm-path-writer.ll [ThinLTO] Escape module paths when printing 2018-07-12 14:40:21 +00:00
atomic.ll Reapply "IR: Add fp operations to atomicrmw" 2019-01-22 18:18:02 +00:00
attribute-builtin.ll
auto_upgrade_intrinsics.ll Verifier: Make sure masked load/store alignment is a power of 2 2019-03-13 19:46:34 +00:00
auto_upgrade_nvvm_intrinsics.ll [NVPTX] Auto-upgrade some NVPTX intrinsics to LLVM target-generic code. 2017-01-21 01:00:32 +00:00
autoupgrade-invalid-mem-intrinsics.ll IR: Add immarg attribute 2019-03-12 21:02:54 +00:00
autoupgrade-thread-pointer.ll
bcwrap.ll
block-labels.ll IR: Support parsing numeric block ids, and emit them in textual output. 2019-03-22 18:27:13 +00:00
byval-type-attr.ll Reapply: IR: add optional type to 'byval' function parameters 2019-05-30 18:48:23 +00:00
call-invalid-1.ll
call-nonzero-program-addrspace-2.ll Allow creating llvm::Function in non-zero address spaces 2018-08-23 09:25:17 +00:00
call-nonzero-program-addrspace.ll Allow creating llvm::Function in non-zero address spaces 2018-08-23 09:25:17 +00:00
comment.ll
datalayout-alloca-addrspace-mismatch-0.ll LLParser: add an argument for overriding data layout and do not check alloca addr space 2018-01-30 22:32:39 +00:00
datalayout-alloca-addrspace-mismatch-1.ll LLParser: add an argument for overriding data layout and do not check alloca addr space 2018-01-30 22:32:39 +00:00
datalayout-alloca-addrspace-mismatch-2.ll LLParser: add an argument for overriding data layout and do not check alloca addr space 2018-01-30 22:32:39 +00:00
datalayout-alloca-addrspace.ll Allow DataLayout to specify addrspace for allocas. 2017-04-10 22:27:50 +00:00
datalayout-program-addrspace.ll Add default address space for functions to the data layout (1/3) 2018-02-19 09:56:22 +00:00
debug-info-source-invalid.ll [DWARFv5] Verify all-or-nothing constraint on DIFile source 2018-11-30 19:13:38 +00:00
debug-info-source.ll [DWARFv5] Verify all-or-nothing constraint on DIFile source 2018-11-30 19:13:38 +00:00
debug-info.ll [test] Fix Assembler/debug-info.ll 2018-09-21 12:28:44 +00:00
debug-label-bitcode.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
debug-variant-discriminator.ll Ensure that variant part discriminator is read by MetadataLoader 2018-09-21 12:03:14 +00:00
dicompileunit.ll DebugInfo: Add flag to CU to disable emission of inline debug info into the skeleton CU 2016-08-24 18:29:49 +00:00
dicompositetype-members.ll
diexpression.ll hwasan: Add a tag_offset DWARF attribute to instrumented stack variables. 2019-06-17 23:39:41 +00:00
difile-escaped-chars.ll
diglobalvariable.ll Emit template type and value parameter DIEs for template variables. 2018-10-03 18:44:53 +00:00
diimportedentity.ll Debug Info: Add a file: field to DIImportedEntity. 2017-07-19 00:09:54 +00:00
dilexicalblock.ll
dilocalvariable-arg-large.ll
dilocalvariable.ll DebugInfo: preparation to implement DW_AT_alignment 2016-10-20 00:13:12 +00:00
dilocation.ll [IR] Add a boolean field in DILocation to know if a line must covered or not 2018-09-20 08:53:06 +00:00
dimodule.ll
dinamespace.ll Remove line and file from DINamespace. 2017-04-28 22:25:46 +00:00
diobjcproperty.ll
distinct-mdnode.ll
disubprogram.ll Add IR debug info support for Elemental, Pure, and Recursive Procedures. 2019-03-14 16:29:54 +00:00
disubrange-empty-array.ll
disubroutinetype.ll
ditemplateparameter.ll
ditype-large-values.ll DebugInfo: change alignment type from uint64_t to uint32_t to save space. 2016-10-18 14:31:22 +00:00
dllimport-dsolocal-diag.ll Represent runtime preemption in the IR. 2017-10-26 15:00:26 +00:00
drop-debug-info-nonzero-alloca.ll LLParser: add an argument for overriding data layout and do not check alloca addr space 2018-01-30 22:32:39 +00:00
drop-debug-info.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
externally-initialized.ll
extractvalue-invalid-idx.ll
extractvalue-no-idx.ll
fast-math-flags.ll [IR] Add a dedicated FNeg IR Instruction 2018-11-13 18:15:47 +00:00
flags.ll
generic-debug-node.ll
getInt.ll
getelementptr.ll IR: Introduce inrange attribute on getelementptr indices. 2016-11-10 22:34:55 +00:00
getelementptr_invalid_ptr.ll
getelementptr_struct.ll
getelementptr_vec_ce.ll [ConstantFold] Support vector index when factoring out GEP index into preceding dimensions 2017-12-04 19:56:33 +00:00
getelementptr_vec_ce2.ll [LLParser] Parse vector GEP constant expression correctly 2016-12-21 18:29:47 +00:00
getelementptr_vec_idx1.ll
getelementptr_vec_idx2.ll
getelementptr_vec_idx3.ll
getelementptr_vec_idx4.ll
getelementptr_vec_struct.ll
global-addrspace-forwardref.ll
globalvariable-attributes.ll [IR] Allow attributes with global variables 2017-05-11 12:28:08 +00:00
gv-invalid-type.ll
half-constprop.ll
half-conv.ll
half.ll
huge-array.ll
ifunc-asm.ll
ifunc-dsolocal.ll Allow dso_local on ifunc. 2018-01-12 17:03:43 +00:00
ifunc-use-list-order.ll
immarg-param-attribute.ll IR: Add immarg attribute 2019-03-12 21:02:54 +00:00
inalloca.ll
incorrect-tdep-attrs-parsing.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-alias-mismatched-explicit-type.ll
invalid-atomicrmw-add-must-be-integer-type.ll Add atomicrmw operation to error messages 2018-10-03 02:37:15 +00:00
invalid-atomicrmw-fadd-must-be-fp-type.ll Reapply "IR: Add fp operations to atomicrmw" 2019-01-22 18:18:02 +00:00
invalid-atomicrmw-fsub-must-be-fp-type.ll Reapply "IR: Add fp operations to atomicrmw" 2019-01-22 18:18:02 +00:00
invalid-atomicrmw-xchg-must-be-integer-or-fp-type.ll Allow FP types for atomicrmw xchg 2019-01-17 10:49:01 +00:00
invalid-attrgrp.ll
invalid-block-label-num.ll IR: Support parsing numeric block ids, and emit them in textual output. 2019-03-22 18:27:13 +00:00
invalid-byval-type1.ll Reapply: IR: add optional type to 'byval' function parameters 2019-05-30 18:48:23 +00:00
invalid-byval-type2.ll Reapply: IR: add optional type to 'byval' function parameters 2019-05-30 18:48:23 +00:00
invalid-byval-type3.ll Reapply: IR: add optional type to 'byval' function parameters 2019-05-30 18:48:23 +00:00
invalid-comdat.ll
invalid-comdat2.ll
invalid-datalayout-alloca-addrspace.ll Add default address space for functions to the data layout (1/3) 2018-02-19 09:56:22 +00:00
invalid-datalayout-program-addrspace.ll Add default address space for functions to the data layout (1/3) 2018-02-19 09:56:22 +00:00
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-emissionkind-bad.ll
invalid-dicompileunit-language-bad.ll
invalid-dicompileunit-language-overflow.ll
invalid-dicompileunit-missing-language.ll
invalid-dicompileunit-null-file.ll
invalid-dicompileunit-uniqued.ll
invalid-dicompositetype-missing-tag.ll
invalid-diderivedtype-missing-basetype.ll
invalid-diderivedtype-missing-tag.ll
invalid-dienumerator-missing-name.ll
invalid-dienumerator-missing-value.ll
invalid-diexpression-large.ll
invalid-diexpression-verify.ll Parse and print DIExpressions inline to ease IR and MIR testing 2017-08-23 20:31:27 +00:00
invalid-difile-missing-directory.ll
invalid-difile-missing-filename.ll
invalid-diglobalvariable-empty-name.ll
invalid-diglobalvariable-missing-name.ll
invalid-diimportedentity-missing-scope.ll
invalid-diimportedentity-missing-tag.ll
invalid-dilexicalblock-missing-scope.ll
invalid-dilexicalblock-null-scope.ll
invalid-dilexicalblockfile-missing-discriminator.ll
invalid-dilexicalblockfile-missing-scope.ll
invalid-dilexicalblockfile-null-scope.ll
invalid-dilocalvariable-arg-large.ll
invalid-dilocalvariable-arg-negative.ll
invalid-dilocalvariable-missing-scope.ll
invalid-dilocalvariable-null-scope.ll
invalid-dilocation-field-bad.ll
invalid-dilocation-field-twice.ll
invalid-dilocation-missing-scope-2.ll
invalid-dilocation-missing-scope.ll
invalid-dilocation-null-scope.ll
invalid-dilocation-overflow-column.ll
invalid-dilocation-overflow-line.ll
invalid-dinamespace-missing-namespace.ll
invalid-disubprogram-uniqued-definition.ll [DebugInfo] IR/Bitcode changes for DISubprogram flags. 2018-11-28 21:14:32 +00:00
invalid-disubrange-count-large.ll
invalid-disubrange-count-missing.ll
invalid-disubrange-count-negative.ll
invalid-disubrange-count-node.ll [Metadata] Extend 'count' field of DISubrange to take a metadata node 2018-01-24 09:56:07 +00:00
invalid-disubrange-lowerBound-max.ll
invalid-disubrange-lowerBound-min.ll
invalid-disubroutinetype-missing-types.ll
invalid-ditemplatetypeparameter-missing-type.ll
invalid-ditemplatevalueparameter-missing-value.ll
invalid-fp80hex.ll
invalid-fwdref1.ll
invalid-fwdref2.ll
invalid-generic-debug-node-tag-bad.ll
invalid-generic-debug-node-tag-missing.ll
invalid-generic-debug-node-tag-overflow.ll
invalid-generic-debug-node-tag-wrong-type.ll
invalid-gep-mismatched-explicit-type.ll
invalid-gep-missing-explicit-type.ll
invalid-hexint.ll
invalid-immarg.ll IR: Add immarg attribute 2019-03-12 21:02:54 +00:00
invalid-immarg2.ll IR: Add immarg attribute 2019-03-12 21:02:54 +00:00
invalid-immarg3.ll IR: Add immarg attribute 2019-03-12 21:02:54 +00:00
invalid-inline-constraint.ll
invalid-inttype.ll Fix IntegerType::MAX_INT_BITS value 2016-10-04 12:43:46 +00:00
invalid-label.ll
invalid-landingpad.ll
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
invalid-safestack-return.ll
invalid-specialized-mdnode.ll
invalid-untyped-metadata.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-vecreduce.ll Change semantics of fadd/fmul vector reductions. 2019-06-11 08:22:10 +00:00
invalid_cast.ll
invalid_cast2.ll
invalid_cast3.ll
invalid_cast4.ll
invoke-nonzero-program-addrspace.ll Allow creating llvm::Function in non-zero address spaces 2018-08-23 09:25:17 +00:00
large-comdat.ll
local-unnamed-addr.ll
max-inttype.ll Fix IntegerType::MAX_INT_BITS value 2016-10-04 12:43:46 +00:00
metadata-decl.ll
metadata-function-local.ll
metadata-null-operands.ll
metadata.ll
missing-tbaa.ll
musttail-invalid-1.ll
musttail-invalid-2.ll
musttail.ll
named-metadata.ll
no-mdstring-upgrades.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
source-filename-backslash.ll
source-filename.ll
thinlto-bad-summary1.ll [ThinLTO] Parse module summary index from assembly 2018-06-26 13:56:49 +00:00
thinlto-bad-summary2.ll [ThinLTO] Parse module summary index from assembly 2018-06-26 13:56:49 +00:00
thinlto-bad-summary3.ll [ThinLTO] Parse module summary index from assembly 2018-06-26 13:56:49 +00:00
thinlto-summary.ll [ThinLTO] Auto-hide prevailing linkonce_odr only when all copies eligible 2019-05-10 20:08:24 +00:00
tls-models.ll
token.ll
unnamed-addr.ll
unnamed-alias.ll
unnamed-comdat.ll
unnamed.ll
unsized-recursive-type.ll
uselistorder.ll
uselistorder_bb.ll
vbool-cmp.ll
vector-cmp.ll
vector-select.ll
vector-shift.ll
x86mmx.ll