[Reproducers] Capture return values of functions returning by ptr/ref
authorJonas Devlieghere <jonas@devlieghere.com>
Wed, 3 Apr 2019 21:31:22 +0000 (21:31 +0000)
committerJonas Devlieghere <jonas@devlieghere.com>
Wed, 3 Apr 2019 21:31:22 +0000 (21:31 +0000)
commit306809f292c9dd26e1a901b139f65976cdd5a4b2
treeb22cc9af74e85c1ab680b7ad5a8ac035fda72f5e
parent7c711ccf36e0a818f76d711715956ffe831f53b6
[Reproducers] Capture return values of functions returning by ptr/ref

For some reason I had convinced myself that functions returning by
pointer or reference do not require recording their result. However,
after further considering I don't see how that could work, at least not
with the current implementation. Interestingly enough, the reproducer
instrumentation already (mostly) accounts for this, though the
lldb-instr tool did not.

This patch adds the missing macros and updates the lldb-instr tool.

Differential revision: https://reviews.llvm.org/D60178

llvm-svn: 357639
64 files changed:
lldb/include/lldb/Utility/ReproducerInstrumentation.h
lldb/lit/tools/lldb-instr/Inputs/foo.cpp
lldb/lit/tools/lldb-instr/Inputs/foo.h
lldb/lit/tools/lldb-instr/TestInstrumentationRecord.test
lldb/lit/tools/lldb-instr/TestInstrumentationRegister.test
lldb/source/API/SBAddress.cpp
lldb/source/API/SBAttachInfo.cpp
lldb/source/API/SBBlock.cpp
lldb/source/API/SBBreakpoint.cpp
lldb/source/API/SBBreakpointLocation.cpp
lldb/source/API/SBBreakpointName.cpp
lldb/source/API/SBBroadcaster.cpp
lldb/source/API/SBCommandInterpreter.cpp
lldb/source/API/SBCommandReturnObject.cpp
lldb/source/API/SBCompileUnit.cpp
lldb/source/API/SBData.cpp
lldb/source/API/SBDebugger.cpp
lldb/source/API/SBDeclaration.cpp
lldb/source/API/SBError.cpp
lldb/source/API/SBEvent.cpp
lldb/source/API/SBExecutionContext.cpp
lldb/source/API/SBExpressionOptions.cpp
lldb/source/API/SBFileSpec.cpp
lldb/source/API/SBFileSpecList.cpp
lldb/source/API/SBFrame.cpp
lldb/source/API/SBFunction.cpp
lldb/source/API/SBInstruction.cpp
lldb/source/API/SBInstructionList.cpp
lldb/source/API/SBLineEntry.cpp
lldb/source/API/SBListener.cpp
lldb/source/API/SBMemoryRegionInfo.cpp
lldb/source/API/SBMemoryRegionInfoList.cpp
lldb/source/API/SBModule.cpp
lldb/source/API/SBModuleSpec.cpp
lldb/source/API/SBProcess.cpp
lldb/source/API/SBProcessInfo.cpp
lldb/source/API/SBQueue.cpp
lldb/source/API/SBSection.cpp
lldb/source/API/SBSourceManager.cpp
lldb/source/API/SBStringList.cpp
lldb/source/API/SBStructuredData.cpp
lldb/source/API/SBSymbol.cpp
lldb/source/API/SBSymbolContext.cpp
lldb/source/API/SBSymbolContextList.cpp
lldb/source/API/SBTarget.cpp
lldb/source/API/SBThread.cpp
lldb/source/API/SBThreadCollection.cpp
lldb/source/API/SBThreadPlan.cpp
lldb/source/API/SBType.cpp
lldb/source/API/SBTypeCategory.cpp
lldb/source/API/SBTypeEnumMember.cpp
lldb/source/API/SBTypeFilter.cpp
lldb/source/API/SBTypeFormat.cpp
lldb/source/API/SBTypeNameSpecifier.cpp
lldb/source/API/SBTypeSummary.cpp
lldb/source/API/SBTypeSynthetic.cpp
lldb/source/API/SBUnixSignals.cpp
lldb/source/API/SBValue.cpp
lldb/source/API/SBValueList.cpp
lldb/source/API/SBVariablesOptions.cpp
lldb/source/API/SBWatchpoint.cpp
lldb/source/Utility/ReproducerInstrumentation.cpp
lldb/tools/lldb-instr/Instrument.cpp
lldb/unittests/Utility/ReproducerInstrumentationTest.cpp