public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [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; 2+ 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] 2+ messages in thread

* [Bug c++/20039] uninitialized const in `new' of `const struct'
  2005-02-18  1:05 [Bug c++/20039] New: uninitialized const in `new' of `const struct' msadoghi at ca dot ibm dot com
@ 2005-02-18  1:16 ` pinskia at gcc dot gnu dot org
  0 siblings, 0 replies; 2+ 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] 2+ messages in thread

end of thread, other threads:[~2005-02-17 21:04 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-02-18  1:05 [Bug c++/20039] New: uninitialized const in `new' of `const struct' 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).