[LLVMdev] LLD dynamic compilation

Renato Golin renato.golin at linaro.org
Mon Jun 30 08:55:06 PDT 2014


On 30 June 2014 16:16, Shankar Easwaran <shankare at codeaurora.org> wrote:
> I think you are hitting a bug, the Observer pattern was added a few weeks
> back, and may be there is some sort of uninitialized variable ?

This is my back-trace at "-O2 -g" (since -O1 pass):

operator() (file=<optimized out>, __closure=0x7fffffffde40) at
/home/rengolin/devel/llvm/src/llvm/tools/lld/unittests/DriverTests/InputGraphTest.cpp:197
197  _graph->registerObserver([&](File *file) {
files.push_back(file->path()); });
(gdb) bt
#0  operator() (file=<optimized out>, __closure=0x7fffffffde40) at
/home/rengolin/devel/llvm/src/llvm/tools/lld/unittests/DriverTests/InputGraphTest.cpp:197
#1  llvm::function_ref<void(lld::File*)>::callback_fn<InputGraphTest_Observer_Test::TestBody()::<lambda(lld::File*)>
>(intptr_t, lld::File *) (callable=140737488346688,
    param1=<optimized out>) at
/home/rengolin/devel/llvm/src/llvm/include/llvm/ADT/STLExtras.h:117
#2  0x00000000005b3ec4 in operator() (param1=<optimized out>,
this=0xa1e2a0) at
/home/rengolin/devel/llvm/src/llvm/include/llvm/ADT/STLExtras.h:126
#3  callback_fn<llvm::function_ref<void(lld::File*)> >
(param1=<optimized out>, callable=10609312) at
/home/rengolin/devel/llvm/src/llvm/include/llvm/ADT/STLExtras.h:117
#4  operator() (param1=<optimized out>, this=<synthetic pointer>) at
/home/rengolin/devel/llvm/src/llvm/include/llvm/ADT/STLExtras.h:126
#5  lld::InputGraph::getNextFile (this=<optimized out>) at
/home/rengolin/devel/llvm/src/llvm/tools/lld/lib/Core/InputGraph.cpp:27
#6  0x0000000000462a87 in (anonymous
namespace)::InputGraphTest::getNext (this=0xa1e6b0)
    at /home/rengolin/devel/llvm/src/llvm/tools/lld/unittests/DriverTests/InputGraphTest.cpp:64
#7  0x000000000046c749 in InputGraphTest_Observer_Test::TestBody
(this=0xa1e6b0) at
/home/rengolin/devel/llvm/src/llvm/tools/lld/unittests/DriverTests/InputGraphTest.cpp:201
#8  0x0000000000479bda in testing::Test::Run (this=0xa1e6b0) at
/home/rengolin/devel/llvm/src/llvm/utils/unittest/googletest/src/gtest.cc:2162
#9  0x000000000047abd0 in testing::TestInfo::Run (this=0xa1d6f0) at
/home/rengolin/devel/llvm/src/llvm/utils/unittest/googletest/src/gtest.cc:2309
#10 0x000000000047adc5 in testing::TestCase::Run (this=0xa1cfe0) at
/home/rengolin/devel/llvm/src/llvm/utils/unittest/googletest/src/gtest.cc:2416
#11 0x000000000047fd40 in testing::internal::UnitTestImpl::RunAllTests
(this=0xa0f140) at
/home/rengolin/devel/llvm/src/llvm/utils/unittest/googletest/src/gtest.cc:4205
#12 0x000000000047fff2 in
HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,
bool> (location=<synthetic pointer>,
    method=(bool
(testing::internal::UnitTestImpl::*)(testing::internal::UnitTestImpl *
const)) 0x47faf0 <testing::internal::UnitTestImpl::RunAllTests()>,
object=0xa0f140)
    at /home/rengolin/devel/llvm/src/llvm/utils/unittest/googletest/src/gtest.cc:2145
#13 testing::UnitTest::Run (this=<optimized out>) at
/home/rengolin/devel/llvm/src/llvm/utils/unittest/googletest/src/gtest.cc:3842
#14 0x0000000000410796 in main (argc=1, argv=0x7fffffffe0d8) at
/home/rengolin/devel/llvm/src/llvm/utils/unittest/UnitTestMain/TestMain.cpp:48



> On the cyclic dependency there was a recent conversation that was trying to
> fix this, but I am not sure where it is.

Is this on llvmdev? Or is there a special lld list?

cheers,
--renato



More information about the llvm-dev mailing list