From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20964 invoked by alias); 11 Feb 2015 10:08:43 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 20887 invoked by uid 48); 11 Feb 2015 10:08:40 -0000 From: "dcb314 at hotmail dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/65014] New: ice with error: type mismatch in shift expression Date: Wed, 11 Feb 2015 10:08:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Version: 5.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: dcb314 at hotmail dot com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter attachments.created Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2015-02/txt/msg01138.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D65014 Bug ID: 65014 Summary: ice with error: type mismatch in shift expression Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: dcb314 at hotmail dot com Created attachment 34721 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=3D34721&action=3Dedit C++ source code The attached code does the following with trunk dated 20150211 $ ../results/bin/gcc -c bug185.cc ../kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp:33:49: warning: register of =E2= =80=98T0=E2=80=99 used for multiple global register variables ../kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp:33:18: note: conflicts with =E2= =80=98A0=E2=80=99 ../kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp:34:49: warning: register of =E2= =80=98T1=E2=80=99 used for multiple global register variables ../kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp:34:18: note: conflicts with =E2= =80=98A1=E2=80=99 ../kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp:35:49: warning: register of =E2= =80=98T2=E2=80=99 used for multiple global register variables ../kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp:35:18: note: conflicts with =E2= =80=98A2=E2=80=99 ../kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp: In function =E2=80=98void op_rol_32_T0_im(=E2=80=99: ../kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp:166:6: error: type mismatch in shift expression unsigned int unsigned int int * T0.167 =3D T0.166 r<< &__op_PARAM1; ../kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp:166:6: internal compiler error: verify_gimple failed 0xc05b14 verify_gimple_in_seq(gimple_statement_base*) ../../src/trunk/gcc/tree-cfg.c:4736 0x9f0710 gimplify_body(tree_node*, bool) ../../src/trunk/gcc/gimplify.c:9117 0x9f0e7c gimplify_function_tree(tree_node*) ../../src/trunk/gcc/gimplify.c:9202 0x835f42 cgraph_node::analyze() ../../src/trunk/gcc/cgraphunit.c:631 0x839c5a analyze_functions() >>From gcc-bugs-return-476804-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Wed Feb 11 10:08:27 2015 Return-Path: Delivered-To: listarch-gcc-bugs@gcc.gnu.org Received: (qmail 20649 invoked by alias); 11 Feb 2015 10:08:27 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Delivered-To: mailing list gcc-bugs@gcc.gnu.org Received: (qmail 20489 invoked by uid 55); 11 Feb 2015 10:08:24 -0000 From: "rguenther at suse dot de" To: gcc-bugs@gcc.gnu.org Subject: [Bug lto/61886] [4.8/4.9/5 Regression] LTO breaks fread with _FORTIFY_SOURCE=2 Date: Wed, 11 Feb 2015 10:08:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: lto X-Bugzilla-Version: 4.9.1 X-Bugzilla-Keywords: diagnostic, lto, wrong-code X-Bugzilla-Severity: normal X-Bugzilla-Who: rguenther at suse dot de X-Bugzilla-Status: ASSIGNED X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: hubicka at gcc dot gnu.org X-Bugzilla-Target-Milestone: 4.8.5 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2015-02/txt/msg01137.txt.bz2 Content-length: 1291 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61886 --- Comment #33 from rguenther at suse dot de --- On Wed, 11 Feb 2015, Richard Biener wrote: > On Wed, 11 Feb 2015, hubicka at ucw dot cz wrote: > > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61886 > > > > --- Comment #31 from Jan Hubicka --- > > > So, do we really want to go without this fixed again, for GCC 5? Honza? After > > > all this is an underlying wrong-code issue! (wrong function is picked as > > > prevailing) > > > > Well, I have only two hands and do not see reasonably simple solution. Will > > look into it > > again. How this cause wrong code? > > Hmm, maybe it can't (the "aliases" map to the same symbol). But at least > if I produce another decl with say, attribute(regparm), and that gets > picked even though I didn't call it then it would be wrong-code > (of course that decl is technically invalid as the symbol it refers to > has different calling conventions). Like extern void fooreg (int i) __attribute__((regparm)) __asm__ ("bar"); extern void foo (int i) __asm__ ("bar"); void forward (int i, int reg) { if (reg) fooreg (i); else foo (i); } and use it like LD_PRELOAD=libwithregparm.so ./test --regparm. Poor-mans ifuncs ;)