RE: [ROOT] error from ROOT when using static const class member

From: Philippe Canal (
Date: Fri Feb 27 2004 - 19:23:57 MET


Thank you for reporting this problem.  We will investigate the problem.


-----Original Message-----
From: []On
Behalf Of
Sent: Friday, February 27, 2004 12:14 AM
To: roottalk
Subject: [ROOT] error from ROOT when using static const class member

the program test.h and test.C can be compiled and run
under g++ in linux.
also can be compiled in ROOT using .L test.C++
but when I execute it, ROOT gave me a lot of error,
Is there anyone can help me with this?

Thank you in advance!

Here are the source code and error message from ROOT

 * test.h

#include <iostream>

class X
  static const int i;
  static const int a[];

  void print();

const int X::a[]={0,1,2,3,4,5,6,7,8,9};

void X::print()
    std::cout << "Print static const int member:\n"
              << X::a[0] << '\t'
              << X::a[1] << '\t'
              << std::endl;

 * test.C
//#include <iostream>
#include "test.h"

using namespace std;

int main()
  cout << "Hello World!\n";

  X x;

 * error messages from ROOT
root [0] .L test.C
root [1] X x;
root [2] x.print()
Print static const int member:

 *** Break *** segmentation violation
 Generating stack trace...
 0x410272b8 in <unknown> from /lib/
 0x406077ec in G__getitem + 0x712 from /usr/local/root/lib/
 0x40600c60 in G__getexpr + 0x3c97 from /usr/local/root/lib/
 0x406619fa in G__exec_statement + 0x1d02 from
 0x406333ca in G__interpret_func + 0x20f5 from
 0x40610d15 in G__getfunction + 0x15cf from /usr/local/root/lib/
 0x406a689f in G__getstructmem + 0xa5d from /usr/local/root/lib/
 0x406a007b in G__getvariable + 0x5db from /usr/local/root/lib/
 0x406077ec in G__getitem + 0x712 from /usr/local/root/lib/
 0x4060603e in G__getexpr + 0x9075 from /usr/local/root/lib/
 0x4065adca in G__exec_function + 0x1ed from /usr/local/root/lib/
 0x406621ef in G__exec_statement + 0x24f7 from
 0x405ec77f in G__exec_tempfile_core + 0x345 from
/usr/local/root/lib/ 0x405ec9e3 in G__exec_tempfile_fp + 0x31 from
 0x4066aa6c in G__process_cmd + 0x4c79 from /usr/local/root/lib/
 0x40163b90 in TCint::ProcessLine(char const*, TInterpreter::EErrorCode*) +
0xaa from /usr/local/root/lib/
 0x400e21f4 in TApplication::ProcessLine(char const*, bool, int*) + 0x5b6
from /usr/local/root/lib/
 0x40e8615a in TRint::HandleTermInput() + 0x1f8 from
 0x40e84e19 in TTermInputHandler::Notify() + 0x27 from
 0x40e86a28 in TTermInputHandler::ReadNotify() + 0x14 from
 0x401c9a67 in TUnixSystem::CheckDescriptors() + 0xf7 from
 0x401c914b in TUnixSystem::DispatchOneEvent(bool) + 0xf7 from
 0x40132f6d in TSystem::InnerLoop() + 0x25 from
 0x40132efb in TSystem::Run() + 0x7d from /usr/local/root/lib/
 0x400e2bf0 in TApplication::Run(bool) + 0x30 from
 0x40e85bf2 in TRint::Run(bool) + 0x318 from /usr/local/root/lib/
 0x08048888 in main + 0x90 from /usr/local/root/bin/root.exe
 0x4101390b in __libc_start_main + 0xcb from /lib/
 0x08048761 in _Unwind_Resume + 0x31 from /usr/local/root/bin/root.exe
Root > Function print() busy flag cleared

root [3]

//=================== end ======================================

        Lingyun Yang

This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:06 MET