Skip to content

cling assertion crash #8389

@ferdymercury

Description

@ferdymercury

Describe the bug

One time, I made a typo when writing something in the interpreter that made whole ROOT crash.

Expected behavior

A warning is issued instead of crashing.

To Reproduce

root [0] for(auto& p : pn9) cout << std::bitset<14>(p) << endl;
ROOT_prompt_0:1:50: error: cannot initialize an array element of type 'void *' with an rvalue of type 'basic_ostream<char, std::char_traits<char> > &(*)(basic_ostream<char, std::char_traits<char> > &)'
for(auto& p : pn9) cout << std::bitset<14>(p) << endl;
                                                 ^~~~
root.exe: /opt/root_src/interpreter/cling/lib/Interpreter/DynamicLookup.cpp:764: clang::Expr* cling::EvaluateTSynthesizer::BuildDynamicExprInfo(clang::Expr*, bool): Assertion `ExprAddresses && "Could not build the void* array"' failed.

Setup

   ------------------------------------------------------------------
  | Welcome to ROOT 6.25/01                        https://root.cern |
  | (c) 1995-2021, The ROOT Team; conception: R. Brun, F. Rademakers |
  | Built for linuxx8664gcc on Jun 09 2021, 21:20:28                 |
  | From heads/master@v6-25-01-1189-g1ca221f010                      |
  | With                                                             |
  | Try '.help', '.demo', '.license', '.credits', '.quit'/'.q'       |
   ------------------------------------------------------------------

Additional context

Not sure why, maybe cause I built in 'debug mode' or it is another version, but I have another computer where it does not crash.

 root -b
   ------------------------------------------------------------------
  | Welcome to ROOT 6.25/01                        https://root.cern |
  | (c) 1995-2021, The ROOT Team; conception: R. Brun, F. Rademakers |
  | Built for linuxx8664gcc on Jun 08 2021, 21:53:04                 |
  | From heads/master@v6-25-01-1189-g1ca221f010                      |
  | With                                                             |
  | Try '.help', '.demo', '.license', '.credits', '.quit'/'.q'       |
   ------------------------------------------------------------------

root [0] for(auto& p : pn9) cout << std::bitset<14>(p) << endl;
ROOT_prompt_0:1:50: error: cannot initialize an array element of type 'void *' with an rvalue of type 'basic_ostream<char, std::char_traits<char> > &(*)(basic_ostream<char, std::char_traits<char> > &)'
for(auto& p : pn9) cout << std::bitset<14>(p) << endl;
                                                 ^~~~
ROOT_prompt_0:1:20: error: no viable conversion from 'std::basic_ostream<char, std::char_traits<char> >::__ostream_type' (aka 'basic_ostream<char, std::char_traits<char> >') to 'cling::runtime::internal::DynamicExprInfo *'
for(auto& p : pn9) cout << std::bitset<14>(p) << endl;
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/huesof/builds/build-root_src-Desktop-Debug/etc/cling/Interpreter/RuntimeUniverse.h:53:7: note: in instantiation of member function 'cling::runtime::internal::EvaluateT' requested here
      int InterpreterGeneratedCodeDiagnosticsMaybeIncorrect;
      ^
/home/huesof/builds/build-root_src-Desktop-Debug/etc/cling/Interpreter/DynamicLookupRuntimeUniverse.h:65:44: note: passing argument to parameter 'ExprInfo' here
    inline void EvaluateT(DynamicExprInfo* ExprInfo, clang::DeclContext* DC ) {
                                           ^
root [1] .q

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions