This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

-fvisibility=hidden vs. typeinfo


I have some code that looks like

  void some_function() throw (std::out_of_range) {
      ... call to std::map<>::at() which throws out_out_range
  }

if I compile with -fvisibility=hidden, this code calls terminate(). My suspicion is that I ended up with two copies of the typeinfo block for std::out_of_range; one used by std::__throw_out_of_range() in libstdc++, and another in the guard code generated by the compiler. Since they don't match, the guard block terminates.

Is this correct? If so, is this a bug in libstdc++, or the compiler (or the linker)? If not, what can I do to fix this?

I wasn't able to generate a self contained test case quickly, but if there's no other way, I'll invest more effort into it.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]