public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug c++/19531] NRV is performed on volatile temporary [not found] <bug-19531-9958@http.gcc.gnu.org/bugzilla/> @ 2007-09-23 12:26 ` rguenth at gcc dot gnu dot org 2007-09-23 17:13 ` bangerth at dealii dot org ` (5 subsequent siblings) 6 siblings, 0 replies; 9+ messages in thread From: rguenth at gcc dot gnu dot org @ 2007-09-23 12:26 UTC (permalink / raw) To: gcc-bugs ------- Comment #2 from rguenth at gcc dot gnu dot org 2007-09-23 12:26 ------- Why didn't you submit a patch? -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed|2006-01-26 05:35:43 |2007-09-23 12:26:37 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19531 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug c++/19531] NRV is performed on volatile temporary [not found] <bug-19531-9958@http.gcc.gnu.org/bugzilla/> 2007-09-23 12:26 ` [Bug c++/19531] NRV is performed on volatile temporary rguenth at gcc dot gnu dot org @ 2007-09-23 17:13 ` bangerth at dealii dot org 2007-09-24 7:10 ` chrbr at gcc dot gnu dot org ` (4 subsequent siblings) 6 siblings, 0 replies; 9+ messages in thread From: bangerth at dealii dot org @ 2007-09-23 17:13 UTC (permalink / raw) To: gcc-bugs ------- Comment #3 from bangerth at dealii dot org 2007-09-23 17:13 ------- Confirmed indeed. Core DR 20 added the following text to 12.8/15: This elision of copy operations is permitted in the following circumstances (which may be combined to eliminate multiple copies): -- in a return statement in a function with a class return type, when the expression is the name of a non-volatile automatic object with the same cv-unqualified type as the function return type, the copy operation can be omitted by constructing the automatic object directly into the function's return value Note that the return expression is specifically restricted to the name of a *non-volatile automatic object*. W. -- bangerth at dealii dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bangerth at dealii dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19531 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug c++/19531] NRV is performed on volatile temporary [not found] <bug-19531-9958@http.gcc.gnu.org/bugzilla/> 2007-09-23 12:26 ` [Bug c++/19531] NRV is performed on volatile temporary rguenth at gcc dot gnu dot org 2007-09-23 17:13 ` bangerth at dealii dot org @ 2007-09-24 7:10 ` chrbr at gcc dot gnu dot org 2007-09-24 7:15 ` chrbr at gcc dot gnu dot org ` (3 subsequent siblings) 6 siblings, 0 replies; 9+ messages in thread From: chrbr at gcc dot gnu dot org @ 2007-09-24 7:10 UTC (permalink / raw) To: gcc-bugs ------- Comment #4 from chrbr at gcc dot gnu dot org 2007-09-24 07:10 ------- Created an attachment (id=14248) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14248&action=view) volatile nrv patch -- chrbr at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot gnu |chrbr at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19531 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug c++/19531] NRV is performed on volatile temporary [not found] <bug-19531-9958@http.gcc.gnu.org/bugzilla/> ` (2 preceding siblings ...) 2007-09-24 7:10 ` chrbr at gcc dot gnu dot org @ 2007-09-24 7:15 ` chrbr at gcc dot gnu dot org 2007-10-08 11:03 ` chrbr at gcc dot gnu dot org ` (2 subsequent siblings) 6 siblings, 0 replies; 9+ messages in thread From: chrbr at gcc dot gnu dot org @ 2007-09-24 7:15 UTC (permalink / raw) To: gcc-bugs ------- Comment #5 from chrbr at gcc dot gnu dot org 2007-09-24 07:14 ------- the attached patch was hanging in my sandbox. will submit it along with a testsuite case. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19531 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug c++/19531] NRV is performed on volatile temporary [not found] <bug-19531-9958@http.gcc.gnu.org/bugzilla/> ` (3 preceding siblings ...) 2007-09-24 7:15 ` chrbr at gcc dot gnu dot org @ 2007-10-08 11:03 ` chrbr at gcc dot gnu dot org 2007-10-31 7:56 ` chrbr at gcc dot gnu dot org 2007-10-31 8:01 ` chrbr at gcc dot gnu dot org 6 siblings, 0 replies; 9+ messages in thread From: chrbr at gcc dot gnu dot org @ 2007-10-08 11:03 UTC (permalink / raw) To: gcc-bugs ------- Comment #6 from chrbr at gcc dot gnu dot org 2007-10-08 11:02 ------- patch+testcase at http://gcc.gnu.org/ml/gcc-patches/2007-09/msg01902.html -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19531 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug c++/19531] NRV is performed on volatile temporary [not found] <bug-19531-9958@http.gcc.gnu.org/bugzilla/> ` (4 preceding siblings ...) 2007-10-08 11:03 ` chrbr at gcc dot gnu dot org @ 2007-10-31 7:56 ` chrbr at gcc dot gnu dot org 2007-10-31 8:01 ` chrbr at gcc dot gnu dot org 6 siblings, 0 replies; 9+ messages in thread From: chrbr at gcc dot gnu dot org @ 2007-10-31 7:56 UTC (permalink / raw) To: gcc-bugs ------- Comment #7 from chrbr at gcc dot gnu dot org 2007-10-31 07:56 ------- Subject: Bug 19531 Author: chrbr Date: Wed Oct 31 07:55:46 2007 New Revision: 129792 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129792 Log: fix PR c++/19531: NRV is performed on volatile temporary Added: trunk/gcc/testsuite/g++.dg/opt/nrv8.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19531 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug c++/19531] NRV is performed on volatile temporary [not found] <bug-19531-9958@http.gcc.gnu.org/bugzilla/> ` (5 preceding siblings ...) 2007-10-31 7:56 ` chrbr at gcc dot gnu dot org @ 2007-10-31 8:01 ` chrbr at gcc dot gnu dot org 6 siblings, 0 replies; 9+ messages in thread From: chrbr at gcc dot gnu dot org @ 2007-10-31 8:01 UTC (permalink / raw) To: gcc-bugs ------- Comment #8 from chrbr at gcc dot gnu dot org 2007-10-31 08:01 ------- fixed check_return_expr -- chrbr at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution| |FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19531 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug c++/19531] New: RVO is performed on volatile temporary @ 2005-01-19 15:31 christian dot bruel at st dot com 2005-01-19 15:38 ` [Bug c++/19531] NRV " pinskia at gcc dot gnu dot org 2005-03-05 23:29 ` pinskia at gcc dot gnu dot org 0 siblings, 2 replies; 9+ messages in thread From: christian dot bruel at st dot com @ 2005-01-19 15:31 UTC (permalink / raw) To: gcc-bugs RVO is performed on a temporary object that is declared volatile. That seems contradictory with the ISO standards 12.8 15 (object and copy must have the same cv-unqualified type). With the following piece of code, I was excepting the copy constructor and destructor to be called. struct String { int field; String(); String(int); ~String(); String (const String &); String (volatile const String &); }; String name() { volatile String t(777); return t; } checking !TREE_VOLATILE (r) in finish_function where the named return value optimization is set up fixes the problem. -- Summary: RVO is performed on volatile temporary Product: gcc Version: 3.4.3 Status: UNCONFIRMED Severity: minor Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: christian dot bruel at st dot com CC: gcc-bugs at gcc dot gnu 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=19531 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug c++/19531] NRV is performed on volatile temporary 2005-01-19 15:31 [Bug c++/19531] New: RVO " christian dot bruel at st dot com @ 2005-01-19 15:38 ` pinskia at gcc dot gnu dot org 2005-03-05 23:29 ` pinskia at gcc dot gnu dot org 1 sibling, 0 replies; 9+ messages in thread From: pinskia at gcc dot gnu dot org @ 2005-01-19 15:38 UTC (permalink / raw) To: gcc-bugs ------- Additional Comments From pinskia at gcc dot gnu dot org 2005-01-19 15:38 ------- Confirmed. -- What |Removed |Added ---------------------------------------------------------------------------- CC| |pinskia at gcc dot gnu dot | |org Status|UNCONFIRMED |NEW Ever Confirmed| |1 Keywords| |wrong-code Known to fail| |4.0.0 3.1 Last reconfirmed|0000-00-00 00:00:00 |2005-01-19 15:38:39 date| | Summary|RVO is performed on volatile|NRV is performed on volatile |temporary |temporary http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19531 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug c++/19531] NRV is performed on volatile temporary 2005-01-19 15:31 [Bug c++/19531] New: RVO " christian dot bruel at st dot com 2005-01-19 15:38 ` [Bug c++/19531] NRV " pinskia at gcc dot gnu dot org @ 2005-03-05 23:29 ` pinskia at gcc dot gnu dot org 1 sibling, 0 replies; 9+ messages in thread From: pinskia at gcc dot gnu dot org @ 2005-03-05 23:29 UTC (permalink / raw) To: gcc-bugs -- What |Removed |Added ---------------------------------------------------------------------------- Severity|minor |normal http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19531 ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2007-10-31 8:01 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <bug-19531-9958@http.gcc.gnu.org/bugzilla/> 2007-09-23 12:26 ` [Bug c++/19531] NRV is performed on volatile temporary rguenth at gcc dot gnu dot org 2007-09-23 17:13 ` bangerth at dealii dot org 2007-09-24 7:10 ` chrbr at gcc dot gnu dot org 2007-09-24 7:15 ` chrbr at gcc dot gnu dot org 2007-10-08 11:03 ` chrbr at gcc dot gnu dot org 2007-10-31 7:56 ` chrbr at gcc dot gnu dot org 2007-10-31 8:01 ` chrbr at gcc dot gnu dot org 2005-01-19 15:31 [Bug c++/19531] New: RVO " christian dot bruel at st dot com 2005-01-19 15:38 ` [Bug c++/19531] NRV " pinskia at gcc dot gnu dot org 2005-03-05 23:29 ` pinskia at gcc dot gnu dot org
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).