public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug c++/20039] uninitialized const in `new' of `const struct' [not found] <bug-20039-4@http.gcc.gnu.org/bugzilla/> @ 2011-04-12 21:32 ` fabien at gcc dot gnu.org 2011-04-12 23:55 ` redi at gcc dot gnu.org ` (3 subsequent siblings) 4 siblings, 0 replies; 7+ messages in thread From: fabien at gcc dot gnu.org @ 2011-04-12 21:32 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20039 fabien at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |UNCONFIRMED CC| |fabien at gcc dot gnu.org Known to work| |4.4.5, 4.5.2, 4.6.0 Ever Confirmed|1 |0 Known to fail| |4.1.2, 4.2.4, 4.3.5 --- Comment #3 from fabien at gcc dot gnu.org 2011-04-12 21:31:58 UTC --- It was fixed in 4.4.x ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/20039] uninitialized const in `new' of `const struct' [not found] <bug-20039-4@http.gcc.gnu.org/bugzilla/> 2011-04-12 21:32 ` [Bug c++/20039] uninitialized const in `new' of `const struct' fabien at gcc dot gnu.org @ 2011-04-12 23:55 ` redi at gcc dot gnu.org 2011-05-09 21:10 ` fabien at gcc dot gnu.org ` (2 subsequent siblings) 4 siblings, 0 replies; 7+ messages in thread From: redi at gcc dot gnu.org @ 2011-04-12 23:55 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20039 Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED --- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-04-12 23:55:19 UTC --- fixed then ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/20039] uninitialized const in `new' of `const struct' [not found] <bug-20039-4@http.gcc.gnu.org/bugzilla/> 2011-04-12 21:32 ` [Bug c++/20039] uninitialized const in `new' of `const struct' fabien at gcc dot gnu.org 2011-04-12 23:55 ` redi at gcc dot gnu.org @ 2011-05-09 21:10 ` fabien at gcc dot gnu.org 2011-09-23 21:37 ` jason at gcc dot gnu.org 2011-09-25 20:46 ` jason at gcc dot gnu.org 4 siblings, 0 replies; 7+ messages in thread From: fabien at gcc dot gnu.org @ 2011-05-09 21:10 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20039 --- Comment #5 from fabien at gcc dot gnu.org 2011-05-09 20:56:33 UTC --- Author: fabien Date: Mon May 9 20:56:29 2011 New Revision: 173592 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=173592 Log: gcc/testsuite/ChangeLog: 2011-05-09 Fabien Chene <fabien@gcc.gnu.org> PR c++/20039 * g++.dg/init/pr20039.C: New. Added: trunk/gcc/testsuite/g++.dg/init/pr20039.C Modified: trunk/gcc/testsuite/ChangeLog ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/20039] uninitialized const in `new' of `const struct' [not found] <bug-20039-4@http.gcc.gnu.org/bugzilla/> ` (2 preceding siblings ...) 2011-05-09 21:10 ` fabien at gcc dot gnu.org @ 2011-09-23 21:37 ` jason at gcc dot gnu.org 2011-09-25 20:46 ` jason at gcc dot gnu.org 4 siblings, 0 replies; 7+ messages in thread From: jason at gcc dot gnu.org @ 2011-09-23 21:37 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20039 --- Comment #6 from Jason Merrill <jason at gcc dot gnu.org> 2011-09-23 21:30:52 UTC --- Author: jason Date: Fri Sep 23 21:30:48 2011 New Revision: 179130 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=179130 Log: Core 234 - allow const objects with no initializer or user-provided default constructor if the defaulted constructor initializes all the subobjects. PR c++/20039 PR c++/42844 * class.c (default_init_uninitialized_part): New. * cp-tree.h: Declare it. * decl.c (check_for_uninitialized_const_var): Use it. * init.c (perform_member_init): Likewise. (build_new_1): Likewise. * method.c (walk_field_subobs): Likewise. Added: trunk/gcc/testsuite/g++.dg/init/const8.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/init.c trunk/gcc/cp/method.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-object1.C trunk/gcc/testsuite/g++.dg/cpp0x/defaulted2.C trunk/gcc/testsuite/g++.dg/cpp0x/pr42844-2.C trunk/gcc/testsuite/g++.dg/init/pr20039.C trunk/gcc/testsuite/g++.dg/init/pr42844.C ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/20039] uninitialized const in `new' of `const struct' [not found] <bug-20039-4@http.gcc.gnu.org/bugzilla/> ` (3 preceding siblings ...) 2011-09-23 21:37 ` jason at gcc dot gnu.org @ 2011-09-25 20:46 ` jason at gcc dot gnu.org 4 siblings, 0 replies; 7+ messages in thread From: jason at gcc dot gnu.org @ 2011-09-25 20:46 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20039 --- Comment #7 from Jason Merrill <jason at gcc dot gnu.org> 2011-09-25 20:29:09 UTC --- Author: jason Date: Sun Sep 25 20:29:04 2011 New Revision: 179170 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=179170 Log: Core 234 - allow const objects with no initializer or user-provided default constructor if the defaulted constructor initializes all the subobjects. PR c++/20039 PR c++/42844 * class.c (default_init_uninitialized_part): New. * cp-tree.h: Declare it. * decl.c (check_for_uninitialized_const_var): Use it. * init.c (perform_member_init): Likewise. (build_new_1): Likewise. * method.c (walk_field_subobs): Likewise. Added: branches/gcc-4_6-branch/gcc/testsuite/g++.dg/init/const8.C Modified: branches/gcc-4_6-branch/gcc/cp/ChangeLog branches/gcc-4_6-branch/gcc/cp/class.c branches/gcc-4_6-branch/gcc/cp/cp-tree.h branches/gcc-4_6-branch/gcc/cp/decl.c branches/gcc-4_6-branch/gcc/cp/init.c branches/gcc-4_6-branch/gcc/cp/method.c branches/gcc-4_6-branch/gcc/testsuite/ChangeLog branches/gcc-4_6-branch/gcc/testsuite/g++.dg/cpp0x/constexpr-object1.C branches/gcc-4_6-branch/gcc/testsuite/g++.dg/cpp0x/defaulted2.C branches/gcc-4_6-branch/gcc/testsuite/g++.dg/cpp0x/pr42844-2.C branches/gcc-4_6-branch/gcc/testsuite/g++.dg/init/pr42844.C branches/gcc-4_6-branch/gcc/testsuite/lib/prune.exp ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <bug-20039-10087@http.gcc.gnu.org/bugzilla/>]
* [Bug c++/20039] uninitialized const in `new' of `const struct' [not found] <bug-20039-10087@http.gcc.gnu.org/bugzilla/> @ 2006-10-10 3:36 ` bangerth at dealii dot org 0 siblings, 0 replies; 7+ messages in thread From: bangerth at dealii dot org @ 2006-10-10 3:36 UTC (permalink / raw) To: gcc-bugs ------- Comment #2 from bangerth at dealii dot org 2006-10-10 03:36 ------- *** Bug 28990 has been marked as a duplicate of this bug. *** -- bangerth at dealii dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |amylaar at gcc dot gnu dot | |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20039 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/20039] New: uninitialized const in `new' of `const struct' @ 2005-02-18 1:05 msadoghi at ca dot ibm dot com 2005-02-18 1:16 ` [Bug c++/20039] " pinskia at gcc dot gnu dot org 0 siblings, 1 reply; 7+ messages in thread From: msadoghi at ca dot ibm dot com @ 2005-02-18 1:05 UTC (permalink / raw) To: gcc-bugs Sourc code for t.cpp: ------------------------------------------------ struct M { M() : m(0) { } int m; }; struct X { M m; /* Changing this line to "int m" will produce expected error */ }; int mymain() { const X *p = new const X[2]; /* error - X must have explicit default constructor */ return 0; } ------------------------------------------------ Expected Behaviour: ------------------------------------------------ t.cpp:14: error: uninitialized const in `new' of `const struct X' ------------------------------------------------ Actual Behaviour: ------------------------------------------------ None. ------------------------------------------------ t.ii generated with -save-temps option ------------------------------------------------ # 1 "t.cpp" # 1 "<built-in>" # 1 "<command line>" # 1 "t.cpp" struct M { M() : m(0) { } int m; }; struct X { M m; }; int mymain() { const X *p = new const X[2]; return 0; } ------------------------------------------------ Release: ------------------------------------------------ GCC Version: 3.2.0 ------------------------------------------------ Environment: System Type: ------------------------------------------------ Reading specs from /usr/local/bin/../lib/gcc-lib/powerpc-ibm-aix5.1.0.0/3.2/specs Configured with: /scratch/gcc-3.2/configure --prefix=/usr/local/gcc.3.2.0 --enable-threads=aix --disable-nls Thread model: aix gcc version 3.2 /usr/local/bin/../lib/gcc-lib/powerpc-ibm-aix5.1.0.0/3.2/cpp0 -lang-c++ -D__GNUG__=3 -D__DEPRECATED -D__EXCEPTIONS -v -iprefix /usr/local/bin/../lib/gcc-lib/powerpc-ibm-aix5.1.0.0/3.2/ -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=0 -D__GXX_ABI_VERSION=102 -D_IBMR2 -D_POWER -D_LONG_LONG -D_AIX -D_AIX32 -D_AIX41 -D_AIX43 -D_AIX51 -D_IBMR2 -D_POWER -D_LONG_LONG -D_AIX -D_AIX32 -D_AIX41 -D_AIX43 -D_AIX51 -Asystem=unix -Asystem=aix -D__NO_INLINE__ -D__STDC_HOSTED__=1 -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED=1 -D_LARGE_FILE_API -D_ALL_SOURCE -D__WCHAR_TYPE__=short unsigned int -D_ARCH_COM /home/msadoghi/scenario/common/t.cpp t.ii GNU CPP version 3.2 (cpplib) ignoring nonexistent directory "/usr/local/lib/gcc-lib/../../powerpc-ibm-aix5.1.0.0/include" ignoring nonexistent directory "/usr/local/gcc.3.2.0/powerpc-ibm-aix5.1.0.0/include" ignoring duplicate directory "/usr/local/gcc.3.2.0/include/c++/3.2" ignoring duplicate directory "/usr/local/gcc.3.2.0/include/c++/3.2/powerpc-ibm-aix5.1.0.0" ignoring duplicate directory "/usr/local/gcc.3.2.0/include/c++/3.2/backward" ignoring duplicate directory "/usr/local/gcc.3.2.0/lib/gcc-lib/powerpc-ibm-aix5.1.0.0/3.2/include" #include "..." search starts here: #include <...> search starts here: /usr/local/lib/gcc-lib/../../include/c++/3.2 /usr/local/lib/gcc-lib/../../include/c++/3.2/powerpc-ibm-aix5.1.0.0 /usr/local/lib/gcc-lib/../../include/c++/3.2/backward /usr/local/lib/gcc-lib/powerpc-ibm-aix5.1.0.0/3.2/include /usr/local/include /usr/local/gcc.3.2.0/include /usr/include End of search list. /usr/local/bin/../lib/gcc-lib/powerpc-ibm-aix5.1.0.0/3.2/cc1plus -fpreprocessed t.ii -quiet -dumpbase t.cpp -version -o t.s GNU CPP version 3.2 (cpplib) GNU C++ version 3.2 (powerpc-ibm-aix5.1.0.0) compiled by GNU C version 3.2. as -u -mcom -o t.o t.s ------------------------------------------------ How-To-Repeat: ------------------------------------------------ g++ -v -save-temps -c -std=iso9899:199409 t.cpp ------------------------------------------------ Note: ------------------------------------------------ This is a diagnostic test case. Compilation failure is expected. However the compilation is successful and no error or warning messages are produced. According to C++ ANSI Standard the test cases should produces an error. Therefore, in the strict mode compiler should produce a server error and in the extended mode it should at least prodeces a warning. C++ ANSI Standard: "when new-expression without new-initializer creates object of const-qualified non-POD class T (or array thereof), T must have user-declared default constructor" The MACOS, LINUX and AIX all have a similar behaviors. The expected behavior was produced by changing line 9: M m; -> int m; ------------------------------------------------ -- Summary: uninitialized const in `new' of `const struct' Product: gcc Version: 3.2 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: msadoghi at ca dot ibm dot com CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20039 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/20039] uninitialized const in `new' of `const struct' 2005-02-18 1:05 [Bug c++/20039] New: " msadoghi at ca dot ibm dot com @ 2005-02-18 1:16 ` pinskia at gcc dot gnu dot org 0 siblings, 0 replies; 7+ messages in thread From: pinskia at gcc dot gnu dot org @ 2005-02-18 1:16 UTC (permalink / raw) To: gcc-bugs ------- Additional Comments From pinskia at gcc dot gnu dot org 2005-02-17 21:04 ------- Confirmed, not a regression. -- What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed| |1 Keywords| |accepts-invalid Known to fail| |2.95.3 3.0.4 3.2.3 3.3.3 | |3.4.0 4.0.0 Last reconfirmed|0000-00-00 00:00:00 |2005-02-17 21:04:22 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20039 ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2011-09-25 20:30 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <bug-20039-4@http.gcc.gnu.org/bugzilla/> 2011-04-12 21:32 ` [Bug c++/20039] uninitialized const in `new' of `const struct' fabien at gcc dot gnu.org 2011-04-12 23:55 ` redi at gcc dot gnu.org 2011-05-09 21:10 ` fabien at gcc dot gnu.org 2011-09-23 21:37 ` jason at gcc dot gnu.org 2011-09-25 20:46 ` jason at gcc dot gnu.org [not found] <bug-20039-10087@http.gcc.gnu.org/bugzilla/> 2006-10-10 3:36 ` bangerth at dealii dot org 2005-02-18 1:05 [Bug c++/20039] New: " msadoghi at ca dot ibm dot com 2005-02-18 1:16 ` [Bug c++/20039] " 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).