c++/6060: c++: object is not created

Alexander Zvyagin Alexander.Zviagine@cern.ch
Tue Mar 26 03:16:00 GMT 2002


>Number:         6060
>Category:       c++
>Synopsis:       c++: object is not created
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Mar 26 03:16:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     
>Release:        
>Organization:
>Environment:
System: Linux lxplus015 2.2.19-6.2.1.1smp #1 SMP Tue Apr 17 20:00:04 CEST 2001 i686 unknown
Architecture: i686

	
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../configure --prefix=/afs/cern.ch/compass/delivery/tools/gcc-3.0.4
Description:
The code shown below should create four objects of the class TT. But only three objects
are created (there are only three calls for the constructors/destructor).

// File constructors.cc
#include <iostream>
using std::cout;

class TT
{
  public:
   ~TT (void   )          {cout << "D\n";}
    TT (void   ) : c(' ') {cout << "C\n";}
    TT (char cc) : c(cc ) {cout << "C " << c << "\n";}
    char c;
};

int main()
{
  cout << "1\n";
  TT();
  cout << "2\n";
  TT t2('a');
  cout << "3\n";
  TT t3();          // The object is not created!!!
  cout << "4\n";
  TT t4;            // OK!
  cout << "5\n";
}
// EOF

Output:
$ ./a.out
1
C
D
2
C a
3
4
C
5
D
D

So the object 't3' was not created.

>Description:
 Originator:	Alexander Zvyagin
 Organization:	LMU,CERN
 Synopsis:	T t();   object creation does not work
 Severity:	serious
 Priority:	medium
 Class:		wrong-code
 Release:	3.0.4
>How-To-Repeat:
$ g++ constructors.cc
$ ./a.out
>Fix:
	
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the Gcc-prs mailing list