[Bug fortran/34640] ICE with c_f_pointer
--- Comment #2 from burnus at gcc dot gnu dot org 2008-01-03 08:19 --- Valgrind: ==3611== Invalid read of size 8 ==3611==at 0x4A4029: gfc_trans_pointer_assignment (trans-expr.c:3756) ==3611==by 0x485AC7: gfc_trans_code (trans.c:1002) ==3611==by 0x49B7B9: gfc_generate_function_code (trans-decl.c:3298) -- burnus at gcc dot gnu dot org changed: What|Removed |Added OtherBugsDependingO||32630 nThis|| Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords||ice-on-valid-code Last reconfirmed|-00-00 00:00:00 |2008-01-03 08:19:08 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34640
[Bug tree-optimization/29484] [4.0/4.1/4.2/4.3 Regression] tree-inline.c bug with local static vars
--- Comment #5 from jakub at gcc dot gnu dot org 2008-01-03 08:34 --- Subject: Bug 29484 Author: jakub Date: Thu Jan 3 08:33:57 2008 New Revision: 131300 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=131300 Log: PR tree-optimization/29484 * tree-inline.c (inline_forbidden_p_2): New function. (inline_forbidden_p): Disallow inlining if some static var has an address of a local LABEL_DECL in its initializer. * doc/extend.texi (Labels as Values): Document &&foo behaviour vs. inlining. * gcc.c-torture/execute/20071220-1.c: New test. * gcc.c-torture/execute/20071220-2.c: New test. Added: trunk/gcc/testsuite/gcc.c-torture/execute/20071220-1.c trunk/gcc/testsuite/gcc.c-torture/execute/20071220-2.c Modified: trunk/gcc/ChangeLog trunk/gcc/doc/extend.texi trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-inline.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29484
[Bug tree-optimization/34591] [4.3 Regression] internal compiler error: in cost_for_stmt, at tree-vect-transform.c:98
--- Comment #5 from fhimpe at telenet dot be 2008-01-03 08:58 --- I can confirm that pulseaudio 0.9.8 sources which caused the crash, compile fine now with the latest gcc 4.3 snapshot. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34591
[Bug middle-end/31309] 6 byte assignment at end of structure reads/writes past end of structure causing SEGV when that memory is not accessable.
--- Comment #12 from rguenth at gcc dot gnu dot org 2008-01-03 09:05 --- It's not marked as regression, so it shouldn't have a release target at all. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Target Milestone|4.1.3 |--- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31309
[Bug ada/34646] Ada runtime missing floating point and error handler initialization on OpenBSD
-- sam at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |sam at gcc dot gnu dot org |dot org | Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2008-01-03 09:09:52 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34646
[Bug ada/34647] Ada runtime includes unsafe calls to mktemp and tmpname on OpenBSD
-- sam at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |sam at gcc dot gnu dot org |dot org | Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2008-01-03 09:09:59 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34647
[Bug fortran/34640] ICE when assigning item of a derived-component to a pointer
--- Comment #3 from burnus at gcc dot gnu dot org 2008-01-03 09:14 --- Reduced test; has nothing to do with BIND(C). I am not 100% sure it is valid. (Actually, glancing at the code, I had said it is invalid). However, it gives no error/warning (or ICE) with other compilers such as NAG f95, g95, openf95, ifort, which implies that it is presumably valid. MODULE test IMPLICIT NONE TYPE :: my_type INTEGER :: value END TYPE CONTAINS SUBROUTINE get_values(values) INTEGER,POINTER :: values(:) TYPE(my_type),POINTER :: d(:) values => d(:)%value END SUBROUTINE END MODULE -- burnus at gcc dot gnu dot org changed: What|Removed |Added OtherBugsDependingO|32630 |32834 nThis|| GCC build triplet|20080102 (experimental) | |[trunk revision 131253] | GCC host triplet|i686-pc-linux-gnu | GCC target triplet|GNU Fortran (GCC) 4.3.0 | Summary|ICE with c_f_pointer|ICE when assigning item of a ||derived-component to a ||pointer http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34640
[Bug rtl-optimization/11832] Optimization of common code in switch statements
--- Comment #6 from aldot at gcc dot gnu dot org 2008-01-03 09:19 --- Dummy sample that has a hoisting opportunity: int bazoo (unsigned int in) { int i = 0; if (in >= 0) ++i; /* hoist */ if (in >= 1) ++i; if (in >= 2) ++i; if (in >= 3) ++i; if (in >= 4) ++i; return i; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11832
[Bug ada/34645] Ada.Text_IO.Get_Immediate does not work on OpenBSD
-- sam at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |sam at gcc dot gnu dot org |dot org | Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2008-01-03 09:09:45 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34645
[Bug ada/34644] Ada runtime build failure on OpenBSD, missing clearenv()
-- sam at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |sam at gcc dot gnu dot org |dot org | Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2008-01-03 09:09:39 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34644
[Bug ada/34645] Ada.Text_IO.Get_Immediate does not work on OpenBSD
--- Comment #2 from sam at gcc dot gnu dot org 2008-01-03 09:37 --- Subject: Bug 34645 Author: sam Date: Thu Jan 3 09:35:04 2008 New Revision: 131301 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=131301 Log: 2008-01-03 Tero Koskinen <[EMAIL PROTECTED]> gcc/ada/ PR ada/34647 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp() on OpenBSD as is done on other BSD systems. PR ada/34645 * sysdep.c (__gnat_ttyname, getc_immediate_nowait, getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate I/O. PR ada/34644 * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing clearenv(). PR ada/34646 * init.c (__gnat_error_handler, __gnat_install_handler, __gnat_init_float): Define for OpenBSD. * initialize.c (__gnat_initialize): Define for OpenBSD. Modified: trunk/gcc/ada/ChangeLog trunk/gcc/ada/adaint.c trunk/gcc/ada/env.c trunk/gcc/ada/init.c trunk/gcc/ada/initialize.c trunk/gcc/ada/sysdep.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34645
[Bug ada/34644] Ada runtime build failure on OpenBSD, missing clearenv()
--- Comment #2 from sam at gcc dot gnu dot org 2008-01-03 09:38 --- Patch committed, thanks. -- sam at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34644
[Bug ada/34644] Ada runtime build failure on OpenBSD, missing clearenv()
--- Comment #3 from sam at gcc dot gnu dot org 2008-01-03 09:38 --- Subject: Bug 34644 Author: sam Date: Thu Jan 3 09:35:04 2008 New Revision: 131301 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=131301 Log: 2008-01-03 Tero Koskinen <[EMAIL PROTECTED]> gcc/ada/ PR ada/34647 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp() on OpenBSD as is done on other BSD systems. PR ada/34645 * sysdep.c (__gnat_ttyname, getc_immediate_nowait, getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate I/O. PR ada/34644 * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing clearenv(). PR ada/34646 * init.c (__gnat_error_handler, __gnat_install_handler, __gnat_init_float): Define for OpenBSD. * initialize.c (__gnat_initialize): Define for OpenBSD. Modified: trunk/gcc/ada/ChangeLog trunk/gcc/ada/adaint.c trunk/gcc/ada/env.c trunk/gcc/ada/init.c trunk/gcc/ada/initialize.c trunk/gcc/ada/sysdep.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34644
[Bug ada/34647] Ada runtime includes unsafe calls to mktemp and tmpname on OpenBSD
--- Comment #2 from sam at gcc dot gnu dot org 2008-01-03 09:38 --- Subject: Bug 34647 Author: sam Date: Thu Jan 3 09:35:04 2008 New Revision: 131301 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=131301 Log: 2008-01-03 Tero Koskinen <[EMAIL PROTECTED]> gcc/ada/ PR ada/34647 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp() on OpenBSD as is done on other BSD systems. PR ada/34645 * sysdep.c (__gnat_ttyname, getc_immediate_nowait, getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate I/O. PR ada/34644 * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing clearenv(). PR ada/34646 * init.c (__gnat_error_handler, __gnat_install_handler, __gnat_init_float): Define for OpenBSD. * initialize.c (__gnat_initialize): Define for OpenBSD. Modified: trunk/gcc/ada/ChangeLog trunk/gcc/ada/adaint.c trunk/gcc/ada/env.c trunk/gcc/ada/init.c trunk/gcc/ada/initialize.c trunk/gcc/ada/sysdep.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34647
[Bug ada/34646] Ada runtime missing floating point and error handler initialization on OpenBSD
--- Comment #2 from sam at gcc dot gnu dot org 2008-01-03 09:38 --- Subject: Bug 34646 Author: sam Date: Thu Jan 3 09:35:04 2008 New Revision: 131301 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=131301 Log: 2008-01-03 Tero Koskinen <[EMAIL PROTECTED]> gcc/ada/ PR ada/34647 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp() on OpenBSD as is done on other BSD systems. PR ada/34645 * sysdep.c (__gnat_ttyname, getc_immediate_nowait, getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate I/O. PR ada/34644 * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing clearenv(). PR ada/34646 * init.c (__gnat_error_handler, __gnat_install_handler, __gnat_init_float): Define for OpenBSD. * initialize.c (__gnat_initialize): Define for OpenBSD. Modified: trunk/gcc/ada/ChangeLog trunk/gcc/ada/adaint.c trunk/gcc/ada/env.c trunk/gcc/ada/init.c trunk/gcc/ada/initialize.c trunk/gcc/ada/sysdep.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34646
[Bug ada/34645] Ada.Text_IO.Get_Immediate does not work on OpenBSD
--- Comment #3 from sam at gcc dot gnu dot org 2008-01-03 09:38 --- Patch committed, thanks. -- sam at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34645
[Bug ada/34646] Ada runtime missing floating point and error handler initialization on OpenBSD
--- Comment #3 from sam at gcc dot gnu dot org 2008-01-03 09:38 --- Patch committed, thanks. -- sam at gcc dot gnu dot org changed: What|Removed |Added Target Milestone|--- |4.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34646
[Bug ada/34647] Ada runtime includes unsafe calls to mktemp and tmpname on OpenBSD
--- Comment #3 from sam at gcc dot gnu dot org 2008-01-03 09:39 --- Patch committed, thanks. -- sam at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34647
[Bug ada/34646] Ada runtime missing floating point and error handler initialization on OpenBSD
--- Comment #4 from sam at gcc dot gnu dot org 2008-01-03 09:39 --- Fixed, closing -- sam at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34646
[Bug tree-optimization/34648] New: [4.3 Regression] ICE in find_or_generate_expression
The following testcase distilled from tinyfugue-5.0 ICEs with internal compiler error: in find_or_generate_expression, at tree-ssa-pre.c:2255 /* { dg-do compile } */ /* { dg-options "-O2 -fexceptions" } */ extern const unsigned short int **bar (void) __attribute__ ((const)); const char *a; int b; char c; char foo (int *x) { char r; c = '\0'; if (!b) { while (((*bar ())[a[*x]] & 0x2000) != 0) (*x)++; if (a[++(*x)] == '-') { (*x)++; if (a[*x] && !((*bar ())[a[*x]] & 0x2000)) return '?'; } if (!a[*x] || ((*bar ())[a[*x]] & 0x2000)) { while (((*bar ())[a[*x]] & 0x2000)) ++(*x); return '\0'; } } r = a[*x]; b = a[*x] && !((*bar ())[a[*x]] & 0x2000); return r; } -- Summary: [4.3 Regression] ICE in find_or_generate_expression Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jakub at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34648
[Bug target/34641] [4.3 Regression] ICE in reload_cse_simplify_operands, at postreload.c:395
--- Comment #4 from rguenth at gcc dot gnu dot org 2008-01-03 09:52 --- Created an attachment (id=14865) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14865&action=view) reduced testcase -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34641
[Bug tree-optimization/34591] [4.3 Regression] internal compiler error: in cost_for_stmt, at tree-vect-transform.c:98
--- Comment #6 from dorit at gcc dot gnu dot org 2008-01-03 10:08 --- (In reply to comment #5) > I can confirm that pulseaudio 0.9.8 sources which caused the crash, compile > fine now with the latest gcc 4.3 snapshot. thanks. (I usually prefer to wait for the person who reported the bug to confirm that it can be closed) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34591
[Bug tree-optimization/34591] [4.3 Regression] internal compiler error: in cost_for_stmt, at tree-vect-transform.c:98
--- Comment #7 from dorit at gcc dot gnu dot org 2008-01-03 10:17 --- fixed -- dorit at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34591
[Bug c++/34619] [4.3 regression] ICE with "-fmudflap" and templates
--- Comment #3 from jakub at gcc dot gnu dot org 2008-01-03 10:29 --- Subject: Bug 34619 Author: jakub Date: Thu Jan 3 10:28:30 2008 New Revision: 131302 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=131302 Log: PR c++/34619 * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL before returning. * testsuite/libmudflap.c++/pass61-frag.cxx: New test. Added: trunk/libmudflap/testsuite/libmudflap.c++/pass61-frag.cxx Modified: trunk/gcc/ChangeLog trunk/gcc/cgraphunit.c trunk/libmudflap/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34619
[Bug c++/34619] [4.3 regression] ICE with "-fmudflap" and templates
--- Comment #4 from jakub at gcc dot gnu dot org 2008-01-03 10:34 --- Fixed. -- jakub at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34619
[Bug tree-optimization/34648] [4.3 Regression] ICE in find_or_generate_expression
--- Comment #1 from rguenth at gcc dot gnu dot org 2008-01-03 11:02 --- Confirmed. We only have SSA_NAMEs in the expression set, which we do not PRE. Danny, is this supposed not to happen somehow? -- rguenth at gcc dot gnu dot org changed: What|Removed |Added CC||dberlin at gcc dot gnu dot ||org, rguenth at gcc dot gnu ||dot org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2008-01-03 11:02:13 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34648
[Bug tree-optimization/34648] [4.3 Regression] ICE in find_or_generate_expression
--- Comment #2 from rguenth at gcc dot gnu dot org 2008-01-03 11:05 --- We are creating *VH.97 by pieces but fail to create the 'piece' for VH.97 because we don't consider a SSA_NAME ok for it. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34648
[Bug tree-optimization/34649] New: redundant if expression in find_conditional_asserts
/*gcc/tree-vrp.c */ 3603 static bool 3604 find_conditional_asserts (basic_block bb, tree last) 3605 { ... if (e->dest == bb) 3623 continue; ... 3652 if (e->dest != bb) 3653 need_assert |= find_assert_locations (e->dest); -- Summary: redundant if expression in find_conditional_asserts Product: gcc Version: tree-ssa Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: zhouyi04 at ios dot cn GCC build triplet: i486-pc-linux-gnu GCC host triplet: i486-pc-linux-gnu GCC target triplet: i486-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34649
[Bug fortran/34557] [4.3 regression] Rejects valid: EQUIVALENCE of character substrings
--- Comment #2 from burnus at gcc dot gnu dot org 2008-01-03 12:53 --- > Confirmed. This is a regression vs. 4.2: I think it is not a regression with regards to 4.1 or 4.2. Here, it gives no ICE/error/warning for .f (fixed-form source) but it does so for .f90 (free-form source). With free-form source, it works if one changes EQUIVALENCE (A (2,1) (1:1), B (1) (2:3), C (3:5)) into EQUIVALENCE (A (2,1)(1:1), B (1)(2:3), C(3:5)) Which explains why fixed form works and indicates what we do not eat the whitespaces when matching a substring. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34557
[Bug middle-end/31631] Folding of A & (1 << B) pessimizes FRE
--- Comment #1 from rguenth at gcc dot gnu dot org 2008-01-03 15:06 --- Confirmed. LIM and DOM together remove the redundancy later. If the loop enclosing the redundancy is removed this doesn't happen. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2008-01-03 15:06:46 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31631
[Bug tree-optimization/34648] [4.3 Regression] ICE in find_or_generate_expression
-- pinskia at gcc dot gnu dot org changed: What|Removed |Added CC||pinskia at gcc dot gnu dot ||org Keywords||ice-on-valid-code Target Milestone|--- |4.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34648
[Bug fortran/34640] ICE when assigning item of a derived-component to a pointer
--- Comment #4 from pault at gcc dot gnu dot org 2008-01-03 15:24 --- (In reply to comment #3) > Reduced test; has nothing to do with BIND(C). I am not 100% sure it is valid. > (Actually, glancing at the code, I had said it is invalid). However, it gives > no error/warning (or ICE) with other compilers such as NAG f95, g95, openf95, > ifort, which implies that it is presumably valid. It is valid and runs OK, as long as 'values' is not a dummy. This is because gfc_get_symbol_decl does not set GFC_DECL_SPAN for pointers I forgot about it, apparently. I'm taking a look at how it might be done. Paul -- pault at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |pault at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2008-01-03 08:19:08 |2008-01-03 15:24:11 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34640
[Bug gcov-profile/34610] [4.3 regression] ICE with "-fprofile-arcs -fopenmp"
--- Comment #3 from jakub at gcc dot gnu dot org 2008-01-03 15:01 --- Additionally, pass_tree_profile is executed multiple times with -fopenmp, e.g. on void foo (int i) { #pragma omp parallel if (i > 2) bar (i + 1); else if (i < -2) bar (i / 2); else bar (i * 2); } (which compiles) profile counters are added before omp expansion and once again for the child function. Is there a reason why pass_tree_profile can't run after pass_cleanup_cfg/pass_init_datastructures/pass_expand_omp? If it can't be moved, could it at least skip all edges in omp parallel regions? Or if it is not thread safe, just disable pass_tree_profile if flag_openmp... -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34610
[Bug tree-optimization/26400] Missed jump threading on the tree level
--- Comment #3 from rguenth at gcc dot gnu dot org 2008-01-03 15:17 --- forwprop with the help of fold now simplifies the second comparison to if (b_2(D) == c_3(D)) and VRP gets rid of the function body and optimizes it to return zero. We have a similar testcase excercising the forwprop transformation in gcc.dg/tree-ssa/forwprop-3.c. This was fixed by http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129256 -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED Target Milestone|--- |4.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26400
[Bug middle-end/31309] 6 byte assignment at end of structure reads/writes past end of structure causing SEGV when that memory is not accessable.
--- Comment #13 from peeterj at ca dot ibm dot com 2008-01-03 15:26 --- It's a regression relative to gcc version 3.3.3. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31309
[Bug c++/34650] New: 'this' pointer goes null on x86_64-linux-gnu
-The error: A segfault, according to "insight" at one point the 'this' pointer refers to 0x0. -What should it do: Definately not segfault, instead, after writing: No such edge as (NOSUCH):true It should write: (according to supplied source) There is an edge as(EXISTS):true But instead, it segfaults. -The reason why I think this is a bug: Compiled and executed on multiple 32 bit platforms, executes without any problems. -- Summary: 'this' pointer goes null on x86_64-linux-gnu Product: gcc Version: 4.2.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: nam3l3ss dot bugreportaccount at gmail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34650
[Bug middle-end/25878] Excessive memory and compile-time with std::map init sequence
--- Comment #11 from rguenth at gcc dot gnu dot org 2008-01-03 15:35 --- Created an attachment (id=14866) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14866&action=view) revised testcase The problem persists with 4.2 if you remove the anonymous namespace around the initializer function. With 4.3 the testcase no longer builds. Thus, a new testcase which is not preprocessed attached, observations still apply. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Attachment #10688|0 |1 is obsolete|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25878
[Bug c++/34650] 'this' pointer goes null on x86_64-linux-gnu
--- Comment #1 from nam3l3ss dot bugreportaccount at gmail dot com 2008-01-03 15:37 --- Created an attachment (id=14867) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14867&action=view) Full, preprocessed source code. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34650
[Bug c/27214] The C frontend introduces undefined pointer overflow
--- Comment #10 from rguenth at gcc dot gnu dot org 2008-01-03 15:54 --- "Fixed" only in the sense that we now create unit size align 8 symtab 0 alias set -1 canonical type 0x2b6e7ed8c300 precision 8 min max pointer_to_this > unsigned DI size unit size align 64 symtab 0 alias set -1 canonical type 0x2b6e7eda3000> arg 0 used unsigned DI file t.i line 1 col 17 size unit size align 64 context initial arg-type > arg 1 constant invariant public overflow -4>> but I consider the 'overflow' bit set on the -4 a bug. Also POINTER_PLUS_EXPR does not in any way change the issues we raised with undefinedness of overflow in pointer + offset expressions. Now, Joseph says > This bug is about the interpretation of GCC's internal representation, not > that of the standard. where yes, we seem to agreed to having an unsigned offset argument to POINTER_PLUS_EXPR which we need to interpret as a signed quantity. And in a different place we sort-of agreed to limit the maximum object size gcc handles to half of SIZE_T_MAX. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27214
[Bug fortran/34557] [4.3 regression] Rejects valid: EQUIVALENCE of character substrings
--- Comment #3 from burnus at gcc dot gnu dot org 2008-01-03 15:38 --- Patch. Index: gcc/fortran/primary.c === --- gcc/fortran/primary.c (Revision 131302) +++ gcc/fortran/primary.c (Arbeitskopie) @@ -1679,6 +1679,7 @@ match_varspec (gfc_expr *primary, int eq tail = NULL; + gfc_gobble_whitespace (); if ((equiv_flag && gfc_peek_char () == '(') || sym->attr.dimension) { /* In EQUIVALENCE, we don't know yet whether we are seeing @@ -1692,6 +1693,7 @@ match_varspec (gfc_expr *primary, int eq if (m != MATCH_YES) return m; + gfc_gobble_whitespace (); if (equiv_flag && gfc_peek_char () == '(') { tail = extend_ref (primary, tail); -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34557
[Bug middle-end/25878] Excessive memory and compile-time with std::map init sequence
--- Comment #12 from rguenth at gcc dot gnu dot org 2008-01-03 15:44 --- On a second look, 4.3 behaves much better than 4.2 for this testcase, so I consider it fixed. 3.3-hammer: 13s 321MB 4.1.3: 29s 588MB 4.2.2: 27s 440MB 4.3.0: 20s 188MB -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED Target Milestone|--- |4.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25878
[Bug c++/34052] [4.3 regression] Trouble with variadic templates as template-template parameter
--- Comment #3 from rguenth at gcc dot gnu dot org 2008-01-03 16:01 --- I agree, these sort of bugs should be P4 as a user will only see t.C:1: error: ISO C++ does not include variadic templates t.C:3: confused by earlier errors, bailing out -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34052
[Bug tree-optimization/34649] redundant if expression in find_conditional_asserts
--- Comment #1 from ubizjak at gmail dot com 2008-01-03 16:10 --- (In reply to comment #0) > /*gcc/tree-vrp.c */ > > 3603 static bool > 3604 find_conditional_asserts (basic_block bb, tree last) > 3605 { > ... >if (e->dest == bb) > 3623 continue; > ... > 3652 if (e->dest != bb) > 3653 need_assert |= find_assert_locations (e->dest); Please post a patch (including a ChangeLog entry) to [EMAIL PROTECTED] mailing list. I'll regression test the patch for you, if you are not (yet) familiar with testing procedure. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34649
[Bug tree-optimization/30132] [4.1/4.2/4.3 Regression] ICE in find_lattice_value, at tree-complex.c:133
--- Comment #15 from pinskia at gcc dot gnu dot org 2008-01-03 16:23 --- This was caused by the patch which fixed PR 20280 and the 2nd iteration of the patch was rejected so unassigning from me. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added CC||aoliva at gcc dot gnu dot ||org AssignedTo|pinskia at gcc dot gnu dot |unassigned at gcc dot gnu |org |dot org Status|ASSIGNED|NEW http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30132
[Bug tree-optimization/34029] [4.3 Regression] internal compiler error: verify_stmts failed
--- Comment #6 from rguenth at gcc dot gnu dot org 2008-01-03 16:23 --- I will test the following bool is_gimple_min_invariant (const_tree t) { switch (TREE_CODE (t)) { case ADDR_EXPR: /* We do not allow arbitrary invariant expressions as gimple such as &a[1 - &b], but only allow constant array indices inside the otherwise TREE_INVARIANT expression. */ if (!TREE_INVARIANT (t)) return false; t = TREE_OPERAND (t, 0); while (handled_component_p (t)) { if ((TREE_CODE (t) == ARRAY_REF || TREE_CODE (t) == ARRAY_RANGE_REF) && TREE_CODE (TREE_OPERAND (t, 1)) != INTEGER_CST) return false; t = TREE_OPERAND (t, 0); } return true; -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34029
[Bug tree-optimization/34029] [4.3 Regression] internal compiler error: verify_stmts failed
--- Comment #7 from pinskia at gcc dot gnu dot org 2008-01-03 16:23 --- I don't have time to work on this any more. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|pinskia at gcc dot gnu dot |unassigned at gcc dot gnu |org |dot org Status|ASSIGNED|NEW http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34029
[Bug c++/34650] 'this' pointer goes null on x86_64-linux-gnu
--- Comment #2 from rguenth at gcc dot gnu dot org 2008-01-03 16:48 --- This is obviously an error in your program or LGraph as you can see #2 0x00402cb3 in std::find<__gnu_cxx::__normal_iterator const*, std::vector, std::allocator > > >, int> (__first={_M_current = 0x0}, __last= {_M_current = 0x7fffef4c1201}, [EMAIL PROTECTED]) at t.ii:18268 18268 std::__iterator_category(__first)); (gdb) #3 0x00403442 in LGraph::has ( this=0x7fffef4c1230, n1=1, n2=3) at t.ii:14506 14506 if(one->second.end()!=find(one->second.begin(),one->second.end(),n2)){ (gdb) #4 0x004073f3 in LGraph::operator() ( this=0x7fffef4c1230, node1=1, node2=3) at t.ii:14543 14543 if(has(node1,node2)){ (gdb) #5 0x0040186c in main (argv=1, args=0x7fffef4c1448) at t.ii:32882 32882std::cout << "There is an edge as(EXISTS):" << (( "EXISTS" == cdg(1,3) ) ? "true" : "false")
[Bug tree-optimization/30132] [4.1/4.2/4.3 Regression] ICE in find_lattice_value, at tree-complex.c:133
--- Comment #16 from pinskia at gcc dot gnu dot org 2008-01-03 16:26 --- 4.0.0 really did not work either, it just did not cause a crash as the checks for invalid gimple was not there. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Known to work|4.0.4 |3.4.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30132
[Bug fortran/34387] FAIL: gfortran.dg/optional_dim_2.f90: FE vs library argument missmatch
--- Comment #8 from burnus at gcc dot gnu dot org 2008-01-03 16:43 --- (In reply to comment #6) > The problem is that cshift0's target-independent function type says that the > SHIFT and DIM arguments are integers, rather than pointers to integers. Indeed. Thanks Richard! The dump has: integer(kind=8) D.879; [...] D.879 = (integer(kind=8)) dimmy; _gfortran_cshift0_8 (&parm.0, &parm.2, &C.877, D.879); while the libgfortran has: void cshift0_8 (gfc_array_char *ret, const gfc_array_char *array, const GFC_INTEGER_8 *pshift, const GFC_INTEGER_8 *pdim) The problem seems to be in trans-expr.c's gfc_conv_missing_dummy or (less likely) in the way it is called in trans-intrinsic.c's gfc_conv_intrinsic_function_args. -- burnus at gcc dot gnu dot org changed: What|Removed |Added CC||burnus at gcc dot gnu dot ||org GCC build triplet|hppa-unknown-linux-gnu | GCC host triplet|hppa-unknown-linux-gnu | GCC target triplet|hppa-unknown-linux-gnu | Keywords||wrong-code Last reconfirmed|2008-01-01 23:07:28 |2008-01-03 16:43:32 date|| Summary|FAIL: |FAIL: |gfortran.dg/optional_dim_2.f|gfortran.dg/optional_dim_2.f |90 |90: FE vs library argument ||missmatch http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34387
[Bug middle-end/31309] 6 byte assignment at end of structure reads/writes past end of structure causing SEGV when that memory is not accessable.
--- Comment #14 from rguenth at gcc dot gnu dot org 2008-01-03 17:06 --- With optimization we now avoid the error, but unoptimized code is still wrong: _Z10InitializeP16SQLU_DICT_INFO_0: .LFB3: pushq %rbp .LCFI2: movq%rsp, %rbp .LCFI3: pushq %rbx .LCFI4: subq$8, %rsp .LCFI5: movq%rdi, -16(%rbp) movq-16(%rbp), %rax movb$0, 8(%rax) movq-16(%rbp), %rax movb$0, 9(%rax) movq-16(%rbp), %rbx call_Z17INIT_6_BYTES_ZEROv movzbl %al, %ecx movzbl 10(%rbx), %edx andl$0, %edx orl %ecx, %edx movb%dl, 10(%rbx) movzbl %ah, %edx mov %edx, %ecx movq10(%rbx), %rdx ^ here movb%cl, %dh movq%rdx, 10(%rbx) ^ and here movq%rax, %rdx shrq$16, %rdx movzbq %dl,%rcx movzbl 12(%rbx), %edx andl$0, %edx orl %ecx, %edx movb%dl, 12(%rbx) movq%rax, %rdx shrq$24, %rdx movzbq %dl,%rcx movzbl 13(%rbx), %edx andl$0, %edx orl %ecx, %edx movb%dl, 13(%rbx) movq%rax, %rdx shrq$32, %rdx movzbq %dl,%rcx movzbl 14(%rbx), %edx andl$0, %edx orl %ecx, %edx movb%dl, 14(%rbx) shrq$40, %rax movzbq %al,%rdx movzbl 15(%rbx), %eax andl$0, %eax orl %edx, %eax movb%al, 15(%rbx) addq$8, %rsp popq%rbx leave ret without inlining we do optimize this to _Z10InitializeP16SQLU_DICT_INFO_0: .LFB3: pushq %rbx .LCFI0: movq%rdi, %rbx movb$0, 8(%rdi) movb$0, 9(%rdi) call_Z17INIT_6_BYTES_ZEROv movb%al, 10(%rbx) movzbl %ah, %edx movb%dl, 11(%rbx) movq%rax, %rdx shrq$16, %rdx movb%dl, 12(%rbx) movq%rax, %rdx shrq$24, %rdx movb%dl, 13(%rbx) movq%rax, %rdx shrq$32, %rdx movb%dl, 14(%rbx) shrq$40, %rax movb%al, 15(%rbx) popq%rbx ret which doesn't have the 8 byte move any more. 4.2, even when optimizing retains the 8 byte move. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Last reconfirmed|2007-03-22 10:03:14 |2008-01-03 17:06:20 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31309
[Bug middle-end/31309] 6 byte assignment at end of structure reads/writes past end of structure causing SEGV when that memory is not accessable.
--- Comment #15 from rguenth at gcc dot gnu dot org 2008-01-03 17:10 --- Ian, Eric? Any advice on the bitfield stuff as of comments 7/9? -- rguenth at gcc dot gnu dot org changed: What|Removed |Added CC||ian at gcc dot gnu dot org, ||ebotcazou at gcc dot gnu dot ||org Known to work||3.3.3 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31309
[Bug target/34651] New: [4.3 Regression] ICE in set_value_range, at tree-vrp.c:321
I get the following ICE with trunk from 20071212 on hppa (but not on x86_64): [EMAIL PROTECTED]:~$ /usr/lib/gcc-snapshot/bin/g++ -c -Wno-multichar -O2 libgtkol-cmenu.ii cmenu.cpp: In member function 'virtual void CMenuItem::Serialize(CXMLElementNode*&, int)': cmenu.cpp:551: internal compiler error: in set_value_range, at tree-vrp.c:321 Please submit a full bug report, with preprocessed source if appropriate. See for instructions. [EMAIL PROTECTED]:~$ /usr/lib/gcc-snapshot/bin/g++ -c -Wno-multichar -O1 libgtkol-cmenu.ii [EMAIL PROTECTED]:~$ -- Summary: [4.3 Regression] ICE in set_value_range, at tree- vrp.c:321 Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tbm at cyrius dot com GCC target triplet: hppa-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34651
[Bug target/34651] [4.3 Regression] ICE in set_value_range, at tree-vrp.c:321
--- Comment #1 from tbm at cyrius dot com 2008-01-03 17:18 --- Created an attachment (id=14868) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14868&action=view) preprocessed source -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34651
[Bug c++/34052] [4.3 regression] Trouble with variadic templates as template-template parameter
--- Comment #4 from mmitchel at gcc dot gnu dot org 2008-01-03 17:02 --- A user that has turned on C++0x will of course not see the message that ISO C++ doesn't allow variadic templates. Our NEWS file is going to say that we have a great new feature: variadic templates. Given that, it's a feature just like any other. I'd like to see new features held to a high quality standard. I see the argument that this isn't a regression, but if I'm a user, and I read about the new feature, and I try it out, and things break, that seems bad. So, I'd prefer to leave it P2, but I agree that it's sort of a "low P2". -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34052
[Bug tree-optimization/34651] [4.3 Regression] ICE in set_value_range, at tree-vrp.c:321
-- pinskia at gcc dot gnu dot org changed: What|Removed |Added CC||pinskia at gcc dot gnu dot ||org Component|target |tree-optimization Keywords||ice-on-valid-code Target Milestone|--- |4.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34651
[Bug c++/28989] [4.0/4.1/4.2 Regression] post-increment of bool variable accepted as lvalue
--- Comment #13 from pinskia at gcc dot gnu dot org 2008-01-03 17:40 --- I am not going to patch 4.2 and before for this, I will let someone else do it. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|pinskia at gcc dot gnu dot |unassigned at gcc dot gnu |org |dot org Status|ASSIGNED|NEW http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28989
[Bug target/33236] -mminimal-toc register should be psedu-register
--- Comment #3 from pinskia at gcc dot gnu dot org 2008-01-03 17:41 --- This is harder to do than I expected, the minimal toc register is used while doing reload and using a psedu-register there causes reload to use a memory location. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|pinskia at gcc dot gnu dot |unassigned at gcc dot gnu |org |dot org Status|ASSIGNED|NEW Summary|-minimal-toc register should|-mminimal-toc register |be psedu-register |should be psedu-register http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33236
[Bug gcov-profile/34609] [4.3 regression] ICE with "-ftest-coverage" and references
--- Comment #1 from jakub at gcc dot gnu dot org 2008-01-03 17:42 --- Created an attachment (id=14869) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14869&action=view) gcc43-pr34609.patch I'll be testing attached patch. This works without -ftest-coverage, as function is cleaned up before inlining it again. -- jakub at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jakub at gcc dot gnu dot org |dot org | Status|UNCONFIRMED |ASSIGNED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34609
[Bug fortran/22210] gfc_conv_array_initializer weirdness
--- Comment #12 from pinskia at gcc dot gnu dot org 2008-01-03 17:42 --- (In reply to comment #11) > So, did you have time? :-) Maybe this weekend :). I guess I have been really behind on my FSF bugs. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22210
[Bug objc/24777] objc needs to use normal builtins for functions it declares
--- Comment #3 from pinskia at gcc dot gnu dot org 2008-01-03 17:43 --- Not going to happen any time soon so unassigning. CCing the objective-C maintainer. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added CC||mrs at apple dot com AssignedTo|pinskia at gcc dot gnu dot |unassigned at gcc dot gnu |org |dot org Status|ASSIGNED|NEW http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24777
[Bug c++/30303] [4.2 regression] ICE with invalid constructor definition
--- Comment #14 from pinskia at gcc dot gnu dot org 2008-01-03 17:44 --- I am not going to be able to get this done for 4.2.x so unassigning. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|pinskia at gcc dot gnu dot |unassigned at gcc dot gnu |org |dot org Status|ASSIGNED|NEW http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30303
[Bug c++/22154] [DR 382] qualified names should allow typename keyword in front of it (even in non-templates)
--- Comment #9 from pinskia at gcc dot gnu dot org 2008-01-03 17:46 --- I do have a correct patch which I will submit when stage1 comes around. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added OtherBugsDependingO||33702 nThis|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22154
[Bug middle-end/16660] attribute((aligned)) doesn't work for variables on the stack for greater than required alignement
--- Comment #13 from pinskia at gcc dot gnu dot org 2008-01-03 17:47 --- I am getting tried of pinging this patch, I guess if nobody wants to comment that is up to them. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|pinskia at gcc dot gnu dot |unassigned at gcc dot gnu |org |dot org Status|ASSIGNED|NEW http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16660
[Bug c/31128] __builtin_stack_restore/__builtin_stack_save should not be exposed to the user
--- Comment #13 from pinskia at gcc dot gnu dot org 2008-01-03 17:48 --- I am not going to work on this anymore. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|pinskia at gcc dot gnu dot |unassigned at gcc dot gnu |org |dot org Status|ASSIGNED|NEW http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31128
[Bug fortran/34640] ICE when assigning item of a derived-component to a pointer
--- Comment #5 from pault at gcc dot gnu dot org 2008-01-03 17:58 --- I'm taking a look at how it might be done. This allows compilation to proceed: Index: gcc/fortran/trans-decl.c === *** gcc/fortran/trans-decl.c(revision 131237) --- gcc/fortran/trans-decl.c(working copy) *** gfc_get_symbol_decl (gfc_symbol * sym) *** 951,956 --- 951,970 sym->backend_decl = decl; } + if (sym->attr.subref_array_pointer) + { + tree span; + GFC_DECL_SUBREF_ARRAY_P (sym->backend_decl) = 1; + span = build_decl (VAR_DECL, create_tmp_var_name ("span"), +gfc_array_index_type); + gfc_allocate_lang_decl (sym->backend_decl); + gfc_finish_var_decl (span, sym); + TREE_STATIC (span) = 1; + DECL_INITIAL (span) = build_int_cst (NULL_TREE, 0); + + GFC_DECL_SPAN (sym->backend_decl) = span; + } + TREE_USED (sym->backend_decl) = 1; if (sym->attr.assign && GFC_DECL_ASSIGN (sym->backend_decl) == 0) { but the span is not passed back to the actual argument, as this demonstrates: MODULE test IMPLICIT NONE TYPE :: my_type INTEGER :: value = 99 INTEGER :: spacer = 199 END TYPE CONTAINS SUBROUTINE get_values(values, d) INTEGER,POINTER :: values(:) TYPE(my_type),POINTER :: d(:) values => d(:)%value print *, "in get_values ", values END SUBROUTINE END MODULE use test TYPE(my_type),POINTER :: d(:) INTEGER,POINTER :: values(:) allocate (d(2)) call get_values (values, d) print *, "in MAIN", values deallocate (d) end I'll have to figure out how this can be done. No doubt 'span' will have to be added to the parent scope and the assignment performed on function entry and return. Hmmm!! Better still would be to copy in and copy out. Back to PR34431 and friends - I'll do this next. Paul -- pault at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|WAITING http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34640
[Bug preprocessor/34602] [4.1/4.2 regression] Internal error with invalid #line directive
--- Comment #2 from tromey at gcc dot gnu dot org 2008-01-03 17:59 --- Fixed on trunk. -- tromey at gcc dot gnu dot org changed: What|Removed |Added Known to work||4.3.0 Summary|[4.1/4.2/4.3 regression]|[4.1/4.2 regression] |Internal error with invalid |Internal error with invalid |#line directive |#line directive http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34602
[Bug preprocessor/34602] [4.1/4.2 regression] Internal error with invalid #line directive
--- Comment #3 from tromey at gcc dot gnu dot org 2008-01-03 17:59 --- Subject: Bug 34602 Author: tromey Date: Thu Jan 3 17:58:26 2008 New Revision: 131304 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=131304 Log: libcpp PR preprocessor/34602. * directives.c (do_line): Don't try to spell EOF token. (do_linemarker): Add comment. gcc/testsuite PR preprocessor/34602: * gcc.dg/cpp/pr34602.c: New file. Added: trunk/gcc/testsuite/gcc.dg/cpp/pr34602.c Modified: trunk/gcc/testsuite/ChangeLog trunk/libcpp/ChangeLog trunk/libcpp/directives.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34602
[Bug tree-optimization/34043] Missed optimization causing extra loads and stores when using x86_64 builtin function together with aggregate types.
--- Comment #9 from rguenth at gcc dot gnu dot org 2008-01-03 17:29 --- Confirmed. While I have a patch to make VN handle the case of type-punning constants, making it to generate VIEW_CONVERT_EXPRs instead runs into the principle barrier that FRE does not do insertion. The patch looks like Index: tree-ssa-sccvn.c === *** tree-ssa-sccvn.c(revision 131302) --- tree-ssa-sccvn.c(working copy) *** visit_reference_op_store (tree lhs, tree *** 1231,1236 --- 1247,1292 } vn_reference_insert (lhs, op, vdefs); + + /* For unions and constant stores we can register stores to +the other union members as well, allowing propagation. +Do this for two-element unions only, as they are likely +used for type-punning which we want to optimize. */ + if (TREE_CODE (lhs) == COMPONENT_REF + && TREE_CODE (TREE_TYPE (TREE_OPERAND (lhs, 0))) == UNION_TYPE + /* We may be able to handle non-constant type-punnings as well. */ + && (TREE_CODE (op) == INTEGER_CST + || TREE_CODE (op) == REAL_CST + || TREE_CODE (op) == VECTOR_CST + || TREE_CODE (op) == COMPLEX_CST) + && fields_length (TREE_TYPE (TREE_OPERAND (lhs, 0))) == 2) + { + tree field = TYPE_FIELDS (TREE_TYPE (TREE_OPERAND (lhs, 0))); + tree val; + + if (field == TREE_OPERAND (lhs, 1)) + field = TREE_CHAIN (field); + + /* Do not generate VIEW_CONVERT_EXPRs, but only handle the +cases we can fold it away. */ + val = fold_unary (VIEW_CONVERT_EXPR, TREE_TYPE (field), op); + if (val) + { + if (dump_file) + { + fprintf (dump_file, "Value numbering store to alternate " + "union field "); + print_generic_expr (dump_file, field, 0); + fprintf (dump_file, " with type-punned value "); + print_generic_expr (dump_file, val, 0); + fprintf (dump_file, "\n"); + } + vn_reference_insert (build3 (COMPONENT_REF, TREE_TYPE (field), + TREE_OPERAND (lhs, 0), field, + NULL_TREE), + val, vdefs); + } + } } else { and it handles the testcase in comment #6 correctly. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added CC||rguenth at gcc dot gnu dot ||org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2008-01-03 17:29:45 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34043
[Bug target/34628] [4.2/4.3 Regression] problems with inlining on ARM
--- Comment #4 from tbm at cyrius dot com 2008-01-03 18:03 --- Bugzilla wraps the testcase in a way that some commented out is no longer commented out and so you don't see the segfault. Here's the testcase again with proper wrapping: typedef unsigned short u16; typedef unsigned char u8; static void do_segfault(u8 in_buf[], const u8 out_buf[], const int len) { int i; for (i = 0; i < len; i++) { //SSVAL(in_buf, 2*i, SVAL(out_buf,2*i)); // more or less just a // byte-wise memcpy asm("nop\n"); in_buf[2*i] = ( out_buf[2*i] | out_buf[(2*i)+1]<<8 ) & 0xFF; // in_buf[2*i] = out_buf[2*i]; asm("nop\n"); in_buf[(2*i)+1] = ( out_buf[2*i] | out_buf[(2*i)+1]<<8 ) >> 8; // in_buf[(2*i)+1] = out_buf[(2*i)+1]; asm("nop\n"); } } int main(int argc, char *argv[]) { u8 outbuf[32] = "buffer "; u8 inbuf[32] = "\f"; asm("nop\n"); do_segfault(inbuf, outbuf, 12); asm("nop\n"); return 0; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34628
[Bug target/34628] [4.2/4.3 Regression] problems with inlining on ARM
--- Comment #5 from tbm at cyrius dot com 2008-01-03 18:07 --- Created an attachment (id=14870) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14870&action=view) optimized tree dump (4.2) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34628
[Bug target/34628] [4.2/4.3 Regression] problems with inlining on ARM
-- tbm at cyrius dot com changed: What|Removed |Added Status|WAITING |UNCONFIRMED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34628
[Bug c/34457] [4.3 regression] ICE with VLA and -combine
--- Comment #3 from tromey at gcc dot gnu dot org 2008-01-03 18:08 --- Testing my patch on mainline. -- tromey at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |tromey at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2007-12-28 01:12:52 |2008-01-03 18:08:00 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34457
[Bug c++/34573] [4.3 Regression] ICE with nested class in template
--- Comment #5 from jakub at gcc dot gnu dot org 2008-01-03 18:09 --- Related to PR19407 I guess. CCing Jason. -- jakub at gcc dot gnu dot org changed: What|Removed |Added CC||jason at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34573
[Bug tree-optimization/34648] [4.3 Regression] ICE in find_or_generate_expression
--- Comment #3 from dberlin at gcc dot gnu dot org 2008-01-03 18:16 --- It is never okay to base an existing expression on an SSA_NAME alone, which is why we avoid it. If the SSA_NAME was available, it would have been in the AVAIL set and been found by the "find" part of find_or_generate_expression. :) (In reply to comment #2) > We are creating *VH.97 by pieces but fail to create the 'piece' for VH.97 > because > we don't consider a SSA_NAME ok for it. > -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34648
[Bug target/34628] [4.2/4.3 Regression] problems with inlining on ARM
--- Comment #6 from tbm at cyrius dot com 2008-01-03 18:22 --- (In reply to comment #2) > I see different IL for 4.2 compared to 4.3, is the bug present in 4.3? Can > you > attach the optimized tree dump? I also get a segfault with the testcase and 4.3.0 20070916. The original program (samba) compiled with 4.2 shows bad code (smbclient returning 'string length'+1 of the first character of the share name rather than the share name) whereas it segfaults when compiled with 4.3. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34628
[Bug target/34652] arm-only miscompilation of alloca code
--- Comment #1 from tbm at cyrius dot com 2008-01-03 18:27 --- This happens with 4.1, 4.2 and trunk on old ABI. Apparently it doesn't happen with EABI. -- tbm at cyrius dot com changed: What|Removed |Added CC||debian-gcc at lists dot ||debian dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34652
[Bug target/34652] New: arm-only miscompilation of alloca code
[ Forwarded from http://bugs.debian.org/458745 ] Camm Maguire <[EMAIL PROTECTED]> arm-only miscompilation of alloca code i386: cc -g /tmp/foo.c -o /tmp/foo /tmp/foo 0xbf867bd0 0x1 0x2 0x3 arm: cc -g foo.c -o foo ./foo 0x18beed5d Segmentation fault Testcase: #include #include #include #define object void * int VFUN_NARGS; void *alloca_val; struct cons { object c_cdr; object c_car; }; #define Cnil 0 static void foo(object first,...) { va_list ap; int narg = VFUN_NARGS; struct cons *V1128; object V1129; va_start(ap,first); V1129 = !narg? Cnil : (alloca_val=alloca((narg)*sizeof(struct cons)+sizeof(object)), ({object _b=(void *)alloca_val;if (((unsigned long)_b)&sizeof(_b)) _b++; {struct cons *_p=(void *)_b; {struct cons *_e=_p+(narg-1); for (;_p<_e;_p++) {_p->c_car=({object _t=first;first=va_arg(ap,object);_t;});_p->c_cdr=(object)(_p+1);}} _p->c_car=first;_p->c_cdr=Cnil;}_b;})); va_end(ap); V1128= V1129; for (;V1128!=Cnil;V1128=V1128->c_cdr) printf("%p\n",V1128->c_car); } int main(int argc,char * argv[]) { VFUN_NARGS=4; foo(&argc,1,2,3); return 0; } -- Summary: arm-only miscompilation of alloca code Product: gcc Version: 4.2.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tbm at cyrius dot com GCC target triplet: arm*-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34652
[Bug target/17943] building gcc head (20041011) for arc-elf32 results in a lot of warnings
--- Comment #4 from saurabh dot verma at celunite dot com 2008-01-03 18:36 --- Patch submitted. Pending approval/commit. http://gcc.gnu.org/ml/gcc-patches/2008-01/msg00046.html -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17943
[Bug target/34653] New: unnecessary REX prefix
for this code: extern unsigned long table[]; unsigned long foo(unsigned char *p) { unsigned long long tag = *p; return table[tag >> 4]; } gcc generates: : 0: 0f b6 07movzbl (%rdi),%eax 3: 48 c1 e8 04 shr$0x4,%rax 7: 48 8b 04 c5 00 00 00mov0x0(,%rax,8),%rax e: 00 b: R_X86_64_32S table f: c3 retq that "shr $0x4,%rax" would be better as "shr $0x4,%eax" because it produces the same result (due to dominating movzbl) and it's one byte shorter which favours both space and the narrow decoder on the core2. thanks -dean /home/odo/gcc/bin/gcc -v Using built-in specs. Target: x86_64-unknown-linux-gnu Configured with: ../gcc/configure --prefix=/home/odo/gcc --disable-multilib --disable-biarch x86_64-unknown-linux-gnu --enable-languages=c Thread model: posix gcc version 4.3.0 20071128 (experimental) (GCC) -- Summary: unnecessary REX prefix Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dean at arctic dot org GCC build triplet: x86_64-unknown-linux-gnu GCC host triplet: x86_64-unknown-linux-gnu GCC target triplet: x86_64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34653
[Bug target/34653] unnecessary REX prefix
-- pinskia at gcc dot gnu dot org changed: What|Removed |Added Severity|normal |enhancement http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34653
[Bug target/34653] unnecessary REX prefix
--- Comment #1 from dean at arctic dot org 2008-01-03 19:27 --- oops i should have used an "unsigned long" for the tag rather than unsigned long long, not that it matters much. here's an expanded example showing another unnecessary REX: extern unsigned long table[]; unsigned long foo(unsigned char *p) { unsigned long tag = *p; return table[tag >> 4] + table[tag & 0xf]; } which generates: 0: 0f b6 17movzbl (%rdi),%edx 3: 48 89 d0mov%rdx,%rax 6: 48 c1 ea 04 shr$0x4,%rdx a: 83 e0 0fand$0xf,%eax d: 48 8b 04 c5 00 00 00mov0x0(,%rax,8),%rax 14: 00 11: R_X86_64_32Stable 15: 48 03 04 d5 00 00 00add0x0(,%rdx,8),%rax 1c: 00 19: R_X86_64_32Stable 1d: c3 retq and in this case the "mov %rdx,%rax" could be "mov %edx,%eax" because of the dominating movzbl. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34653
[Bug target/34628] [4.2/4.3 Regression] problems with inlining on ARM
--- Comment #7 from rguenth at gcc dot gnu dot org 2008-01-03 18:58 --- The final tree IL looks good, so I suspect the RTL loop optimizer gets this wrong. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added CC||rakdver at gcc dot gnu dot ||org Keywords||wrong-code http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34628
[Bug fortran/34565] internal write to string array fails
--- Comment #8 from tkoenig at gcc dot gnu dot org 2008-01-03 19:50 --- Subject: Bug 34565 Author: tkoenig Date: Thu Jan 3 19:49:38 2008 New Revision: 131305 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=131305 Log: 2008-01-03 Thomas Koenig <[EMAIL PROTECTED]> PR libfortran/34565 * io/io.h: Adjust protoypes for open_internal(), next_array_record() and init_loop_spec(). * io/list_read.c (next_char): Use argument "finished" of next_array_record to check for end on internal file. * io/unit.c: Calculate the offset for an array internal file and supply this informatin to open_internal(). * io/unix.c (open_internal): Set the offset for the internal file on open. * io/transfer.c (init_loop_spec): Calculate the starting record in case of negative strides. Return size of 0 for an empty array. (next_array_record): Use an extra flag to signal that the array is finished. (next_record_r): Use the new flag to next_array_record(). (next_record_w): Likewise. 2008-01-03 Thomas Koenig <[EMAIL PROTECTED]> PR libfortran/34565 * gfortran.dg/internal_readwrite_1.f90: New test. * gfortran.dg/internal_readwrite_2.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/internal_readwrite_1.f90 trunk/gcc/testsuite/gfortran.dg/internal_readwrite_2.f90 Modified: trunk/gcc/testsuite/ChangeLog trunk/libgfortran/ChangeLog trunk/libgfortran/io/io.h trunk/libgfortran/io/list_read.c trunk/libgfortran/io/transfer.c trunk/libgfortran/io/unit.c trunk/libgfortran/io/unix.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34565
[Bug fortran/34565] internal write to string array fails
--- Comment #9 from tkoenig at gcc dot gnu dot org 2008-01-03 19:53 --- Fixed on trunk. Closing. -- tkoenig at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34565
[Bug fortran/34557] [4.3 regression] Rejects valid: EQUIVALENCE of character substrings
--- Comment #4 from tkoenig at gcc dot gnu dot org 2008-01-03 20:00 --- (In reply to comment #3) > Patch. Looks obvious and simple. OK to commit if it passes regression-test. Thomas -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34557
[Bug fortran/34654] New: no unformatted on internal file
The following is non-standard and the compiler should probably generate a warning/error with '-pedantic -std=f95', but does not do so with gcc version 4.3.0 20080103 (experimental) [trunk revision 131300] (GCC) CHARACTER :: a(3) WRITE(a) 0 ! no unformatted on internal file END -- Summary: no unformatted on internal file Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jv244 at cam dot ac dot uk http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34654
[Bug fortran/34655] New: 5.5.2.5
The following is non-standard and the compiler should probably generate a warning/error with '-pedantic -std=f95', but does not do so with gcc version 4.3.0 20080103 (experimental) [trunk revision 131300] (GCC) ! 5.5.2.5 TYPE data_type SEQUENCE INTEGER :: I=7 END TYPE data_type INTEGER :: J TYPE(data_type) :: dd COMMON /COM/ J EQUIVALENCE(dd,J) END -- Summary: 5.5.2.5 Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jv244 at cam dot ac dot uk http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34655
[Bug fortran/34657] New: program-unit MY_SUB imports symbol MY_SUB
The following is non-standard and the compiler should probably generate a warning/error with '-pedantic -std=f95', but does not do so with gcc version 4.3.0 20080103 (experimental) [trunk revision 131300] (GCC) module test_mod interface subroutine my_sub (a) real a end subroutine end interface end module subroutine my_sub (a) use test_mod real a print *, a end subroutine END -- Summary: program-unit MY_SUB imports symbol MY_SUB Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jv244 at cam dot ac dot uk http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34657
[Bug fortran/34658] New: save / common
The following is non-standard and the compiler should probably generate a warning/error with '-pedantic -std=f95', but does not do so with gcc version 4.3.0 20080103 (experimental) [trunk revision 131300] (GCC) COMMON /A/ I INTEGER :: I=1 END -- Summary: save / common Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jv244 at cam dot ac dot uk http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34658
[Bug fortran/34659] New: corner case continuation line
The following is non-standard and the compiler should probably generate a warning/error with '-pedantic -std=f95', but does not do so with gcc version 4.3.0 20080103 (experimental) [trunk revision 131300] (GCC) & end -- Summary: corner case continuation line Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jv244 at cam dot ac dot uk http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34659
[Bug fortran/34660] New: elemental and dummy procedure
The following is non-standard and the compiler should probably generate a warning/error with '-pedantic -std=f95', but does not do so with gcc version 4.3.0 20080103 (experimental) [trunk revision 131300] (GCC) MODULE M1 IMPLICIT NONE CONTAINS PURE ELEMENTAL SUBROUTINE S1(I,F) INTEGER, INTENT(IN) :: I INTERFACE PURE INTEGER FUNCTION F(I) INTEGER, INTENT(IN) :: I END FUNCTION F END INTERFACE END SUBROUTINE S1 END MODULE M1 USE M1 END -- Summary: elemental and dummy procedure Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jv244 at cam dot ac dot uk http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34660
[Bug fortran/34661] New: ice on where / ASSIGNMENT(=)
The following is non-standard and the compiler should probably generate a warning/error with '-pedantic -std=f95', but does not do so with gcc version 4.3.0 20080103 (experimental) [trunk revision 131300] (GCC) MODULE M1 IMPLICIT NONE TYPE T1 INTEGER :: I END TYPE T1 INTERFACE ASSIGNMENT(=) MODULE PROCEDURE S1 END INTERFACE CONTAINS SUBROUTINE S1(I,J) TYPE(T1), INTENT(OUT) :: I(2) TYPE(T1), INTENT(IN) :: J(2) I%I=-J%I END SUBROUTINE S1 END MODULE M1 USE M1 TYPE(T1) :: I(2),J(2) I(:)%I=1 WHERE (I(:)%I>0) J=I END WHERE END -- Summary: ice on where / ASSIGNMENT(=) Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jv244 at cam dot ac dot uk http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34661
[Bug fortran/34662] New: inout argument with parameter
The following is non-standard and the compiler should probably generate a warning/error with '-pedantic -std=f95', but does not do so with gcc version 4.3.0 20080103 (experimental) [trunk revision 131300] (GCC) MODULE M1 TYPE T1 INTEGER :: I(3) END TYPE T1 TYPE(T1), PARAMETER :: D1=T1((/1,2,3/)) CONTAINS SUBROUTINE S1(J) INTEGER, INTENT(INOUT) :: J END SUBROUTINE S1 END MODULE M1 USE M1 CALL S1(D1%I(3)) END -- Summary: inout argument with parameter Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jv244 at cam dot ac dot uk http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34662
[Bug fortran/34663] New: Specification expression is defined by dummy variables of different entry points
The following is non-standard and the compiler should probably generate a warning/error with '-pedantic -std=f95', but does not do so with gcc version 4.3.0 20080103 (experimental) [trunk revision 131300] (GCC) SUBROUTINE S1(I) CHARACTER(LEN=I+J) :: a ENTRY E1(J) END SUBROUTINE S1 END -- Summary: Specification expression is defined by dummy variables of different entry points Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jv244 at cam dot ac dot uk http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34663
[Bug fortran/34664] New: function ref not allowed
The following is non-standard and the compiler should probably generate a warning/error with '-pedantic -std=f95', but does not do so with gcc version 4.3.0 20080103 (experimental) [trunk revision 131300] (GCC) INTEGER :: i(10) DATA (i(MODULO(j,5)),j=1,4) /4*0/ END -- Summary: function ref not allowed Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jv244 at cam dot ac dot uk http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34664
[Bug fortran/34665] New: Cannot pass scalar to array argument 'a'
The following is non-standard and the compiler should probably generate a warning/error with '-pedantic -std=f95', but does not do so with gcc version 4.3.0 20080103 (experimental) [trunk revision 131300] (GCC) CONTAINS SUBROUTINE S1(a) real, dimension(:) :: a call s2(a(1)) END SUBROUTINE S1 SUBROUTINE S2(a) real, dimension(*) :: a END SUBROUTINE S2 END -- Summary: Cannot pass scalar to array argument 'a' Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jv244 at cam dot ac dot uk http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34665
[Bug fortran/34656] New: modifies do loop variable
The following is non-standard and the compiler should probably generate a warning/error with '-pedantic -std=f95', but does not do so with gcc version 4.3.0 20080103 (experimental) [trunk revision 131300] (GCC) PROGRAM test IMPLICIT NONE INTEGER :: i DO i=1,100 CALL do_something() ENDDO CONTAINS SUBROUTINE do_something() IMPLICIT NONE DO i=1,10 ENDDO END SUBROUTINE do_something END PROGRAM test -- Summary: modifies do loop variable Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jv244 at cam dot ac dot uk http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34656
[Bug gcov-profile/34610] [4.3 regression] ICE with "-fprofile-arcs -fopenmp"
--- Comment #4 from hubicka at ucw dot cz 2008-01-03 21:05 --- Subject: Re: [4.3 regression] ICE with "-fprofile-arcs -fopenmp" > (which compiles) profile counters are added before omp expansion and once > again > for the child function. Is there a reason why pass_tree_profile can't run > after > pass_cleanup_cfg/pass_init_datastructures/pass_expand_omp? The reason is that pass_cleanup_cfg might remove some explicit goto statements and gcov output would miss them then. > If it can't be moved, could it at least skip all edges in omp parallel > regions? > Or if it is not thread safe, just disable pass_tree_profile if flag_openmp... Well, there is thread safe profiling. In general tree_profile should not see anything it profiled already. I guess all we need to is to mark clones constructed by OMP and ignore those functions in tree_profile? Honza -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34610
[Bug target/34628] [4.2/4.3 Regression] problems with inlining on ARM
--- Comment #8 from rakdver at gcc dot gnu dot org 2008-01-03 21:23 --- (In reply to comment #7) > The final tree IL looks good, so I suspect the RTL loop optimizer gets this > wrong. > > add r1, sp, #56 // upper loop-bound; should have been #12 > I actually wanted to say 'should have been #24' :-) This insn is actually correct, r1 = &outbuf + 24. The missing increment of r4 seems to be the problem. Post-increment is created for r4, but it disappears in the combine pass. Does not seem to be loop optimizer related. -- rakdver at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2008-01-03 21:23:36 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34628
[Bug tree-optimization/31081] [4.3 Regression] Inliner messes up SSA for abnormals
--- Comment #16 from hubicka at gcc dot gnu dot org 2008-01-03 21:25 --- Subject: Bug 31081 Author: hubicka Date: Thu Jan 3 21:23:26 2008 New Revision: 131306 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=131306 Log: PR tree-optimization/31081 * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to 0 when inlining and not inlining to first basic block. (remap_decl): When var is initialized to 0, don't set default_def. (expand_call_inline): Set entry_bb. * tree-inline.h (copy_body_data): Add entry_bb. Modified: trunk/gcc/ChangeLog trunk/gcc/tree-inline.c trunk/gcc/tree-inline.h -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31081