[Bug c++/15229] New: Omits constructor calls for variables not used otherwise.

duz at sol-3 dot de gcc-bugzilla@gcc.gnu.org
Fri Apr 30 16:00:00 GMT 2004


I have a variable of a class type. The side-effect of the constructor is
registering and ordering some stuff in a table. The variable is declared in
main. It is not used otherwise in main. Thus I want to achieve that the table's
contents is set up properly while main is running, i.e. after global constructor
runtime but before anything else interesting happens.

I tried to find a trivial test case, but trivial cases work fine. So here comes
the big one. Attached is preprocessed C++-file

    trader-main.ii

I compiled with the command

    g++-3.4 -v -S -O -fno-exceptions trader-main.ii

(The bug also happens when I replace -O by -g. Then I see when stepping
through the program, how the debugger omits the lines instantiating the
variables in question.)

The variables are of class "Lingo", constructor declared in line

    trader-main.ii:13863

The variable instantiations inside main is in lines

    trader-main.ii:46019 through 46021

You see clearly in the resulting assembly code, that these constructor
calls are missing at the beginning of main. There should be three
calls to "Lingo::Lingo" around line

    trader-main.s:310

The corresponding destructor calls are generated in lines

    trader-main.s:396 ff.

Thank you for your time.

Ups, where do I attach the files to this form?
I'll submit it now and try to add them later.

-- 
           Summary: Omits constructor calls for variables not used
                    otherwise.
           Product: gcc
           Version: 3.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: duz at sol-3 dot de
                CC: gcc-bugs at gcc dot gnu dot org
  GCC host triplet: i686-pc-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15229



More information about the Gcc-bugs mailing list