[Bug c++/12751] [tree-ssa] [eh] wrong code: double destruction

pinskia at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Mon Oct 27 22:45:00 GMT 2003


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

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


pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[tree-ssa] wrong code:      |[tree-ssa] [eh] wrong code:
                   |double destruction          |double destruction


------- Additional Comments From pinskia at gcc dot gnu dot org  2003-10-27 22:42 -------
With printing out "this" (which is what my first attempt was going to do):
extern int printf (__const char *__restrict __format, ...) throw ();

struct Y {
  Y() { printf("Y(%p)::Y\n", this);}
  ~Y() { printf("Y(%p)::~Y\n", this); }
};

int main() {
  Y y1;
  Y y2;
  switch(0) {
    case 1:
      {
        Y y3;
        return 0;
      }
  };
};

You get:
Y(0xbffffd10)::Y
Y(0xbffffd20)::Y
Y(0xbffffd20)::~Y
Y(0xbffffd10)::~Y
Y(0xbffffd10)::~Y

Also note that gimple looks fine (but eh has too many labels/gotos to figure out what is going on).
Note -fno-exceptions also fixes the problem.



More information about the Gcc-bugs mailing list