[Bug libstdc++/77686] [6/7 Regression] wrong code on arm-linux-gnueabi and arm-linux-gnueabihf

2016-09-28 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77686 --- Comment #23 from Jonathan Wakely --- Author: redi Date: Wed Sep 28 12:47:24 2016 New Revision: 240574 URL: https://gcc.gnu.org/viewcvs?rev=240574&root=gcc&view=rev Log: libstdc++/77686 use may_alias for std::function storage PR libs

[Bug libstdc++/77686] [6/7 Regression] wrong code on arm-linux-gnueabi and arm-linux-gnueabihf

2016-09-28 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77686 --- Comment #22 from rguenther at suse dot de --- On Wed, 28 Sep 2016, redi at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77686 > > Jonathan Wakely changed: > >What|Removed |Added

[Bug libstdc++/77686] [6/7 Regression] wrong code on arm-linux-gnueabi and arm-linux-gnueabihf

2016-09-28 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77686 Jonathan Wakely changed: What|Removed |Added Status|NEW |RESOLVED Resolution|---

[Bug libstdc++/77686] [6/7 Regression] wrong code on arm-linux-gnueabi and arm-linux-gnueabihf

2016-09-28 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77686 --- Comment #20 from Jonathan Wakely --- Author: redi Date: Wed Sep 28 12:03:43 2016 New Revision: 240571 URL: https://gcc.gnu.org/viewcvs?rev=240571&root=gcc&view=rev Log: libstdc++/77686 use may_alias for std::function storage PR libs

[Bug libstdc++/77686] [6/7 Regression] wrong code on arm-linux-gnueabi and arm-linux-gnueabihf

2016-09-28 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77686 --- Comment #19 from Jonathan Wakely --- Author: redi Date: Wed Sep 28 10:57:46 2016 New Revision: 240567 URL: https://gcc.gnu.org/viewcvs?rev=240567&root=gcc&view=rev Log: libstdc++/77686 use may_alias for std::function storage PR libs

[Bug libstdc++/77686] [6/7 Regression] wrong code on arm-linux-gnueabi and arm-linux-gnueabihf

2016-09-27 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77686 --- Comment #18 from rguenther at suse dot de --- On Tue, 27 Sep 2016, redi at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77686 > > --- Comment #17 from Jonathan Wakely --- > (In reply to Richard Biener from comment

[Bug libstdc++/77686] [6/7 Regression] wrong code on arm-linux-gnueabi and arm-linux-gnueabihf

2016-09-27 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77686 --- Comment #17 from Jonathan Wakely --- (In reply to Richard Biener from comment #14) > Just to explain a little bit. Consider > > void foo (void) > { > union { float f; char c[4]; } u, v; > *(int *)&u = 0; > v = u; > return *(int *)&v

[Bug libstdc++/77686] [6/7 Regression] wrong code on arm-linux-gnueabi and arm-linux-gnueabihf

2016-09-27 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77686 --- Comment #16 from Jonathan Wakely --- For C++ 12.8 [class.copy] says: -16- The implicitly-defined copy/move constructor for a union X copies the object representation (3.9) of X. and -29- The implicitly-defined copy assignment operator fo

[Bug libstdc++/77686] [6/7 Regression] wrong code on arm-linux-gnueabi and arm-linux-gnueabihf

2016-09-27 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77686 --- Comment #15 from Richard Biener --- Btw, what I fail to find is sth in the (C) standard that specifies the semantics of an aggregate assignment of union type. Thus I interpret it to use the effective type of the object (determined by the las

[Bug libstdc++/77686] [6/7 Regression] wrong code on arm-linux-gnueabi and arm-linux-gnueabihf

2016-09-27 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77686 --- Comment #14 from Richard Biener --- Just to explain a little bit. Consider void foo (void) { union { float f; char c[4]; } u, v; *(int *)&u = 0; v = u; return *(int *)&v; } then C11 6.5/6,7 make it clear that it is not valid to use

[Bug libstdc++/77686] [6/7 Regression] wrong code on arm-linux-gnueabi and arm-linux-gnueabihf

2016-09-27 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77686 --- Comment #13 from Jonathan Wakely --- (In reply to Richard Biener from comment #12) > Index: libstdc++-v3/include/std/functional > === > --- libstdc++-v3/include/std/functional (r

[Bug libstdc++/77686] [6/7 Regression] wrong code on arm-linux-gnueabi and arm-linux-gnueabihf

2016-09-27 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77686 --- Comment #12 from Richard Biener --- Index: libstdc++-v3/include/std/functional === --- libstdc++-v3/include/std/functional (revision 240521) +++ libstdc++-v3/include/std/function

[Bug libstdc++/77686] [6/7 Regression] wrong code on arm-linux-gnueabi and arm-linux-gnueabihf

2016-09-27 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77686 --- Comment #11 from Richard Biener --- ;; Function void std::function<_Res(_ArgTypes ...)>::swap(std::function<_Res(_ArgTypes ...)>&) [with _Res = void; _ArgTypes = {}] (null) ;; enabled by -tree-original <<< Unknown tree: must_not_throw_expr

[Bug libstdc++/77686] [6/7 Regression] wrong code on arm-linux-gnueabi and arm-linux-gnueabihf

2016-09-27 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77686 Richard Biener changed: What|Removed |Added CC||jwakely.gcc at gmail dot com C