[ROOT-5467] UNREACHABLE on address of member function Created: 04/Sep/13  Updated: 26/Sep/14  Resolved: 26/Sep/14

Status: Closed
Project: ROOT
Component/s: Cling
Affects Version/s: 6.02.00
Fix Version/s: 6.02.00

Type: Bug Priority: Medium
Reporter: Axel Naumann Assignee: Axel Naumann
Resolution: Fixed Votes: 0
Labels: None
Environment:

Linux


Development:

 Description   

root [] &TObject::Dump
Unknown return type for function call!
UNREACHABLE executed at /home/axel/build/root/github/src/interpreter/llvm/src/lib/ExecutionEngine/JIT/JIT.cpp:456!



 Comments   
Comment by Philippe Canal [ 04/Sep/13 ]

Hi,

This is related with update ExecutionContext::executeFunction to use a generic function pointer call the wrapper rather than calling the ExecutionEngine runFunction (which does a in-place compilation of mini function hard coding the value of the arguments). Instead we should consider using the same technique as the one used in CallFunc (which will require an update to the ReturnSynthetizer to pass back the return value via a single optional argument).

Cheers,
Philippe.

Comment by Axel Naumann [ 23/Aug/14 ]

With the new setup of return value and value printing we now get

root [0] &TObject::Dump
root.exe: /home/axel/build/root/trunk/src/interpreter/cling/lib/Interpreter/ValueExtractionSynthesizer.cpp:357: clang::Expr *cling::ValueExtractionSynthesizer::SynthesizeSVRInit(clang::Expr *): Assertion `0 && "Unhandled code path?"' failed.
 
Program received signal SIGABRT, Aborted.
0x00007ffff6d83f89 in raise () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) bt
#0  0x00007ffff6d83f89 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff6d87398 in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007ffff6d7ce46 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#3  0x00007ffff6d7cef2 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
#4  0x00007ffff2582048 in cling::ValueExtractionSynthesizer::SynthesizeSVRInit (this=0x666090, E=0x1a76930)
    at /home/axel/build/root/trunk/src/interpreter/cling/lib/Interpreter/ValueExtractionSynthesizer.cpp:357
#5  0x00007ffff2580f7a in cling::ValueExtractionSynthesizer::Transform (this=0x666090) at /home/axel/build/root/trunk/src/interpreter/cling/lib/Interpreter/ValueExtractionSynthesizer.cpp:162
#6  0x00007ffff252d0f1 in cling::TransactionTransformer::TransformTransaction (this=0x666090, T=...) at /home/axel/build/root/trunk/src/interpreter/cling/lib/Interpreter/TransactionTransformer.cpp:22
#7  0x00007ffff24fe4fe in cling::IncrementalParser::transformTransactionAST (this=0x663020, T=0x1a52280) at /home/axel/build/root/trunk/src/interpreter/cling/lib/Interpreter/IncrementalParser.cpp:486
#8  0x00007ffff24fdfc0 in cling::IncrementalParser::endTransaction (this=0x663020, T=0x1a52280) at /home/axel/build/root/trunk/src/interpreter/cling/lib/Interpreter/IncrementalParser.cpp:236
#9  0x00007ffff24ff9b1 in cling::IncrementalParser::Compile (this=0x663020, input=..., Opts=...) at /home/axel/build/root/trunk/src/interpreter/cling/lib/Interpreter/IncrementalParser.cpp:583
#10 0x00007ffff250b800 in cling::Interpreter::EvaluateInternal (this=0x661e60, input=..., CO=..., V=0x7fffffffb5f0, T=0x0)
    at /home/axel/build/root/trunk/src/interpreter/cling/lib/Interpreter/Interpreter.cpp:977
#11 0x00007ffff250b02a in cling::Interpreter::process (this=0x661e60, input=..., V=0x7fffffffb5f0, T=0x0) at /home/axel/build/root/trunk/src/interpreter/cling/lib/Interpreter/Interpreter.cpp:502
#12 0x00007ffff259c842 in cling::MetaProcessor::process (this=0xf90a40, input_text=0x1ab2100 "#line 1 \"ROOT_prompt_0\"\n&TObject::Dump", compRes=@0x7fffffffb5ec: cling::Interpreter::kSuccess,
    result=0x7fffffffb5f0) at /home/axel/build/root/trunk/src/interpreter/cling/lib/MetaProcessor/MetaProcessor.cpp:162
#13 0x00007ffff2218ca7 in TCling::ProcessLine (this=0x6615d0, line=0x1ab20c0 "#line 1 \"ROOT_prompt_0\"\n&TObject::Dump", error=0x7fffffffba74)
    at /home/axel/build/root/trunk/src/core/meta/src/TCling.cxx:1619
#14 0x00007ffff7af4d26 in TApplication::ProcessLine (this=0x6538b0, line=0x1ab20c0 "#line 1 \"ROOT_prompt_0\"\n&TObject::Dump", sync=false, err=0x7fffffffba74)
    at /home/axel/build/root/trunk/src/core/base/src/TApplication.cxx:978
#15 0x00007ffff7fd910d in TRint::ProcessLineNr (this=0x6538b0, filestem=0x7ffff7feea9f <.L.str80> "ROOT_prompt_", line=0x1ab16c0 "&TObject::Dump", error=0x7fffffffba74)
    at /home/axel/build/root/trunk/src/core/rint/src/TRint.cxx:723
#16 0x00007ffff7fda279 in TRint::HandleTermInput (this=0x6538b0) at /home/axel/build/root/trunk/src/core/rint/src/TRint.cxx:596
#17 0x00007ffff7fd6dea in TTermInputHandler::Notify (this=0xb5da60) at /home/axel/build/root/trunk/src/core/rint/src/TRint.cxx:124
#18 0x00007ffff7fdbcf9 in TTermInputHandler::ReadNotify (this=0xb5da60) at /home/axel/build/root/trunk/src/core/rint/src/TRint.cxx:116
#19 0x00007ffff7c30a2e in TUnixSystem::CheckDescriptors (this=0x6343f0) at /home/axel/build/root/trunk/src/core/unix/src/TUnixSystem.cxx:1297
#20 0x00007ffff7c30426 in TUnixSystem::DispatchOneEvent (this=0x6343f0, pendingOnly=false) at /home/axel/build/root/trunk/src/core/unix/src/TUnixSystem.cxx:1052
#21 0x00007ffff7b78953 in TSystem::InnerLoop (this=0x6343f0) at /home/axel/build/root/trunk/src/core/base/src/TSystem.cxx:409
#22 0x00007ffff7b7863a in TSystem::Run (this=0x6343f0) at /home/axel/build/root/trunk/src/core/base/src/TSystem.cxx:359
#23 0x00007ffff7af5da4 in TApplication::Run (this=0x6538b0, retrn=false) at /home/axel/build/root/trunk/src/core/base/src/TApplication.cxx:1126
#24 0x00007ffff7fd8fd5 in TRint::Run (this=0x6538b0, retrn=false) at /home/axel/build/root/trunk/src/core/rint/src/TRint.cxx:450
#25 0x00000000004012b7 in main (argc=1, argv=0x7fffffffe218) at /home/axel/build/root/trunk/src/main/src/rmain.cxx:29

That's probably easy to fix.

Generated at Sun Sep 22 02:13:17 CEST 2019 using Jira 7.13.1#713001-sha1:5e06076c2d215a6f699b7e5c90ab2fae7ba5a1ce.