From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27054 invoked by alias); 8 Sep 2004 09:39:00 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 27025 invoked by uid 48); 8 Sep 2004 09:38:57 -0000 Date: Wed, 08 Sep 2004 09:39:00 -0000 Message-ID: <20040908093857.27024.qmail@sourceware.org> From: "martin at mpa-garching dot mpg dot de" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20040907105846.17345.wanderer@rsu.ru> References: <20040907105846.17345.wanderer@rsu.ru> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug rtl-optimization/17345] [3.5 Regression] internal compiler error: in optimize_mode_switching, at lcm.c:1225 X-Bugzilla-Reason: CC X-SW-Source: 2004-09/txt/msg00638.txt.bz2 List-Id: ------- Additional Comments From martin at mpa-garching dot mpg dot de 2004-09-08 09:38 ------- Here is a shorter testcase (reproduced on i686-pc-linux-gnu with gcc version 3.5.0 20040908 (experimental)): ===begin=== double sqrt(double); template class arr { private: long s; T *d; public: arr() : s(0), d(0) {} ~arr() { delete[] d; } void alloc (long sz); const T &operator[] (long n) const {return d[n];} }; void blah () { arr index; index.alloc(10); for (int i=0; i<10; ++i) { int l = int(sqrt(index[0])); if (l<0) throw 2; } } ===end=== -- What |Removed |Added ---------------------------------------------------------------------------- CC| |martin at mpa-garching dot | |mpg dot de http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17345