[Bug libfortran/29936] Missed constraint on RECL=specifier in unformatted sequential WRITE
--- Comment #11 from jvdelisle at gcc dot gnu dot org 2006-11-25 07:29 --- Fixed -- jvdelisle at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29936
[Bug libfortran/29936] Missed constraint on RECL=specifier in unformatted sequential WRITE
--- Comment #10 from jvdelisle at gcc dot gnu dot org 2006-11-25 07:28 --- Fixed on 4.1, 4.2 and 4.3 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29936
[Bug libfortran/29936] Missed constraint on RECL=specifier in unformatted sequential WRITE
--- Comment #9 from jvdelisle at gcc dot gnu dot org 2006-11-25 07:24 --- Subject: Bug 29936 Author: jvdelisle Date: Sat Nov 25 07:24:34 2006 New Revision: 119187 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119187 Log: 2006-11-24 Jerry DeLisle <[EMAIL PROTECTED]> PR libgfortran/29936 * gfortran.dg/write_check3.f90: New test. Added: branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/write_check3.f90 Modified: branches/gcc-4_1-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29936
[Bug libfortran/29936] Missed constraint on RECL=specifier in unformatted sequential WRITE
--- Comment #8 from jvdelisle at gcc dot gnu dot org 2006-11-25 07:23 --- Subject: Bug 29936 Author: jvdelisle Date: Sat Nov 25 07:22:49 2006 New Revision: 119186 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119186 Log: 2006-11-24 Jerry DeLisle <[EMAIL PROTECTED]> PR libgfortran/29936 * io/io.h (unit_flags): Add new flag has_recl. * io.open.c (new_unit): Set flag if RECL= was specified. * io/transfer.c (us_write): If flag set, leave recl as initialized by new_unit. Modified: branches/gcc-4_1-branch/libgfortran/ChangeLog branches/gcc-4_1-branch/libgfortran/io/io.h branches/gcc-4_1-branch/libgfortran/io/open.c branches/gcc-4_1-branch/libgfortran/io/transfer.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29936
[Bug libfortran/29936] Missed constraint on RECL=specifier in unformatted sequential WRITE
--- Comment #7 from jvdelisle at gcc dot gnu dot org 2006-11-25 07:14 --- Subject: Bug 29936 Author: jvdelisle Date: Sat Nov 25 07:14:33 2006 New Revision: 119185 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119185 Log: 2006-11-24 Jerry DeLisle <[EMAIL PROTECTED]> PR libgfortran/29936 * gfortran.dg/write_check3.f90: New test. Added: branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/write_check3.f90 Modified: branches/gcc-4_2-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29936
[Bug libfortran/29936] Missed constraint on RECL=specifier in unformatted sequential WRITE
--- Comment #6 from jvdelisle at gcc dot gnu dot org 2006-11-25 07:13 --- Subject: Bug 29936 Author: jvdelisle Date: Sat Nov 25 07:12:56 2006 New Revision: 119184 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119184 Log: 2006-11-24 Jerry DeLisle <[EMAIL PROTECTED]> PR libgfortran/29936 * io/io.h (unit_flags): Add new flag has_recl. * io.open.c (new_unit): Set flag if RECL= was specified. * io/transfer.c (us_write): If flag set, leave recl as initialized by new_unit. Modified: branches/gcc-4_2-branch/libgfortran/ChangeLog branches/gcc-4_2-branch/libgfortran/io/io.h branches/gcc-4_2-branch/libgfortran/io/open.c branches/gcc-4_2-branch/libgfortran/io/transfer.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29936
[Bug libfortran/29936] Missed constraint on RECL=specifier in unformatted sequential WRITE
--- Comment #5 from jvdelisle at gcc dot gnu dot org 2006-11-25 06:57 --- Subject: Bug 29936 Author: jvdelisle Date: Sat Nov 25 06:56:51 2006 New Revision: 119183 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119183 Log: 2006-11-24 Jerry DeLisle <[EMAIL PROTECTED]> PR libgfortran/29936 * gfortran.dg/write_check3.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/write_check3.f90 Modified: trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29936
[Bug c++/29974] Segmentation fault on simple input file. Omission of #include prevents error. WinXP x64, cygwin
--- Comment #2 from jfhamlin at gmail dot com 2006-11-25 05:35 --- gcc stderr/stdout output: $ g++ -v testFail.h Reading specs from /usr/lib/gcc/i686-pc-cygwin/3.4.4/specs Configured with: /gcc/gcc-3.4.4/gcc-3.4.4-1/configure --verbose --prefix=/usr --exec-prefix=/ usr --sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infod ir=/usr/share/info --enable-languages=c,ada,c++,d,f77,java,objc --enable-nls --without-includ ed-gettext --enable-version-specific-runtime-libs --without-x --enable-libgcj --disable-java- awt --with-system-zlib --enable-interpreter --disable-libgcj-debug --enable-threads=posix --e nable-java-gc=boehm --disable-win32-registry --enable-sjlj-exceptions --enable-hash-synchroni zation --enable-libstdcxx-debug : (reconfigured) Thread model: posix gcc version 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125) /usr/lib/gcc/i686-pc-cygwin/3.4.4/cc1plus.exe -quiet -v -D__CYGWIN32__ -D__CYGWIN__ -Dunix - D__unix__ -D__unix -idirafter /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api -i dirafter /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/lib/../../include/w32ap i testFail.h -quiet -dumpbase testFail.h -mtune=pentiumpro -auxbase testFail -version -o /cyg drive/c/DOCUME~1/JAMESF~1/LOCALS~1/Temp/ccGNtP5T.s --output-pch=testFail.h.gch ignoring nonexistent directory "/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/ include" ignoring duplicate directory "/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/li b/../../include/w32api" #include "..." search starts here: #include <...> search starts here: /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++ /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/i686-pc-cygwin /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/backward /usr/local/include /usr/lib/gcc/i686-pc-cygwin/3.4.4/include /usr/include /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api End of search list. GNU C++ version 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125) (i686-pc-cygwin) compiled by GNU C version 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125). GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 testFail.h:8: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See http://gcc.gnu.org/bugs.html> for instructions. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29974
[Bug c++/29974] Segmentation fault on simple input file. Omission of #include prevents error. WinXP x64, cygwin
--- Comment #1 from jfhamlin at gmail dot com 2006-11-25 05:34 --- Created an attachment (id=12684) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12684&action=view) .ii file causing error -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29974
[Bug c++/29974] New: Segmentation fault on simple input file. Omission of #include prevents error. WinXP x64, cygwin
Segmentation fault on simple input file. OS: Windows XP x64 running cygwin. The error does not occur if the last member of the class (the vector) is removed or replaced with an int. Neither does it occur when the "#include " line is removed. -- Summary: Segmentation fault on simple input file. Omission of #include prevents error. WinXP x64, cygwin Product: gcc Version: 3.4.4 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jfhamlin at gmail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29974
[Bug c++/29518] [4.0 Regression] rejects valid template argument, enums vs templates
--- Comment #20 from pinskia at gcc dot gnu dot org 2006-11-25 04:31 --- *** Bug 29701 has been marked as a duplicate of this bug. *** -- pinskia at gcc dot gnu dot org changed: What|Removed |Added CC||eric dot niebler at gmail ||dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29518
[Bug c++/29701] mpl/aux_/preprocessed/gcc/template_arity.hpp, bogus overload ambiguity
--- Comment #3 from pinskia at gcc dot gnu dot org 2006-11-25 04:31 --- This is a dup of bug 29518 after all as it has been fixed on the mainline. *** This bug has been marked as a duplicate of 29518 *** -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||DUPLICATE http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29701
[Bug c++/29016] [4.2 Regression] tree check: expected class 'expression', have 'exceptional' (baselink) in get_base_var, at ipa-utils.c:224
--- Comment #11 from pinskia at gcc dot gnu dot org 2006-11-25 04:27 --- *** Bug 29658 has been marked as a duplicate of this bug. *** -- pinskia at gcc dot gnu dot org changed: What|Removed |Added CC||bero at arklinux dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29016
[Bug middle-end/29658] ICE while compiling Firefox 2.0
--- Comment #5 from pinskia at gcc dot gnu dot org 2006-11-25 04:27 --- *** This bug has been marked as a duplicate of 29016 *** -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||DUPLICATE http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29658
[Bug target/29826] __attribute__ dllimport makes optimization crash on cygwin
--- Comment #5 from pinskia at gcc dot gnu dot org 2006-11-25 04:13 --- *** Bug 27924 has been marked as a duplicate of this bug. *** -- pinskia at gcc dot gnu dot org changed: What|Removed |Added CC||Harmon dot Nine at gmail dot ||com Bug 29826 depends on bug 27924, which changed state. Bug 27924 Summary: internal compiler error: extract_insn, while compiling Gecode http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27924 What|Old Value |New Value Status|UNCONFIRMED |RESOLVED Resolution||DUPLICATE http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29826
[Bug target/27924] internal compiler error: extract_insn, while compiling Gecode
--- Comment #5 from pinskia at gcc dot gnu dot org 2006-11-25 04:13 --- *** This bug has been marked as a duplicate of 29826 *** -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||DUPLICATE http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27924
[Bug fortran/28974] Extremely slow compilation of enumerated DATA statements.
--- Comment #8 from howarth at nitro dot med dot uc dot edu 2006-11-25 04:12 --- Are there any plans to backport this fix to the gcc 4.2 branch since it does fix a pretty nasty performace hit? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28974
[Bug target/27650] internal compiler error while compiling Gecode
--- Comment #12 from pinskia at gcc dot gnu dot org 2006-11-25 03:14 --- Fixed. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED Target Milestone|4.1.3 |4.2.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27650
[Bug target/27924] internal compiler error: extract_insn, while compiling Gecode
--- Comment #4 from pinskia at gcc dot gnu dot org 2006-11-25 03:13 --- Reducing. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added GCC build triplet|i686-pc-cygwin | GCC host triplet|i686-pc-cygwin | Keywords||ice-on-valid-code http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27924
[Bug target/29826] __attribute__ dllimport makes optimization crash on cygwin
--- Comment #4 from pinskia at gcc dot gnu dot org 2006-11-25 03:08 --- Confirmed. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 GCC build triplet|i686-pc-cygwin | GCC host triplet|i686-pc-cygwin | Keywords||ice-on-valid-code Known to fail||4.3.0 Last reconfirmed|-00-00 00:00:00 |2006-11-25 03:08:35 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29826
[Bug fortran/28974] Extremely slow compilation of enumerated DATA statements.
--- Comment #7 from pinskia at gcc dot gnu dot org 2006-11-25 02:38 --- Fixed. -- pinskia 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=28974
[Bug target/29826] __attribute__ dllimport makes optimization crash on cygwin
--- Comment #3 from pinskia at gcc dot gnu dot org 2006-11-25 02:37 --- This is related to PR 27924 and I bet really a dup. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added BugsThisDependsOn||27924 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29826
[Bug target/29826] __attribute__ dllimport makes optimization crash on cygwin
--- Comment #2 from pinskia at gcc dot gnu dot org 2006-11-25 02:33 --- (In reply to comment #1) > To be connected to Bug 29825. No that is unrelated. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Component|c |target http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29826
[Bug target/29825] [4.1 regression] ICE in extract_insn, at recog.c:2084
--- Comment #21 from pinskia at gcc dot gnu dot org 2006-11-25 02:33 --- Fixed. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29825
[Bug target/29815] internal compiler error with option -mfloat-gprs=yes and -mcpu=505
--- Comment #4 from pinskia at gcc dot gnu dot org 2006-11-25 02:27 --- First -mcpu=505 is incorrect for the e500 series, the PPC505 is different from the 8540 which is the e500 series. So this is just a matter of having bad options as far as I can tell. Confirmed. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 GCC build triplet|i686-cygwin | GCC host triplet|i686-cygwin | Last reconfirmed|-00-00 00:00:00 |2006-11-25 02:27:47 date|| Summary|internal compiler error, if |internal compiler error with |float-comparison is done|option -mfloat-gprs=yes and |with option -mfloat-gprs=yes|-mcpu=505 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29815
[Bug other/29842] [meta-bug] outstanding patches / issues from STMicroelectronics
-- pinskia at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2006-11-25 02:11:17 date|| Summary|outstanding patches / issues|[meta-bug] outstanding |from STMicroelectronics |patches / issues from ||STMicroelectronics http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29842
[Bug preprocessor/29851] Need to strip trailing slashes on include pathnames
--- Comment #1 from pinskia at gcc dot gnu dot org 2006-11-25 02:09 --- Confirmed. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added CC||pinskia at gcc dot gnu dot ||org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2006-11-25 02:09:39 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29851
[Bug c++/8586] -Wwrite-strings should be included in -Wall
--- Comment #6 from pinskia at gcc dot gnu dot org 2006-11-25 02:08 --- Fixed. -- pinskia 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=8586
[Bug other/29972] typos in the manual
--- Comment #2 from pinskia at gcc dot gnu dot org 2006-11-25 02:01 --- -These nodes represent logical and and logical or, respectively. These +These nodes represent logical and @w{}and logical or, respectively. These Maybe this should be : These nodes represent logical @code{and} and logical @code{or}, respectively. These -enclosed list if compound literal's and object types match. +enclosed list if compound literals and object types match. This is should rather be: enclosed list if compound literal's and object's types match. it is the types that should match and they belong to the compound literal and the object. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Keywords||documentation http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29972
[Bug c/29970] mixing ({...}) with VLA leads to massive breakage
--- Comment #3 from pinskia at gcc dot gnu dot org 2006-11-25 01:55 --- testcase 2 and 3 are a front-end issue as far as I can tell: in .orginal: int n = 0; // not there for 2 which causes the ICE return (int) ((long unsigned int) SAVE_EXPR * 4); -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29970
[Bug other/29971] anonymous namespace vs deprecated static keyword (different linkage).
--- Comment #2 from pinskia at gcc dot gnu dot org 2006-11-25 01:43 --- Fixed in 4.2.0 by the patch which fixed PR 21581 and PR 25915. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED Target Milestone|--- |4.2.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29971
[Bug c/29955] ICE with -fopenmp -fexceptions
--- Comment #3 from pinskia at gcc dot gnu dot org 2006-11-25 01:37 --- Fixed. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.2.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29955
[Bug fortran/29410] [4.2 only] bug with TRANSFER() and -O2
--- Comment #9 from pinskia at gcc dot gnu dot org 2006-11-24 22:48 --- It turns out my fix caused PR 29951 which I am testing a fix for PR 29951 now. My new patch does not break this testcase which is a good sign. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added BugsThisDependsOn||29951 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29410
[Bug fortran/29951] [4.3 Regression] incorrect conversion from string to integer by TRANSFER()
--- Comment #7 from pinskia at gcc dot gnu dot org 2006-11-24 22:46 --- Here is the patch which I am testing, it fixes this testcase; Index: trans-intrinsic.c === --- trans-intrinsic.c (revision 119148) +++ trans-intrinsic.c (working copy) @@ -2989,7 +2989,7 @@ gfc_conv_intrinsic_array_transfer (gfc_s /* Scalar transfer statement. - TRANSFER (source, mold) = VIEW_CONVERT_EXPR >source. */ + TRANSFER (source, mold) = memcpy(&tmpdecl, &source, size), tmpdecl. */ static void gfc_conv_intrinsic_transfer (gfc_se * se, gfc_expr * expr) @@ -2999,6 +2999,7 @@ gfc_conv_intrinsic_transfer (gfc_se * se tree type; tree ptr; gfc_ss *ss; + tree tmpdecl, tmp, args; /* Get a pointer to the source. */ arg = expr->value.function.actual; @@ -3014,6 +3015,7 @@ gfc_conv_intrinsic_transfer (gfc_se * se arg = arg->next; type = gfc_typenode_for_spec (&expr->ts); + if (expr->ts.type == BT_CHARACTER) { ptr = convert (build_pointer_type (type), ptr); @@ -3026,8 +3028,22 @@ gfc_conv_intrinsic_transfer (gfc_se * se } else { - tree tmp = build_fold_indirect_ref (ptr); - se->expr = fold_build1 (VIEW_CONVERT_EXPR, type, tmp); + tree moldsize; + tmpdecl = gfc_create_var (type, "transfer"); + moldsize = size_in_bytes (type); + + /* Use memcpy to do the transfer. */ + tmp = build1 (ADDR_EXPR, build_pointer_type (type), tmpdecl); + tmp = fold_convert (pvoid_type_node, tmp); + args = gfc_chainon_list (NULL_TREE, tmp); + tmp = fold_convert (pvoid_type_node, ptr); + args = gfc_chainon_list (args, tmp); + args = gfc_chainon_list (args, moldsize); + tmp = built_in_decls[BUILT_IN_MEMCPY]; + tmp = build_function_call_expr (tmp, args); + gfc_add_expr_to_block (&se->pre, tmp); + + se->expr = tmpdecl; } } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29951
[Bug fortran/29489] [4.1/4.2 only] LBOUND (array) and LBOUND (array, DIM) give different results.
--- Comment #10 from fxcoudert at gcc dot gnu dot org 2006-11-24 22:46 --- Fixed. -- fxcoudert at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29489
[Bug fortran/29391] [4.2/4.1 only] LBOUND and UBOUND are broken
--- Comment #18 from fxcoudert at gcc dot gnu dot org 2006-11-24 22:46 --- Fixed. -- fxcoudert at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29391
[Bug fortran/29391] [4.2/4.1 only] LBOUND and UBOUND are broken
--- Comment #17 from fxcoudert at gcc dot gnu dot org 2006-11-24 22:45 --- Subject: Bug 29391 Author: fxcoudert Date: Fri Nov 24 22:45:21 2006 New Revision: 119175 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119175 Log: PR fortran/29391 PR fortran/29489 * simplify.c (simplify_bound): Fix the simplification of LBOUND/UBOUND intrinsics. * trans-intrinsic.c (simplify_bound): Fix the logic, and remove an erroneous assert. PR fortran/29391 * trans-intrinsic.c (gfc_conv_intrinsic_bound): Generate correct code for LBOUND and UBOUND intrinsics. PR fortran/29391 PR fortran/29489 * gfortran.dg/bound_2.f90: New test. * gfortran.dg/bound_3.f90: New test. Added: branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/bound_2.f90 - copied, changed from r117691, trunk/gcc/testsuite/gfortran.dg/bound_2.f90 Modified: branches/gcc-4_1-branch/gcc/fortran/ChangeLog branches/gcc-4_1-branch/gcc/fortran/simplify.c branches/gcc-4_1-branch/gcc/fortran/trans-intrinsic.c branches/gcc-4_1-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29391
[Bug fortran/29489] [4.1/4.2 only] LBOUND (array) and LBOUND (array, DIM) give different results.
--- Comment #9 from fxcoudert at gcc dot gnu dot org 2006-11-24 22:45 --- Subject: Bug 29489 Author: fxcoudert Date: Fri Nov 24 22:45:21 2006 New Revision: 119175 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119175 Log: PR fortran/29391 PR fortran/29489 * simplify.c (simplify_bound): Fix the simplification of LBOUND/UBOUND intrinsics. * trans-intrinsic.c (simplify_bound): Fix the logic, and remove an erroneous assert. PR fortran/29391 * trans-intrinsic.c (gfc_conv_intrinsic_bound): Generate correct code for LBOUND and UBOUND intrinsics. PR fortran/29391 PR fortran/29489 * gfortran.dg/bound_2.f90: New test. * gfortran.dg/bound_3.f90: New test. Added: branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/bound_2.f90 - copied, changed from r117691, trunk/gcc/testsuite/gfortran.dg/bound_2.f90 Modified: branches/gcc-4_1-branch/gcc/fortran/ChangeLog branches/gcc-4_1-branch/gcc/fortran/simplify.c branches/gcc-4_1-branch/gcc/fortran/trans-intrinsic.c branches/gcc-4_1-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29489
[Bug target/29166] broken unwind information for many life variables resulting in register corruption
-- pinskia at gcc dot gnu dot org changed: What|Removed |Added URL||http://gcc.gnu.org/ml/gcc- ||patches/2006- ||11/msg01681.html Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords||patch Last reconfirmed|-00-00 00:00:00 |2006-11-24 22:31:20 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29166
[Bug fortran/24285] [4.2 only] format(1000(a,$))
--- Comment #10 from fxcoudert at gcc dot gnu dot org 2006-11-24 22:27 --- Fixed on 4.2 also. -- fxcoudert at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Known to fail|4.2.0 | Known to work|4.3.0 | Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24285
[Bug fortran/29391] [4.2/4.1 only] LBOUND and UBOUND are broken
--- Comment #16 from fxcoudert at gcc dot gnu dot org 2006-11-24 22:25 --- Subject: Bug 29391 Author: fxcoudert Date: Fri Nov 24 22:25:34 2006 New Revision: 119174 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119174 Log: PR fortran/29391 PR fortran/29489 * simplify.c (simplify_bound): Fix the simplification of LBOUND/UBOUND intrinsics. * trans-intrinsic.c (simplify_bound): Fix the logic, and remove an erroneous assert. * gfortran.dg/bound_2.f90: New test. * gfortran.dg/bound_3.f90: New test. PR fortran/24285 * io.c (check_format): Allow dollars everywhere in format, and issue a warning. * gfortran.dg/dollar_edit_descriptor-3.f: New test. Added: branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/dollar_edit_descriptor-3.f - copied unchanged from r118971, trunk/gcc/testsuite/gfortran.dg/dollar_edit_descriptor-3.f Modified: branches/gcc-4_2-branch/gcc/fortran/ChangeLog branches/gcc-4_2-branch/gcc/fortran/io.c branches/gcc-4_2-branch/gcc/fortran/simplify.c branches/gcc-4_2-branch/gcc/fortran/trans-intrinsic.c branches/gcc-4_2-branch/gcc/testsuite/ChangeLog branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/bound_2.f90 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29391
[Bug fortran/24285] [4.2 only] format(1000(a,$))
--- Comment #9 from fxcoudert at gcc dot gnu dot org 2006-11-24 22:25 --- Subject: Bug 24285 Author: fxcoudert Date: Fri Nov 24 22:25:34 2006 New Revision: 119174 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119174 Log: PR fortran/29391 PR fortran/29489 * simplify.c (simplify_bound): Fix the simplification of LBOUND/UBOUND intrinsics. * trans-intrinsic.c (simplify_bound): Fix the logic, and remove an erroneous assert. * gfortran.dg/bound_2.f90: New test. * gfortran.dg/bound_3.f90: New test. PR fortran/24285 * io.c (check_format): Allow dollars everywhere in format, and issue a warning. * gfortran.dg/dollar_edit_descriptor-3.f: New test. Added: branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/dollar_edit_descriptor-3.f - copied unchanged from r118971, trunk/gcc/testsuite/gfortran.dg/dollar_edit_descriptor-3.f Modified: branches/gcc-4_2-branch/gcc/fortran/ChangeLog branches/gcc-4_2-branch/gcc/fortran/io.c branches/gcc-4_2-branch/gcc/fortran/simplify.c branches/gcc-4_2-branch/gcc/fortran/trans-intrinsic.c branches/gcc-4_2-branch/gcc/testsuite/ChangeLog branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/bound_2.f90 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24285
[Bug fortran/29489] [4.1/4.2 only] LBOUND (array) and LBOUND (array, DIM) give different results.
--- Comment #8 from fxcoudert at gcc dot gnu dot org 2006-11-24 22:25 --- Subject: Bug 29489 Author: fxcoudert Date: Fri Nov 24 22:25:34 2006 New Revision: 119174 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119174 Log: PR fortran/29391 PR fortran/29489 * simplify.c (simplify_bound): Fix the simplification of LBOUND/UBOUND intrinsics. * trans-intrinsic.c (simplify_bound): Fix the logic, and remove an erroneous assert. * gfortran.dg/bound_2.f90: New test. * gfortran.dg/bound_3.f90: New test. PR fortran/24285 * io.c (check_format): Allow dollars everywhere in format, and issue a warning. * gfortran.dg/dollar_edit_descriptor-3.f: New test. Added: branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/dollar_edit_descriptor-3.f - copied unchanged from r118971, trunk/gcc/testsuite/gfortran.dg/dollar_edit_descriptor-3.f Modified: branches/gcc-4_2-branch/gcc/fortran/ChangeLog branches/gcc-4_2-branch/gcc/fortran/io.c branches/gcc-4_2-branch/gcc/fortran/simplify.c branches/gcc-4_2-branch/gcc/fortran/trans-intrinsic.c branches/gcc-4_2-branch/gcc/testsuite/ChangeLog branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/bound_2.f90 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29489
[Bug fortran/29387] ICE on character array function of variable length
--- Comment #9 from pault at gcc dot gnu dot org 2006-11-24 22:22 --- Subject: Bug 29387 Author: pault Date: Fri Nov 24 22:22:40 2006 New Revision: 119173 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119173 Log: 2006-11-24 Paul Thomas <[EMAIL PROTECTED]> PR fortran/20880 * parse.c (parse_interface): Error if procedure name is that of encompassing scope. * resolve.c (resolve_fl_procedure): Error if procedure is ambiguous. PR fortran/29387 * interface.c (compare_actual_formal): Add missing condition that 'where' be present for error that asserts that actual arguments be definable. 2006-11-24 Paul Thomas <[EMAIL PROTECTED]> PR fortran/20880 * gfortran.dg/interface_3.f90: New test. PR fortran/29387 * gfortran.dg/generic_8.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/generic_8.f90 trunk/gcc/testsuite/gfortran.dg/interface_3.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/interface.c trunk/gcc/fortran/parse.c trunk/gcc/fortran/resolve.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29387
[Bug fortran/20880] USE association of procedure's own interface
--- Comment #2 from pault at gcc dot gnu dot org 2006-11-24 22:22 --- Subject: Bug 20880 Author: pault Date: Fri Nov 24 22:22:40 2006 New Revision: 119173 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119173 Log: 2006-11-24 Paul Thomas <[EMAIL PROTECTED]> PR fortran/20880 * parse.c (parse_interface): Error if procedure name is that of encompassing scope. * resolve.c (resolve_fl_procedure): Error if procedure is ambiguous. PR fortran/29387 * interface.c (compare_actual_formal): Add missing condition that 'where' be present for error that asserts that actual arguments be definable. 2006-11-24 Paul Thomas <[EMAIL PROTECTED]> PR fortran/20880 * gfortran.dg/interface_3.f90: New test. PR fortran/29387 * gfortran.dg/generic_8.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/generic_8.f90 trunk/gcc/testsuite/gfortran.dg/interface_3.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/interface.c trunk/gcc/fortran/parse.c trunk/gcc/fortran/resolve.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20880
[Bug target/29166] broken unwind information for many life variables resulting in register corruption
--- Comment #5 from patchapp at dberlin dot org 2006-11-24 22:20 --- Subject: Bug number PR29166 A patch for this bug has been added to the patch tracker. The mailing list url for the patch is http://gcc.gnu.org/ml/gcc-patches/2006-11/msg01681.html -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29166
[Bug fortran/29973] [4.2 only] CHAR not allowed as actual argument, even in F2003
-- fxcoudert at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |ASSIGNED Last reconfirmed|2006-11-24 21:49:05 |2006-11-24 21:49:14 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29973
[Bug fortran/29973] [4.2 only] CHAR not allowed as actual argument, even in F2003
-- fxcoudert at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2006-11-24 21:49:05 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29973
[Bug fortran/29973] New: [4.2 only] CHAR not allowed as actual argument, even in F2003
When I implemented my "intrinsics as actual arguments" patch, I had an old version of the F2003 standard draft. I commited a fix for that problem on mainline as rev. 119170 -- Summary: [4.2 only] CHAR not allowed as actual argument, even in F2003 Product: gcc Version: 4.3.0 Status: UNCONFIRMED Keywords: patch Severity: normal Priority: P3 Component: fortran AssignedTo: fxcoudert at gcc dot gnu dot org ReportedBy: fxcoudert at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29973
[Bug c/29955] ICE with -fopenmp -fexceptions
--- Comment #2 from jakub at gcc dot gnu dot org 2006-11-24 21:29 --- Subject: Bug 29955 Author: jakub Date: Fri Nov 24 21:29:13 2006 New Revision: 119169 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119169 Log: PR c/29955 * c-tree.h (c_maybe_initialize_eh): New prototype. * c-decl.c (finish_decl): Move EH initialization... (c_maybe_initialize_eh): ... here. New function. * c-parser.c (c_parser_omp_construct): Call c_maybe_initialize_eh if not #pragma omp atomic. * gcc.dg/gomp/pr29955.c: New test. Added: branches/gcc-4_2-branch/gcc/testsuite/gcc.dg/gomp/pr29955.c Modified: branches/gcc-4_2-branch/gcc/ChangeLog branches/gcc-4_2-branch/gcc/c-decl.c branches/gcc-4_2-branch/gcc/c-parser.c branches/gcc-4_2-branch/gcc/c-tree.h branches/gcc-4_2-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29955
[Bug c/29955] ICE with -fopenmp -fexceptions
--- Comment #1 from jakub at gcc dot gnu dot org 2006-11-24 21:28 --- Subject: Bug 29955 Author: jakub Date: Fri Nov 24 21:28:38 2006 New Revision: 119168 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119168 Log: PR c/29955 * c-tree.h (c_maybe_initialize_eh): New prototype. * c-decl.c (finish_decl): Move EH initialization... (c_maybe_initialize_eh): ... here. New function. * c-parser.c (c_parser_omp_construct): Call c_maybe_initialize_eh if not #pragma omp atomic. * gcc.dg/gomp/pr29955.c: New test. Added: trunk/gcc/testsuite/gcc.dg/gomp/pr29955.c Modified: trunk/gcc/ChangeLog trunk/gcc/c-decl.c trunk/gcc/c-parser.c trunk/gcc/c-tree.h trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29955
[Bug c/29736] [4.0/4.1/4.2/4.3 regression] ICE on duplicate vector attribute
--- Comment #6 from jakub at gcc dot gnu dot org 2006-11-24 21:26 --- Subject: Bug 29736 Author: jakub Date: Fri Nov 24 21:26:44 2006 New Revision: 119167 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119167 Log: PR c/29736 * c-common.c (handle_vector_size_attribute): Disallow VECTOR_TYPE or UNION_TYPE inner types. * gcc.dg/pr29736.c: New test. Added: branches/gcc-4_1-branch/gcc/testsuite/gcc.dg/pr29736.c Modified: branches/gcc-4_1-branch/gcc/ChangeLog branches/gcc-4_1-branch/gcc/c-common.c branches/gcc-4_1-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29736
[Bug c/29736] [4.0/4.1/4.2/4.3 regression] ICE on duplicate vector attribute
--- Comment #5 from jakub at gcc dot gnu dot org 2006-11-24 21:24 --- Subject: Bug 29736 Author: jakub Date: Fri Nov 24 21:24:34 2006 New Revision: 119166 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119166 Log: PR c/29736 * c-common.c (handle_vector_size_attribute): Disallow VECTOR_TYPE or UNION_TYPE inner types. * gcc.dg/pr29736.c: New test. Added: branches/gcc-4_2-branch/gcc/testsuite/gcc.dg/pr29736.c Modified: branches/gcc-4_2-branch/gcc/ChangeLog branches/gcc-4_2-branch/gcc/c-common.c branches/gcc-4_2-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29736
[Bug c/29736] [4.0/4.1/4.2/4.3 regression] ICE on duplicate vector attribute
--- Comment #4 from jakub at gcc dot gnu dot org 2006-11-24 21:23 --- Subject: Bug 29736 Author: jakub Date: Fri Nov 24 21:23:23 2006 New Revision: 119165 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119165 Log: PR c/29736 * c-common.c (handle_vector_size_attribute): Disallow VECTOR_TYPE or UNION_TYPE inner types. * gcc.dg/pr29736.c: New test. Added: trunk/gcc/testsuite/gcc.dg/pr29736.c Modified: trunk/gcc/ChangeLog trunk/gcc/c-common.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29736
[Bug tree-optimization/29964] [4.1/4.2 Regression] function with volatile operators still found to be pure
--- Comment #5 from pinskia at gcc dot gnu dot org 2006-11-24 18:34 --- Fixed on the mainline will test and commit to the 4.1 and 4.2 branches later this holiday weekend. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Known to fail||4.1.1 4.2.0 Known to work||4.0.4 4.3.0 Summary|[4.1/4.2/4.3 Regression]|[4.1/4.2 Regression] |function with volatile |function with volatile |operators still found to be |operators still found to be |pure|pure http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29964
[Bug tree-optimization/29964] [4.1/4.2/4.3 Regression] function with volatile operators still found to be pure
--- Comment #4 from pinskia at gcc dot gnu dot org 2006-11-24 18:32 --- Subject: Bug 29964 Author: pinskia Date: Fri Nov 24 18:32:14 2006 New Revision: 119162 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119162 Log: 2006-11-24 Andrew Pinski <[EMAIL PROTECTED]> PR tree-opt/29964 * ipa-pure-const.c (check_tree): If the original tree is volatile return early and say the function is not pure nor const. Remove the volatile check for writes. (analyze_function): Print out the result of the local analysis pass. 2006-11-24 Andrew Pinski <[EMAIL PROTECTED]> PR tree-opt/29964 * gcc.dg/pure-1.c: New test. Added: trunk/gcc/testsuite/gcc.dg/pure-1.c Modified: trunk/gcc/ChangeLog trunk/gcc/ipa-pure-const.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29964
[Bug rtl-optimization/27073] invalid gcse manipulation of REG_EQUIV notes
--- Comment #5 from carlos at gcc dot gnu dot org 2006-11-24 16:33 --- Subject: Bug 27073 Author: carlos Date: Fri Nov 24 16:33:44 2006 New Revision: 119160 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119160 Log: 2006-11-24 Carlos O'Donell <[EMAIL PROTECTED]> Backport from mainline: gcc/ 2006-04-11 Richard Sandiford <[EMAIL PROTECTED]> PR rtl-optimization/27073 * gcse.c (try_replace_reg): Revert last change. Continue to search for both REG_EQUAL and REG_EQUIV notes, but only perform replacements on the former. gcc/ 2006-04-09 Richard Sandiford <[EMAIL PROTECTED]> PR rtl-optimization/27073 * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes, not REG_EQUIVs. gcc/testsuite/ 2006-04-09 Richard Sandiford <[EMAIL PROTECTED]> PR rtl-optimization/27073 * gcc.c-torture/execute/pr27073.c: New test. Added: branches/csl/sourcerygxx-4_1/gcc/testsuite/gcc.c-torture/execute/pr27073.c Modified: branches/csl/sourcerygxx-4_1/ChangeLog.csl branches/csl/sourcerygxx-4_1/gcc/gcse.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27073
[Bug other/29972] typos in the manual
--- Comment #1 from Ralf dot Wildenhues at gmx dot de 2006-11-24 16:17 --- Created an attachment (id=12683) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12683&action=view) typos (against trunk) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29972
[Bug other/29972] New: typos in the manual
Updated patch of http://gcc.gnu.org/ml/gcc-patches/2006-08/msg00236.html with some en_us/en_uk differences dropped, and a couple of new typos. -- Summary: typos in the manual Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: other AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: Ralf dot Wildenhues at gmx dot de http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29972
[Bug c/29970] mixing ({...}) with VLA leads to massive breakage
--- Comment #2 from aviro at redhat dot com 2006-11-24 15:25 --- 27301 looks similar to what the first one trips, but passing pointers as suggested by #3 there is not a panacea - testcases 4 and 5 actually deal with that variant. It really looks as if part (but not all) information about the type dies when we leave the scope and we end up stepping into that when working with object afterwards. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29970
error in GCC Internals Manual
Hi, I hope that this is the right mailing list to report this to. While reading through the "GCC Internals Manual", I have found a mix-up in the chapter "11.7 Constant expressions". The description of the expression (const_vector:m [x0 x1 ...]) contains text belonging to the description of the expression (const_double:m addr i0 i1 ...). More precise, all the paragraphs starting from the 4th (begins with addr is used to contain the mem ...), should be moved up to the description of (const_double:m addr i0 i1 ...). Though, I have some doubts regarding the last paragraph. Best regards Andrija Radicevic
[Bug c/29970] mixing ({...}) with VLA leads to massive breakage
--- Comment #1 from joseph at codesourcery dot com 2006-11-24 13:56 --- Subject: Re: New: mixing ({...}) with VLA leads to massive breakage This looks much the same as bug 27301, though the additional testcases are useful. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29970
[Bug other/29971] anonymous namespace vs deprecated static keyword (different linkage).
--- Comment #1 from pluto at agmk dot net 2006-11-24 13:43 --- Created an attachment (id=12682) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12682&action=view) testcase -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29971
[Bug other/29971] New: anonymous namespace vs deprecated static keyword (different linkage).
in theory the anonymous namespace is a `static' keyword superior. in fact it breaks applications that use dlopen() with RTLD_GLOBAL. the so called superior emits symbols with different binding. e.g.: static keyword: 4 OBJECT LOCAL DEFAULT 4 N::a_ namespace superior: 4 OBJECT GLOBAL DEFAULT 4 N::(anonymous namespace)::a_ $ make CPPFLAGS=-DSUPERIOR && ./main i486-gnu-linux-g++ -Wall -O1 -g0 -s -DSUPERIOR *.cpp -c i486-gnu-linux-g++ -Wall -O1 -g0 -s -DSUPERIOR m1.o A.o -o libm1.so -shared i486-gnu-linux-g++ -Wall -O1 -g0 -s -DSUPERIOR m2.o A.o -o libm2.so -shared i486-gnu-linux-g++ -Wall -O1 -g0 -s -DSUPERIOR main.cpp -o main -ldl i486-gnu-linux-strip --strip-unneeded *.so main i1 = 0x55b6b4 i2 = 0x55b6b4 Aborted $ make && ./main i486-gnu-linux-g++ -Wall -O1 -g0 -s *.cpp -c i486-gnu-linux-g++ -Wall -O1 -g0 -s m1.o A.o -o libm1.so -shared i486-gnu-linux-g++ -Wall -O1 -g0 -s m2.o A.o -o libm2.so -shared i486-gnu-linux-g++ -Wall -O1 -g0 -s main.cpp -o main -ldl i486-gnu-linux-strip --strip-unneeded *.so main i1 = 0x759670 i2 = 0x112670 -- Summary: anonymous namespace vs deprecated static keyword (different linkage). Product: gcc Version: 4.1.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: other AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pluto at agmk dot net GCC target triplet: elf-* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29971
[Bug c/29970] New: mixing ({...}) with VLA leads to massive breakage
testcase 1: int foo(int n) // should not ICE { return ({struct {int x[n];} x; x.x[12] = 1; x;}).x[12]; } internal compiler error: in force_constant_size, at gimplify.c:708 testcase 2: int foo(void) // should not ICE { return sizeof({int n = 20; struct {int x[n];} x; x.x[12] = 1; x;}); } internal compiler error: in gimplify_var_or_parm_decl, at gimplify.c:1664 testcase 3: int foo(void) // should not return 0 { int n = 0; return sizeof({n = 10; struct {int x[n];} x; x;}); } returns 0 (actually it's sizeof(int)*original value of n) testcase 4: int foo(void) // should not ICE { return (*({ int n = 20; char (*x)[n][n] = malloc(n * n); (*x)[12][1] = 1; x; }))[12][1]; } same ICE as in #2; note that here the only gccism in ({...}) testcase 5: int foo(void) // should return 1, returns 0 { int n = 0; return (*({ n = 20; char (*x)[n][n] = malloc(n * n); (*x)[12][1] = 1; (*x)[0][1] = 0; x; }))[12][1]; } all writes go to the value-of-malloc + 1 Have fun... A sane approach would be to require the type of ({...}) to make sense on the outside. AFAICS, the root cause of that crap is that ({...}) allows leaking types out of scope where they are defined... In any case, ICE even on violated constraints is Not Nice(tm), especially when those constraints are never stated. Note that earlier versions (at least 4.0.2 and 4.1.1) also break on the same testcases, so it's not a result of recent change - just a dark corner that hadn't been thought through when designing semantics of ({...}). -- Summary: mixing ({...}) with VLA leads to massive breakage Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: aviro at redhat dot com 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=29970
[Bug target/29969] New: should use floating point registers for block copies
In integer-dominated code, it is often useful to use floating point registers to do block copies. If suitable alignment is available, 64 bit loads / stores allow to do the copy with half as many memory operations. If the source is loop invariant, the loads can be hoisted out of the loop; register pressure usually makes this unfeasible for integer registers. The destination, and, if not loop invariant, the source need to be at least 32 bit aligned for this to be profitable (or at least there must be a known constant offset to such an alignment. At -O3, preconditioning could be used to cover all possible offsets and select the code at run-time). Also, a minimum size is required. The total size need not be aligned, as smaller pieces can be copied in integer registers. A testcase for this is the main loop of dhrystone, where the two strings fit into 4 64-bit values each (after padding), and cse allows to fit them in 5 64-bit values together. Four of these fit into the call saved registers dr12, dr14, xd12 and xd14, thus their loads can be hoisted out of the loop. The tree of the current function could be examined for heuristics to determine if using floating point registers for block copies makes sense (look for high integer register pressure and low floating point register pressure - call saved registers if a loop invariant crosses a call; might also take different integer / floating point memory latencies into account if the block is relatively short, by checking if there appear to be a sufficient number of other instructions to hide some of the latency. Alternatively or additionally, an option and/or parameters used in the heuristics can be used to control the behaviour. To increase the incidence of suitably aligned copies, constant alignment and data alignment for block copy destinations of suitable size which are defined in the current compilation unit should be increased to 64 bit, and such data items should also be padded to 64 bits. This may be controlled by an invocation option. (If the last 64 bit item would contain no more than 32 bits, and the register pressure is too high to hoist out all loads, padding to fit 8 / 16 / 32 bit is sufficient. The latter padding is useful for integer copies in general) When doing LTO, this might be expanded to items which are defined in other compilation units, and to special cases of indirect references. The actual copy is best done exploiting post-increment for load and pre-decrement for store, and is thus highly machine specific. It therefore seems best to do this in sh.c:expand_block_move. Thus, STORE_BY_PIECES_P and MOVE_BY_PIECES_P will have to reject the size and alignment combinations of copies that we want to handle this way. Due to a quirk in the SH4 specification, we need a third fp_mode value for 64 bit loads / stores (unless FMOVD_WORKS is true). This mode has FPSCR.PR cleared and FPSCR.SZ set. To get the full benefit for copies that are in a loop that does calls, we should fix rtl-optimization/29349 first. When using the -m4-single ABI, the new mode can be generated from the normal mode by issuing one fschg instruction; we can switch back with another fschg instruction. For -m4a or -m4-300, we need both an fpchg and an fschg; -m4 must load the new mode from a third value in fpscr_values. The actual loads and stores must not look like ordinary SImode or DImode loads and stores, because that would give - via GO_IF_LEGITIMATE_ADDRESS - the wrong message to the optimizers about the available addressing modes. Moreover, POST_INC / PRE_DEC are currently not allowed at rtl generation time. A possible sulution is to use patterns that pair the load / store with an explicit set of the address register. I'd prefer to use two match_dup to keep the address register in sync, since otherwise the optimizers can too easily hijack the pattern for something inappropriate. The MEMs are probably best using SFmode / DFmode, but wrapping them in an SImode / DImode unspec; however, care must be taken to still get the right alias set for the MEM. -- Summary: should use floating point registers for block copies Product: gcc Version: 4.3.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: amylaar at gcc dot gnu dot org GCC target triplet: sh4*-*-* BugsThisDependsOn: 29349 OtherBugsDependingO 29842 nThis: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29969
[Bug preprocessor/29966] crash in cc1 with backtrace from free()
--- Comment #7 from rguenth at gcc dot gnu dot org 2006-11-24 10:46 --- 3.4.6 and 3.3.6 have the same issue -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Known to fail|4.0.4 4.1.2 4.2.0 4.3.0 |3.3.6 3.4.6 4.0.4 4.1.2 ||4.2.0 4.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29966
[Bug c/29968] integer division by zero with optimization
--- Comment #2 from schwab at suse dot de 2006-11-24 10:34 --- Your program is invoking undefined behaviour. You should not perform the division if the divisor is zero. -- schwab at suse dot de changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29968
[Bug c/29968] integer division by zero with optimization
--- Comment #1 from tiamat at komi dot mts dot ru 2006-11-24 10:31 --- Created an attachment (id=12681) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12681&action=view) preprocessed file test.i $ gcc -v -save-temps -O3 test.c Using built-in specs. Target: sparc-linux-gnu Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-mpfr --with-cpu=v8 --with-long-double-128 --enable-checking=release sparc-linux-gnu Thread model: posix gcc version 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5) /usr/lib/gcc/sparc-linux-gnu/4.1.2/cc1 -E -quiet -v -D__sparc_v8__ test.c -mcpu=v8 -O3 -fpch-preprocess -o test.i ignoring nonexistent directory "/usr/local/include/sparc-linux-gnu" ignoring nonexistent directory "/usr/lib/gcc/sparc-linux-gnu/4.1.2/../../../../sparc-linux-gnu/include" ignoring nonexistent directory "/usr/include/sparc-linux-gnu" #include "..." search starts here: #include <...> search starts here: /usr/local/include /usr/lib/gcc/sparc-linux-gnu/4.1.2/include /usr/include End of search list. /usr/lib/gcc/sparc-linux-gnu/4.1.2/cc1 -fpreprocessed test.i -quiet -dumpbase test.c -mcpu=v8 -auxbase test -O3 -version -fstack-protector -fstack-protector -o test.s GNU C version 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5) (sparc-linux-gnu) compiled by GNU C version 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5). GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: 98658b34ad66a745f736bec357f1c193 as -V -Qy -s -32 -relax -o test.o test.s GNU assembler version 2.17 (sparc-linux-gnu) using BFD version 2.17 Debian GNU/Linux /usr/lib/gcc/sparc-linux-gnu/4.1.2/collect2 --eh-frame-hdr -m elf32_sparc -Y P,/usr/lib -dynamic-linker /lib/ld-linux.so.2 -relax /usr/lib/gcc/sparc-linux-gnu/4.1.2/../../../../lib/crt1.o /usr/lib/gcc/sparc-linux-gnu/4.1.2/../../../../lib/crti.o /usr/lib/gcc/sparc-linux-gnu/4.1.2/crtbeginS.o -L/usr/lib/gcc/sparc-linux-gnu/4.1.2 -L/usr/lib/gcc/sparc-linux-gnu/4.1.2 -L/usr/lib/gcc/sparc-linux-gnu/4.1.2/../../../../lib -L/lib/../lib -L/usr/lib/../lib test.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/sparc-linux-gnu/4.1.2/crtend.o /usr/lib/gcc/sparc-linux-gnu/4.1.2/../../../../lib/crtn.o -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29968
[Bug c/29968] New: integer division by zero with optimization
On ultrasparc hardware Linux/Solaris gcc 4.0.2, 4.0.3, 4.1.1 and 4.1.2-prerelease have a bug: #include int testdiv(int i, int k) { if (k == 0) printf("found divide by zero\n"); return(i/k); } int main() { int i = testdiv(1,0); return(i); } When compile it without optimization the expected result is received: $ gcc test.c && ./a.out found divide by zero Floating point exception But optimization broke it: $ gcc -O3 test.c && ./a.out Floating point exception This bug was found with PostgreSQL 8.1.5 on Solaris 9 sparc. Regression tests give me result: The differences that caused some tests to fail can be viewed in the file `./regression.diffs'. A copy of the test summary that you see above is saved in the file `./regression.out'. *** expected/errors.out Sat Feb 12 01:15:11 2005 --- results/errors.outThu Nov 23 18:14:08 2006 *** *** 300,308 select 1/0::int8; ERROR: division by zero select 1::int2/0; ! ERROR: division by zero select 1/0::int2; ! ERROR: division by zero select 1::numeric/0; ERROR: division by zero select 1/0::numeric; --- 300,310 select 1/0::int8; ERROR: division by zero select 1::int2/0; ! ERROR: floating-point exception ! DETAIL: An invalid floating-point operation was signaled. This probably means an out-of-range result or an invalid operation, such as division by zero. select 1/0::int2; ! ERROR: floating-point exception ! DETAIL: An invalid floating-point operation was signaled. This probably means an out-of-range result or an invalid operation, such as division by zero. select 1::numeric/0; ERROR: division by zero select 1/0::numeric; Thanks a lot! -- Summary: integer division by zero with optimization Product: gcc Version: 4.1.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tiamat at komi dot mts dot ru GCC build triplet: sparc-linux-gnu, sparc-sun-solaris2.9, sparc64-sun- solaris2.9 GCC host triplet: sparc-linux-gnu, sparc-sun-solaris2.9, sparc64-sun- solaris2.9 GCC target triplet: sparc-linux-gnu, sparc-sun-solaris2.9, sparc64-sun- solaris2.9 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29968
[Bug fortran/29951] [4.3 Regression] incorrect conversion from string to integer by TRANSFER()
--- Comment #6 from pinskia at gcc dot gnu dot org 2006-11-24 08:13 --- Mine to fix then. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |pinskia at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Summary|incorrect conversion from |[4.3 Regression] incorrect |string to integer by|conversion from string to |TRANSFER() |integer by TRANSFER() Target Milestone|--- |4.3.0 Version|4.2.0 |4.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29951
[Bug fortran/29951] incorrect conversion from string to integer by TRANSFER()
--- Comment #5 from kloedej at knmi dot nl 2006-11-24 08:12 --- Yes, I can confirm the gfortran version used was 4.3.0. I didn't notice the version number changed when I downoaded the latest version. Sorry for that. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29951