http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51113

--- Comment #5 from Markus Trippelsdorf <markus at trippelsdorf dot de> 
2011-11-15 08:36:01 UTC ---
Take the first error as an example:

jsoptparse.i_o:jsoptparse.cpp:function vtable for
js::cli::detail::StringOption: warning: relocation refers to discarded section
/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.0/../../../../x86_64-pc-linux-gnu/bin/ld:
error: hidden symbol '_ZN2js3cli6detail12StringOptionD1Ev' is not defined
locally

 % c++filt _ZN2js3cli6detail12StringOptionD1Ev
js::cli::detail::StringOption::~StringOption()

This is a virtual destructor that is defined in js/src/shell/jsoptparse.h:

struct StringOption : public ValuedOption
{
    const char *value;

    StringOption(char shortflag, const char *longflag, const char *help, const
char *metavar)
      : ValuedOption(OptionKindString, shortflag, longflag, help, metavar),
value(NULL)
    {}

    virtual ~StringOption() {}
};

This header is included in js/src/shell/jsoptparse.c. And in there you 
find the following line:

StringOption *so = OffTheBooks::new_<StringOption>(1, name, help, (const char
*) NULL);

Reply via email to