typeinfo and exceptions
Tim Janik
timj@gtk.org
Mon Mar 7 10:42:00 GMT 2005
hi all.
i really fail to see what i'm doing wrong in the following code:
struct Exception : std::exception {
Exception (const char *format, ...) __attribute__((__format__ (__printf__, 2, 3)));
[...]
};
struct Obj {
Obj () { throw Exception ("%s: error", typeid (this).name()); }
};
try { Obj a; } catch (std::exception &e) {
printf ("exception: what(): %s\n", e.what());
}
it does however produce garbage (with 3.3 and 3.4) instead of Obj's typename:
exception: what(): 44`l$@: error
i have attached a full test case with 2 throw statements that
will both produce a garbage typename. i'm not sure this isn't
a compiler bug, so any help is apprechiated.
---
ciaoTJ
-------------- next part --------------
A non-text attachment was scrubbed...
Name: stackthrow.cc
Type: text/x-c++src
Size: 1193 bytes
Desc: stackthrow.cc
URL: <http://gcc.gnu.org/pipermail/gcc-bugs/attachments/20050307/4568a769/attachment.bin>
More information about the Gcc-bugs
mailing list