public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug c++/26143] New: [4.0 Regression] wrong code when returning a function pointer @ 2006-02-07 0:26 halcy0n at gentoo dot org 2006-02-07 0:37 ` [Bug c++/26143] " pinskia at gcc dot gnu dot org 2006-02-07 2:36 ` [Bug c++/26143] accepts invalid function pointer type return pinskia at gcc dot gnu dot org 0 siblings, 2 replies; 4+ messages in thread From: halcy0n at gentoo dot org @ 2006-02-07 0:26 UTC (permalink / raw) To: gcc-bugs The following testcase causes a segfault when compiled with 4.0.3 20060206 (with no optimizations). gcc-3.3, 3.4, and 4.1 all seem to work fine with this code. --------- #include <iostream> std::string exception_to_debug_string(const std::exception & e) { return std::string("hey now"); } class DebugStringHolder { public: std::string (*get()) (const std::exception &) const { return &exception_to_debug_string; } }; static DebugStringHolder _instance; int main(int, char * argv[]) { try { throw std::exception(); } catch (std::exception &e) { std::cout << (_instance.get())(e) << std::endl; } } Results with 4.0: halcyon@birdbath ~ $ ./a.out *** glibc detected *** free(): invalid pointer: 0xb7e6cfe8 *** Aborted Results with 4.1: halcyon@birdbath ~ $ ./a.out hey now On 4.1 it seems it was fixed by pr #19317 -- Summary: [4.0 Regression] wrong code when returning a function pointer Product: gcc Version: 4.0.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: halcy0n at gentoo dot org GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26143 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/26143] [4.0 Regression] wrong code when returning a function pointer 2006-02-07 0:26 [Bug c++/26143] New: [4.0 Regression] wrong code when returning a function pointer halcy0n at gentoo dot org @ 2006-02-07 0:37 ` pinskia at gcc dot gnu dot org 2006-02-07 2:36 ` [Bug c++/26143] accepts invalid function pointer type return pinskia at gcc dot gnu dot org 1 sibling, 0 replies; 4+ messages in thread From: pinskia at gcc dot gnu dot org @ 2006-02-07 0:37 UTC (permalink / raw) To: gcc-bugs ------- Comment #1 from pinskia at gcc dot gnu dot org 2006-02-07 00:37 ------- Confirmed. -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jason at gcc dot gnu dot org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 GCC build triplet|i686-pc-linux-gnu | GCC host triplet|i686-pc-linux-gnu | GCC target triplet|i686-pc-linux-gnu | Keywords| |wrong-code Last reconfirmed|0000-00-00 00:00:00 |2006-02-07 00:37:37 date| | Target Milestone|--- |4.0.3 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26143 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/26143] accepts invalid function pointer type return 2006-02-07 0:26 [Bug c++/26143] New: [4.0 Regression] wrong code when returning a function pointer halcy0n at gentoo dot org 2006-02-07 0:37 ` [Bug c++/26143] " pinskia at gcc dot gnu dot org @ 2006-02-07 2:36 ` pinskia at gcc dot gnu dot org 1 sibling, 0 replies; 4+ messages in thread From: pinskia at gcc dot gnu dot org @ 2006-02-07 2:36 UTC (permalink / raw) To: gcc-bugs ------- Comment #2 from pinskia at gcc dot gnu dot org 2006-02-07 02:36 ------- Actually I looked at this again and this is invalid code and we should reject it (fixing where the const is fixes the wrong code): struct DebugStringHolder { int (*get()) () const; }; ------ Related to PR 6628 -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- BugsThisDependsOn| |6628 Keywords|wrong-code |accepts-invalid Known to fail|4.0.3 |4.0.3 2.95.3 3.0.4 4.1.0 | |4.2.0 Known to work|3.4.5 4.1.0 | Summary|[4.0 Regression] wrong code |accepts invalid function |when returning a function |pointer type return |pointer | Target Milestone|4.0.3 |--- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26143 ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <bug-26143-4@http.gcc.gnu.org/bugzilla/>]
* [Bug c++/26143] accepts invalid function pointer type return [not found] <bug-26143-4@http.gcc.gnu.org/bugzilla/> @ 2013-06-16 16:14 ` paolo.carlini at oracle dot com 0 siblings, 0 replies; 4+ messages in thread From: paolo.carlini at oracle dot com @ 2013-06-16 16:14 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26143 Paolo Carlini <paolo.carlini at oracle dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC|gcc-bugs at gcc dot gnu.org | Resolution|--- |DUPLICATE Known to fail| | --- Comment #3 from Paolo Carlini <paolo.carlini at oracle dot com> --- Dup. *** This bug has been marked as a duplicate of bug 13452 *** ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-06-16 16:14 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2006-02-07 0:26 [Bug c++/26143] New: [4.0 Regression] wrong code when returning a function pointer halcy0n at gentoo dot org 2006-02-07 0:37 ` [Bug c++/26143] " pinskia at gcc dot gnu dot org 2006-02-07 2:36 ` [Bug c++/26143] accepts invalid function pointer type return pinskia at gcc dot gnu dot org [not found] <bug-26143-4@http.gcc.gnu.org/bugzilla/> 2013-06-16 16:14 ` paolo.carlini at oracle dot com
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).