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

Alexander Zvyagin Alexander.Zviagine@cern.ch
Tue Mar 26 02:46:00 GMT 2002


>Number:         6058
>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 02:46:08 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     
>Release:        
>Organization:
>Environment:
>Description:
 Category:   c++
 Ofriginator:     Alexander Zvyagin
 Organization:   LMU
 Synopsis:       an object of a C++ class is not created
 Severity:       serious
 Priority:   medium
 Class:      wrong-code
 Release:    3.0.4
 Environment: 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 three objects of the class TT. But only two objects
 are created (there are only two calls for constructor/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.
 
 How-To-Repeat:
 $ g++ constructors.cc
 $ ./a.out
>How-To-Repeat:
>Fix:
	
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the Gcc-prs mailing list