[PATCH] [RuntimeDyldELF] Fold Placeholder into Addend
Pavel Labath
labath at google.com
Thu Apr 16 01:59:17 PDT 2015
This commit seems to be causing regressions in the LLDB test suite http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-cmake/builds/1698 on x86. I am not really sure what is going on, but reverting does fix the problem. Does this commit change the inferace of the code generator in any way? Should we adapt LLDB somehow?
In any case, I am going to revert this until we find a way to fix expression evaluation in LLDB.
I am getting the following backtrace from the test suite:
(gdb) bt full
#0 0x00007ffff0c2e88d in llvm::support::endian::read<unsigned int, (llvm::support::endianness)1, 1ul> (memory=0x6) at /usr/local/google/home/labath/ll/llvm/include/llvm/Support/Endian.h:53
ret = 32767
#1 0x00007ffff37a5238 in llvm::support::detail::packed_endian_specific_integral<unsigned int, (llvm::support::endianness)1, 1ul>::ref::operator unsigned int (this=0x7fffffff8448)
at /usr/local/google/home/labath/ll/llvm/include/llvm/Support/Endian.h:116
No locals.
#2 0x00007ffff37a1a84 in llvm::RuntimeDyldELF::processRelocationRef (this=0xfc4860, SectionID=2,
RelI=..., Obj=..., ObjSectionToID=std::map with 4 elements = {...},
Stubs=std::map with 0 elements)
at /usr/local/google/home/labath/ll/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp:1338
RelType = 1
Addend = 0
Symbol = {<llvm::object::content_iterator<llvm::object::BasicSymbolRef>> = {<std::iterator<std::forward_iterator_tag, llvm::object::BasicSymbolRef, long, llvm::object::BasicSymbolRef*, llvm::object::BasicSymbolRef&>> = {<No data fields>}, Current = {SymbolPimpl = {d = {a = 16514800, b = 0},
p = 16514800}, OwningObject = 0xfe0730}}, <No data fields>}
TargetName = {static npos = 18446744073709551615, Data = 0xfbfd41 ".debug_abbrev",
Length = 13}
Value = {SectionID = 3, Offset = 0, Addend = 0, SymbolName = 0x0}
SymType = llvm::object::SymbolRef::ST_Debug
gsi = {Ptr = 0xfd7730}
Offset = 6
#3 0x00007ffff37806dd in llvm::RuntimeDyldImpl::loadObjectImpl (this=0xfc4860, Obj=...)
at /usr/local/google/home/labath/ll/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp:238
Stubs = std::map with 0 elements
RelocatedSection = {<std::iterator<std::forward_iterator_tag, llvm::object::SectionRef, long, llvm::object::SectionRef*, llvm::object::SectionRef&>> = {<No data fields>}, Current = {
SectionPimpl = {d = {a = 16515392, b = 0}, p = 16515392}, OwningObject = 0xfe0730}}
I = {<std::iterator<std::forward_iterator_tag, llvm::object::RelocationRef, long, llvm::object::RelocationRef*, llvm::object::RelocationRef&>> = {<No data fields>}, Current = {RelocationPimpl = {
d = {a = 8, b = 0}, p = 8}, OwningObject = 0xfe0730}}
E = {<std::iterator<std::forward_iterator_tag, llvm::object::RelocationRef, long, llvm::object::RelocationRef*, llvm::object::RelocationRef&>> = {<No data fields>}, Current = {RelocationPimpl = {
d = {a = 8, b = 11}, p = 47244640264}, OwningObject = 0xfe0730}}
SectionID = 2
IsCode = false
SI = {<std::iterator<std::forward_iterator_tag, llvm::object::SectionRef, long, llvm::object::SectionRef*, llvm::object::SectionRef&>> = {<No data fields>}, Current = {SectionPimpl = {d = {
a = 16515432, b = 0}, p = 16515432}, OwningObject = 0xfe0730}}
SE = {<std::iterator<std::forward_iterator_tag, llvm::object::SectionRef, long, llvm::object::SectionRef*, llvm::object::SectionRef&>> = {<No data fields>}, Current = {SectionPimpl = {d = {
a = 16516032, b = 0}, p = 16516032}, OwningObject = 0xfe0730}}
locked = {M = @0xfc5500}
SectionsAddedBeginIdx = 0
LocalSections = std::map with 4 elements = {[{SectionPimpl = {d = {a = 16515352, b = 0},
p = 16515352}, OwningObject = 0xfe0730}] = 3, [{SectionPimpl = {d = {a = 16515392,
b = 0}, p = 16515392}, OwningObject = 0xfe0730}] = 2, [{SectionPimpl = {d = {
a = 16515152, b = 0}, p = 16515152}, OwningObject = 0xfe0730}] = 1, [{
SectionPimpl = {d = {a = 16515272, b = 0}, p = 16515272}, OwningObject = 0xfe0730}] = 0}
CommonSymbols = std::vector of length 0, capacity 0
SectionsAddedEndIdx = 32767
#4 0x00007ffff379bf2e in llvm::RuntimeDyldELF::loadObject (this=0xfc4860, O=...)
at /usr/local/google/home/labath/ll/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp:218
SectionStartIdx = 32767
SectionEndIdx = 4084749621
#5 0x00007ffff3783385 in llvm::RuntimeDyld::loadObject (this=0xf82b28, Obj=...)
at /usr/local/google/home/labath/ll/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp:913
No locals.
#6 0x00007ffff36973ae in llvm::MCJIT::generateCodeForModule (this=0xf82a40, M=0xf1d9e0)
---Type <return> to continue, or q <return> to quit---
at /usr/local/google/home/labath/ll/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp:209
locked = {M = @0xf82ad8}
ObjectToLoad = std::unique_ptr<llvm::MemoryBuffer> containing 0xfbca50
LoadedObject = {static isRef = false, {TStorage = {<llvm::AlignedCharArray<8, 8>> = {
buffer = "0\a\376\000\000\000\000"}, <No data fields>},
ErrorStorage = {<llvm::AlignedCharArray<8, 16>> = {
buffer = "0\a\376\000\000\000\000\000h+\370\000\000\000\000"}, <No data fields>}},
HasError = false}
L = std::unique_ptr<llvm::RuntimeDyld::LoadedObjectInfo> containing 0xf1d9e0
#7 0x00007ffff36982cb in llvm::MCJIT::getPointerToFunction (this=0xf82a40, F=0xf7c6e0)
at /usr/local/google/home/labath/ll/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp:388
locked = {M = @0xf82ad8}
Mang = {DL = 0xf21020,
AnonGlobalIDs = {<llvm::DenseMapBase<llvm::DenseMap<llvm::GlobalValue const*, unsigned int, llvm::DenseMapInfo<llvm::GlobalValue const*>, llvm::detail::DenseMapPair<llvm::GlobalValue const*, unsigned int> >, llvm::GlobalValue const*, unsigned int, llvm::DenseMapInfo<llvm::GlobalValue const*>, llvm::detail::DenseMapPair<llvm::GlobalValue const*, unsigned int> >> = {<llvm::DebugEpochBase> = {
Epoch = 0}, <No data fields>}, Buckets = 0x0, NumEntries = 0, NumTombstones = 0,
NumBuckets = 0}, NextAnonGlobalID = 1}
Name = {<llvm::SmallVector<char, 128>> = {<llvm::SmallVectorImpl<char>> = {<llvm::SmallVectorTemplateBase<char, true>> = {<llvm::SmallVectorTemplateCommon<char, void>> = {<llvm::SmallVectorBase> = {BeginX = 0x7fffffff9410, EndX = 0x7fffffff942b, CapacityX = 0x7fffffff9490},
FirstEl = {<llvm::AlignedCharArray<1, 1>> = {
buffer = "$"}, <No data fields>}}, <No data fields>}, <No data fields>},
Storage = {InlineElts = {{<llvm::AlignedCharArray<1, 1>> = {
buffer = "_"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "_"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "l"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "l"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "d"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "b"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "_"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "v"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "a"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "l"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "i"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "d"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "_"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "p"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "o"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "i"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "n"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "t"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "e"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "r"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "_"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "c"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "h"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "e"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "c"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "k"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = ""}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = ""}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = ""}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = ""}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = ""}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "P"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "\224"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "\377"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "\377"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
---Type <return> to continue, or q <return> to quit---
buffer = "\377"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "\177"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = ""}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = ""}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "\b"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = "\n"}, <No data fields>}, {<llvm::AlignedCharArray<1, 1>> = {
buffer = <incomplete sequence \365>}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "`"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\224"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\377"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\377"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\377"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\177"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\225"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\257"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {
buffer = <incomplete sequence \322>}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {
buffer = <incomplete sequence \361>}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\377"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\177"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "p"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\224"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\377"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\377"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\377"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\177"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\b"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\n"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {
buffer = <incomplete sequence \365>}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\200"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\224"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\377"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\377"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\377"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\177"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "u"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\257"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {
buffer = <incomplete sequence \322>}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {
---Type <return> to continue, or q <return> to quit---
buffer = <incomplete sequence \361>}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\377"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\177"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\220"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\224"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\377"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\377"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\377"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\177"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\b"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\n"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {
buffer = <incomplete sequence \365>}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\240"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\224"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\377"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\377"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\377"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\177"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "U"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\257"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {
buffer = <incomplete sequence \322>}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {
buffer = <incomplete sequence \361>}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\377"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = "\177"}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {buffer = ""}, <No data fields>},
{<llvm::AlignedCharArray<1, 1>> = {
buffer = ""}, <No data fields>}}}}, <No data fields>}
M = 0xf1d9e0
HasBeenAddedButNotLoaded = true
#8 0x00007ffff1d258af in lldb_private::IRExecutionUnit::GetRunnableInfo (this=0xf50980, error=...,
func_addr=@0xe3eab8: 18446744073709551615, func_end=@0xe3eac0: 18446744073709551615)
at /usr/local/google/home/labath/ll/llvm/tools/lldb/source/Expression/IRExecutionUnit.cpp:334
s_runnable_info_mutex = {m_mutex = {__data = {__lock = 1, __count = 1, __owner = 29073,
__nusers = 1, __kind = 1, __spins = 0, __elision = 0, __list = {__prev = 0x0,
__next = 0x0}},
__size = "\001\000\000\000\001\000\000\000\221q\000\000\001\000\000\000\001", '\000' <repeats 22 times>, __align = 4294967297}}
process_sp = warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<lldb_private::process_gdb_remote::ProcessGDBRemote*, (__gnu_cxx::_Lock_policy)2>'
warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<lldb_private::process_gdb_remote::ProcessGDBRemote*, (__gnu_cxx::_Lock_policy)2>'
std::shared_ptr (count 8, weak 13) 0xd2c800
runnable_info_mutex_locker = {
m_mutex_ptr = 0x7ffff5c48338 <lldb_private::IRExecutionUnit::GetRunnableInfo(lldb_private::Error&, unsigned long&, unsigned long&)::s_runnable_info_mutex>}
log = 0x0
error_string = ""
triple = {Data = "i386-unknown-linux-gnu", Arch = llvm::Triple::x86,
SubArch = llvm::Triple::NoSubArch, Vendor = llvm::Triple::UnknownVendor,
OS = llvm::Triple::Linux, Environment = llvm::Triple::GNU,
---Type <return> to continue, or q <return> to quit---
ObjectFormat = llvm::Triple::ELF}
function = 0xf7c6e0
relocModel = llvm::Reloc::Static
codeModel = llvm::CodeModel::JITDefault
builder = {M = std::unique_ptr<llvm::Module> containing 0x0,
WhichEngine = llvm::EngineKind::JIT, ErrorStr = 0x7fffffff99b0,
OptLevel = llvm::CodeGenOpt::Less, MemMgr = std::shared_ptr (empty) 0x0,
Resolver = std::shared_ptr (empty) 0x0, Options = {PrintMachineCode = 0,
NoFramePointerElim = 0, LessPreciseFPMADOption = 0, UnsafeFPMath = 0, NoInfsFPMath = 0,
NoNaNsFPMath = 0, HonorSignDependentRoundingFPMathOption = 0, UseSoftFloat = 0,
NoZerosInBSS = 0, JITEmitDebugInfo = 0, JITEmitDebugInfoToDisk = 0,
GuaranteedTailCallOpt = 0, DisableTailCalls = 0, StackAlignmentOverride = 0,
EnableFastISel = 0, PositionIndependentExecutable = 0, UseInitArray = 0,
DisableIntegratedAS = 0, CompressDebugSections = 0, FunctionSections = 0,
DataSections = 0, UniqueSectionNames = 1, TrapUnreachable = 0, TrapFuncName = "",
FloatABIType = llvm::FloatABI::Default, AllowFPOpFusion = llvm::FPOpFusion::Standard,
JTType = llvm::JumpTable::Single, FCFI = false, ThreadModel = llvm::ThreadModel::POSIX,
CFIType = llvm::CFIntegrity::Sub, CFIEnforcing = false, CFIFuncName = "", MCOptions = {
SanitizeAddress = false, MCRelaxAll = false, MCNoExecStack = false,
MCFatalWarnings = false, MCSaveTempLabels = false, MCUseDwarfDirectory = false,
ShowMCEncoding = false, ShowMCInst = false, AsmVerbose = false, DwarfVersion = 0,
ABIName = ""}}, RelocModel = llvm::Reloc::Static,
CMModel = llvm::CodeModel::JITDefault, MArch = "", MCPU = "",
MAttrs = {<llvm::SmallVectorImpl<std::basic_string<char> >> = {<llvm::SmallVectorTemplateBase<std::basic_string<char>, false>> = {<llvm::SmallVectorTemplateCommon<std::basic_string<char>, void>> = {<llvm::SmallVectorBase> = {BeginX = 0x7fffffff98f8, EndX = 0x7fffffff98f8,
CapacityX = 0x7fffffff9918}, FirstEl = {<llvm::AlignedCharArray<8, 8>> = {
buffer = "\230\231\377\377\377\177\000"}, <No data fields>}}, <No data fields>}, <No data fields>}, Storage = {InlineElts = {{<llvm::AlignedCharArray<8, 8>> = {
buffer = " \231\377\377\377\177\000"}, <No data fields>},
{<llvm::AlignedCharArray<8, 8>> = {
buffer = "\362j\271\360\377\377\377\377"}, <No data fields>},
{<llvm::AlignedCharArray<8, 8>> = {
buffer = "\340\306\367\000\000\000\000"}, <No data fields>}}}},
VerifyModules = true, UseOrcMCJITReplacement = false}
mArch = {static npos = 18446744073709551615, Data = 0x0, Length = 0}
mCPU = {static npos = 18446744073709551615, Data = 0x0, Length = 0}
mAttrs = {<llvm::SmallVectorImpl<std::basic_string<char> >> = {<llvm::SmallVectorTemplateBase<std::basic_string<char>, false>> = {<llvm::SmallVectorTemplateCommon<std::basic_string<char>, void>> = {<llvm::SmallVectorBase> = {BeginX = 0x7fffffff97f0, EndX = 0x7fffffff97f0,
CapacityX = 0x7fffffff97f0}, FirstEl = {<llvm::AlignedCharArray<8, 8>> = {
buffer = "p\230\377\377\377\177\000"}, <No data fields>}}, <No data fields>}, <No data fields>}, Storage = {<No data fields>}}
target_machine = 0xf21010
fun_ptr = 0x1007ffff1a01e28
#9 0x00007ffff1d55bd2 in lldb_private::ClangExpressionParser::PrepareForExecution (
this=0x7fffffff9de8, func_addr=@0xe3eab8: 18446744073709551615,
func_end=@0xe3eac0: 18446744073709551615, execution_unit_sp=warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<lldb_private::IRExecutionUnit*, (__gnu_cxx::_Lock_policy)2>'
warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<lldb_private::IRExecutionUnit*, (__gnu_cxx::_Lock_policy)2>'
std::shared_ptr (count 1, weak 1) 0xf50980, exe_ctx=..., can_interpret=@0x7fffffff9ddf: true,
execution_policy=lldb_private::eExecutionPolicyAlways)
at /usr/local/google/home/labath/ll/llvm/tools/lldb/source/Expression/ClangExpressionParser.cpp:589
ir_for_target = {<llvm::ModulePass> = {<llvm::Pass> = {
_vptr$Pass = 0x7ffff5b311f0 <vtable for IRForTarget+16>, Resolver = 0x0,
PassID = 0x7ffff5c483b8 <_ZL2ID>, Kind = llvm::PT_Module}, <No data fields>},
m_resolve_vars = false, m_func_name = "$__lldb_valid_pointer_check", m_result_name = {
m_string = 0x0}, m_result_type = warning: RTTI symbol not found for class 'lldb_private::TaggedASTType<0u>'
{<lldb_private::ClangASTType> = {m_type = 0x0,
m_ast = 0x0},
_vptr$TaggedASTType = 0x7ffff5a83890 <vtable for lldb_private::TaggedASTType<0u>+16>},
m_module = 0xf1d9e0,
---Type <return> to continue, or q <return> to quit---
m_target_data = std::unique_ptr<llvm::DataLayout> containing 0xf7b100,
m_decl_map = 0xe9fd30, m_data_allocator = {m_execution_unit = @0xf50980,
m_stream_string = {<lldb_private::Stream> = {
_vptr$Stream = 0x7ffff5b2e920 <vtable for lldb_private::StreamString+16>, m_flags = {
m_flags = 8}, m_addr_size = 4, m_byte_order = lldb::eByteOrderLittle,
m_indent_level = 0}, m_packet = ""}, m_allocation = 18446744073709551615},
m_CFStringCreateWithBytes = 0x0, m_sel_registerName = 0x0, m_intptr_ty = 0xf1cee0,
m_error_stream = 0xb3f920, m_result_store = 0x0, m_result_is_pointer = false,
m_reloc_placeholder = 0xf7f1d8, m_entry_instruction_finder = {
m_maker = {<std::_Maybe_unary_or_binary_function<llvm::Value*, llvm::Function*>> = {<std::unary_function<llvm::Function*, llvm::Value*>> = {<No data fields>}, <No data fields>}, <std::_Function_base> = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {
_M_object = 0x7ffff1d61c50 <FindEntryInstruction(llvm::Function*)>,
_M_const_object = 0x7ffff1d61c50 <FindEntryInstruction(llvm::Function*)>,
_M_function_pointer = 0x7ffff1d61c50 <FindEntryInstruction(llvm::Function*)>,
_M_member_pointer = <error reading variable>,
_M_pod_data = "P\034\326\361\377\177\000\000d^\324\361\377\177\000"},
_M_manager = 0x7ffff1d70020 <std::_Function_base::_Base_manager<llvm::Value* (*)(llvm::Function*)>::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)>},
_M_invoker = 0x7ffff1d6ffe0 <std::_Function_handler<llvm::Value* (llvm::Function*), llvm::Value* (*)(llvm::Function*)>::_M_invoke(std::_Any_data const&, llvm::Function*)>},
m_values = std::map with 0 elements}}
ir_can_run = true
process = 0xd2c800
error_stream = 0xb3f920
target = 0xd0b280
interpret_error = {m_code = 0, m_type = lldb::eErrorTypeInvalid, m_string = ""}
log = 0x0
llvm_module_ap = std::unique_ptr<llvm::Module> containing 0x0
function_name = {m_string = 0xf03cf8 "$__lldb_valid_pointer_check"}
decl_map = 0xe9fd30
err = {m_code = 0, m_type = lldb::eErrorTypeInvalid, m_string = ""}
#10 0x00007ffff1d91bf6 in lldb_private::ClangUtilityFunction::Install (this=0xe3eaa0,
error_stream=..., exe_ctx=...)
at /usr/local/google/home/labath/ll/llvm/tools/lldb/source/Expression/ClangUtilityFunction.cpp:144
target = 0xd0b280
process = 0xd2c800
keep_result_in_memory = false
generate_debug_info = true
parser = {m_expr = @0xe3eaa0,
m_llvm_context = std::unique_ptr<llvm::LLVMContext> containing 0x0,
m_file_manager = std::unique_ptr<clang::FileManager> containing 0xefa6d0,
m_compiler = std::unique_ptr<clang::CompilerInstance> containing 0xef9570,
m_builtin_context = std::unique_ptr<clang::Builtin::Context> containing 0xed26e0,
m_selector_table = std::unique_ptr<clang::SelectorTable> containing 0xea3c00,
m_code_generator = std::unique_ptr<clang::CodeGenerator> containing 0xf1d810,
m_pp_callbacks = 0x0}
num_errors = 0
can_interpret = true
jit_error = {m_code = 0, m_type = lldb::eErrorTypeInvalid, m_string = ""}
#11 0x00007ffff1d5dc1e in lldb_private::DynamicCheckerFunctions::Install (this=0xe9f010,
error_stream=..., exe_ctx=...)
at /usr/local/google/home/labath/ll/llvm/tools/lldb/source/Expression/IRDynamicChecks.cpp:57
process = 0x7fffffff9fa0
#12 0x00007ffff1d55a22 in lldb_private::ClangExpressionParser::PrepareForExecution (
this=0x7fffffffa330, func_addr=@0xea8388: 18446744073709551615,
func_end=@0xea8390: 18446744073709551615, execution_unit_sp=warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<lldb_private::IRExecutionUnit*, (__gnu_cxx::_Lock_policy)2>'
warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<lldb_private::IRExecutionUnit*, (__gnu_cxx::_Lock_policy)2>'
std::shared_ptr (count 1, weak 1) 0xf064b0, exe_ctx=..., can_interpret=@0xea8440: false,
execution_policy=lldb_private::eExecutionPolicyOnlyWhenNeeded)
---Type <return> to continue, or q <return> to quit---
at /usr/local/google/home/labath/ll/llvm/tools/lldb/source/Expression/ClangExpressionParser.cpp:563
dynamic_checkers = 0xe9f010
install_errors = {<lldb_private::Stream> = {
_vptr$Stream = 0x7ffff5b2e920 <vtable for lldb_private::StreamString+16>, m_flags = {
m_flags = 0}, m_addr_size = 4, m_byte_order = lldb::eByteOrderBig,
m_indent_level = 0}, m_packet = ""}
ir_dynamic_checks = {<llvm::ModulePass> = {<llvm::Pass> = {_vptr$Pass = 0x7fffffffa0e8,
Resolver = 0x7fffffffa348, PassID = 0x7fffffffa0d8,
Kind = 4122151664}, <No data fields>},
m_func_name = "\320U\361\000\000\000\000\000@\023\361\000\000\000\000\000\320\325\355\000\000\000\000\000\220\353\343", '\000' <repeats 13 times>, "\360\310\322\000\000\000\000\000\000\310\322\000\000\000\000\000p\203\352\000\000\000\000\000P\202\343\000\000\000\000\000\030\000\000\000\000\000\000\000`\200\321\361\377\177\000\000\060\200\321\361\377\177\000\000@\204\355\000\000\000\000\000\243|\354\365\377\177\000\000`\200\321\361\377\177\000\000\060\200\321\361\377\177\000\000\200\262\320\000\000\000\000\000 \244\377\377\004\000\000\000\300_\323\000\000\000\000\000p\203\352\000\000\000\000\000\000\063\361\000\000\000\000\000 \244\377\377\377\177\000\000\001m\270\361\377\177\000\000\000\063\361\000\000\000\000\000\300\245\377\377\377\177\000\000"..., m_checker_functions = @0x7ffff1c1a326}
ir_for_target = {<llvm::ModulePass> = {<llvm::Pass> = {
_vptr$Pass = 0x7ffff5b311f0 <vtable for IRForTarget+16>, Resolver = 0x0,
PassID = 0x7ffff5c483b8 <_ZL2ID>, Kind = llvm::PT_Module}, <No data fields>},
m_resolve_vars = true, m_func_name = "_ZN1AIiE12$__lldb_exprEPv", m_result_name = {
m_string = 0xf03be0 "$RESULT_NAME"}, m_result_type = warning: RTTI symbol not found for class 'lldb_private::TaggedASTType<0u>'
{<lldb_private::ClangASTType> = {
m_type = 0xf0b530, m_ast = 0xe39ee0},
_vptr$TaggedASTType = 0x7ffff5a83890 <vtable for lldb_private::TaggedASTType<0u>+16>},
m_module = 0xf0d4a0,
m_target_data = std::unique_ptr<llvm::DataLayout> containing 0xe14f30,
m_decl_map = 0xedb440, m_data_allocator = {m_execution_unit = @0xf064b0,
m_stream_string = {<lldb_private::Stream> = {
_vptr$Stream = 0x7ffff5b2e920 <vtable for lldb_private::StreamString+16>, m_flags = {
m_flags = 8}, m_addr_size = 4, m_byte_order = lldb::eByteOrderLittle,
m_indent_level = 0}, m_packet = ""}, m_allocation = 18446744073709551615},
m_CFStringCreateWithBytes = 0x0, m_sel_registerName = 0x0, m_intptr_ty = 0xf0ca60,
m_error_stream = 0xb3f920, m_result_store = 0x0, m_result_is_pointer = true,
m_reloc_placeholder = 0xe3e9c8, m_entry_instruction_finder = {
m_maker = {<std::_Maybe_unary_or_binary_function<llvm::Value*, llvm::Function*>> = {<std::unary_function<llvm::Function*, llvm::Value*>> = {<No data fields>}, <No data fields>}, <std::_Function_base> = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {
_M_object = 0x7ffff1d61c50 <FindEntryInstruction(llvm::Function*)>,
_M_const_object = 0x7ffff1d61c50 <FindEntryInstruction(llvm::Function*)>,
_M_function_pointer = 0x7ffff1d61c50 <FindEntryInstruction(llvm::Function*)>,
_M_member_pointer = <error reading variable>,
_M_pod_data = "P\034\326\361\377\177\000\000d^\324\361\377\177\000"},
_M_manager = 0x7ffff1d70020 <std::_Function_base::_Base_manager<llvm::Value* (*)(llvm::Function*)>::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)>},
_M_invoker = 0x7ffff1d6ffe0 <std::_Function_handler<llvm::Value* (llvm::Function*), llvm::Value* (*)(llvm::Function*)>::_M_invoke(std::_Any_data const&, llvm::Function*)>},
m_values = std::map with 1 elements = {[0xea1da0] = 0xea2428}}}
ir_can_run = true
process = 0xd2c800
error_stream = 0xb3f920
target = 0xd0b280
interpret_error = {m_code = 4294967295, m_type = lldb::eErrorTypeGeneric,
m_string = "Interpreter doesn't handle one of the expression's opcodes"}
log = 0x0
llvm_module_ap = std::unique_ptr<llvm::Module> containing 0x0
function_name = {m_string = 0xf03bb0 "_ZN1AIiE12$__lldb_exprEPv"}
decl_map = 0xedb440
err = {m_code = 0, m_type = lldb::eErrorTypeInvalid, m_string = ""}
#13 0x00007ffff1d15d82 in lldb_private::ClangUserExpression::Parse (this=0xea8370, error_stream=...,
---Type <return> to continue, or q <return> to quit---
exe_ctx=..., execution_policy=lldb_private::eExecutionPolicyOnlyWhenNeeded,
keep_result_in_memory=true, generate_debug_info=false)
at /usr/local/google/home/labath/ll/llvm/tools/lldb/source/Expression/ClangUserExpression.cpp:560
log = 0x0
err = {m_code = 0, m_type = lldb::eErrorTypeInvalid, m_string = ""}
m_transformed_stream = {<lldb_private::Stream> = {
_vptr$Stream = 0x7ffff5b2e920 <vtable for lldb_private::StreamString+16>, m_flags = {
m_flags = 0}, m_addr_size = 4, m_byte_order = lldb::eByteOrderBig,
m_indent_level = 0}, m_packet = ""}
prefix = ""
source_code = std::unique_ptr<lldb_private::ExpressionSourceCode> containing 0xd35fc0
lang_type = lldb::eLanguageTypeC_plus_plus
target = 0xd0b280
on_exit = {
m_callback = {<std::_Maybe_unary_or_binary_function<void>> = {<No data fields>}, <std::_Function_base> = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {
_M_object = 0xed8440, _M_const_object = 0xed8440, _M_function_pointer = 0xed8440,
_M_member_pointer = <error reading variable>,
_M_pod_data = "@\204\355\000\000\000\000\000\243|\354\365\377\177\000"},
_M_manager = 0x7ffff1d18060 <std::_Function_base::_Base_manager<lldb_private::ClangUserExpression::Parse(lldb_private::Stream&, lldb_private::ExecutionContext&, lldb_private::ExecutionPolicy, bool, bool)::$_1>::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)>},
_M_invoker = 0x7ffff1d18030 <std::_Function_handler<void (), lldb_private::ClangUserExpression::Parse(lldb_private::Stream&, lldb_private::ExecutionContext&, lldb_private::ExecutionPolicy, bool, bool)::$_1>::_M_invoke(std::_Any_data const&)>}}
process = 0xd2c800
exe_scope = 0xd2c8f0
parser = {m_expr = @0xea8370,
m_llvm_context = std::unique_ptr<llvm::LLVMContext> containing 0x0,
m_file_manager = std::unique_ptr<clang::FileManager> containing 0xf15290,
m_compiler = std::unique_ptr<clang::CompilerInstance> containing 0xf155d0,
m_builtin_context = std::unique_ptr<clang::Builtin::Context> containing 0xf11340,
m_selector_table = std::unique_ptr<clang::SelectorTable> containing 0xedd5d0,
m_code_generator = std::unique_ptr<clang::CodeGenerator> containing 0xe3eb90,
m_pp_callbacks = 0x0}
num_errors = 0
jit_error = {m_code = 0, m_type = lldb::eErrorTypeInvalid, m_string = ""}
#14 0x00007ffff1d178ff in lldb_private::ClangUserExpression::Evaluate (exe_ctx=..., options=...,
expr_cstr=0xf155ab "(int)getpid(); m_a", expr_prefix=0x0, result_valobj_sp=..., error=...)
at /usr/local/google/home/labath/ll/llvm/tools/lldb/source/Expression/ClangUserExpression.cpp:1041
log = 0x0
execution_policy = lldb_private::eExecutionPolicyOnlyWhenNeeded
language = lldb::eLanguageTypeUnknown
desired_type = lldb_private::ClangExpression::eResultTypeAny
execution_results = lldb::eExpressionSetupError
process = 0xd2c800
user_expression_sp = warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<lldb_private::ClangUserExpression*, (__gnu_cxx::_Lock_policy)2>'
warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<lldb_private::ClangUserExpression*, (__gnu_cxx::_Lock_policy)2>'
std::shared_ptr (count 1, weak 0) 0xea8370
error_stream = {<lldb_private::Stream> = {
_vptr$Stream = 0x7ffff5b2e920 <vtable for lldb_private::StreamString+16>, m_flags = {
m_flags = 0}, m_addr_size = 4, m_byte_order = lldb::eByteOrderBig,
m_indent_level = 0},
m_packet = "warning: function 'getpid' has internal linkage but is not defined\nnote: used here\n"}
keep_expression_in_memory = true
generate_debug_info = false
#15 0x00007ffff1f09bcb in lldb_private::Target::EvaluateExpression (this=0xd0b280,
expr_cstr=0xf155ab "(int)getpid(); m_a", frame=0x7fffd800bae0, result_valobj_sp=..., options=...)
at /usr/local/google/home/labath/ll/llvm/tools/lldb/source/Target/Target.cpp:2020
prefix = 0x0
---Type <return> to continue, or q <return> to quit---
error = {m_code = 0, m_type = lldb::eErrorTypeInvalid, m_string = ""}
execution_results = lldb::eExpressionSetupError
old_suppress_value = false
exe_ctx = {m_target_sp = warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<lldb_private::Target*, (__gnu_cxx::_Lock_policy)2>'
warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<lldb_private::Target*, (__gnu_cxx::_Lock_policy)2>'
std::shared_ptr (count 20, weak 12) 0xd0b280, m_process_sp = warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<lldb_private::process_gdb_remote::ProcessGDBRemote*, (__gnu_cxx::_Lock_policy)2>'
warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<lldb_private::process_gdb_remote::ProcessGDBRemote*, (__gnu_cxx::_Lock_policy)2>'
std::shared_ptr (count 8, weak 13) 0xd2c800, m_thread_sp = warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<lldb_private::process_gdb_remote::ThreadGDBRemote*, (__gnu_cxx::_Lock_policy)2>'
warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<lldb_private::process_gdb_remote::ThreadGDBRemote*, (__gnu_cxx::_Lock_policy)2>'
std::shared_ptr (count 7, weak 12) 0xd3df20, m_frame_sp = warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<lldb_private::StackFrame*, (__gnu_cxx::_Lock_policy)2>'
warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<lldb_private::StackFrame*, (__gnu_cxx::_Lock_policy)2>'
std::shared_ptr (count 6, weak 1) 0x7fffd800bae0}
persistent_var_sp = std::shared_ptr (empty) 0x0
#16 0x00007ffff21841f9 in lldb_private::CommandObjectExpression::EvaluateExpression (this=0xb459e0,
expr=0xf155ab "(int)getpid(); m_a", output_stream=0xd1a1b0, error_stream=0xd1a208,
result=0xd1a1b0)
at /usr/local/google/home/labath/ll/llvm/tools/lldb/source/Commands/CommandObjectExpression.cpp:312
result_valobj_sp = {ptr_ = 0x0, cntrl_ = 0x0}
keep_in_memory = true
options = {static default_timeout = 500000,
m_execution_policy = lldb_private::eExecutionPolicyOnlyWhenNeeded,
m_language = lldb::eLanguageTypeUnknown, m_coerce_to_id = false, m_unwind_on_error = true,
m_ignore_breakpoints = true, m_keep_in_memory = true, m_try_others = true,
m_stop_others = true, m_debug = false, m_trap_exceptions = true,
m_generate_debug_info = false, m_result_is_internal = false,
m_use_dynamic = lldb::eNoDynamicValues, m_timeout_usec = 0, m_one_thread_timeout_usec = 0,
m_cancel_callback = 0x0, m_cancel_callback_baton = 0x0}
exe_ctx = {m_target_sp = warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<lldb_private::Target*, (__gnu_cxx::_Lock_policy)2>'
warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<lldb_private::Target*, (__gnu_cxx::_Lock_policy)2>'
std::shared_ptr (count 20, weak 12) 0xd0b280, m_process_sp = warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<lldb_private::process_gdb_remote::ProcessGDBRemote*, (__gnu_cxx::_Lock_policy)2>'
warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<lldb_private::process_gdb_remote::ProcessGDBRemote*, (__gnu_cxx::_Lock_policy)2>'
std::shared_ptr (count 8, weak 13) 0xd2c800, m_thread_sp = warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<lldb_private::process_gdb_remote::ThreadGDBRemote*, (__gnu_cxx::_Lock_policy)2>'
warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<lldb_private::process_gdb_remote::ThreadGDBRemote*, (__gnu_cxx::_Lock_policy)2>'
std::shared_ptr (count 7, weak 12) 0xd3df20, m_frame_sp = warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<lldb_private::StackFrame*, (__gnu_cxx::_Lock_policy)2>'
warning: RTTI symbol not found for class 'std::_Sp_counted_ptr<lldb_private::StackFrame*, (__gnu_cxx::_Lock_policy)2>'
std::shared_ptr (count 6, weak 1) 0x7fffd800bae0}
target = 0xd0b280
#17 0x00007ffff2184cd1 in lldb_private::CommandObjectExpression::DoExecute (this=0xb459e0,
command=0xf155a8 "-- (int)getpid(); m_a", result=...)
at /usr/local/google/home/labath/ll/llvm/tools/lldb/source/Commands/CommandObjectExpression.cpp:514
expr = 0xf155ab "(int)getpid(); m_a"
#18 0x00007ffff1db7052 in lldb_private::CommandObjectRaw::Execute (this=0xb459e0,
args_string=0xf155a8 "-- (int)getpid(); m_a", result=...)
at /usr/local/google/home/labath/ll/llvm/tools/lldb/source/Interpreter/CommandObject.cpp:1103
handled = false
Steps to reproduce:
build lldb
cd test
./dotest.py -A x86 --executable path/to/built/lldb -p TestCPPThis.py
The expression we are evaluating is "(int)getpid(); m_a" (where m_a is a local variable), but I think it happens on pretty much any expression. Please let me know if I can somehow help you with this.
REPOSITORY
rL LLVM
http://reviews.llvm.org/D9028
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
More information about the llvm-commits
mailing list