[Bug c++/26938] [4.0/4.1/4.2 regression] ICE with wrong number of template parameters
--- Comment #3 from pinskia at gcc dot gnu dot org 2006-07-16 08:31 --- Another testcase which I ran into while reducing the bootstrap failure: template class basic_istream; template struct basic_istream { ~basic_istream(){} }; class istrstream : public basic_istream { ~istrstream() { } } -- pinskia at gcc dot gnu dot org changed: What|Removed |Added CC||pinskia at gcc dot gnu dot ||org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26938
[Bug c/28393] New: gcc gives a core dump when compiling a C program, cc works fine.
I need to build on linux but I get a segmentation fault (core dump) so I try on Sun and I get the same behavior but cc works fine. GCC version: Reading specs from ../lib/gcc-lib/i686-pc-linux-gnu/3.2.3/specs Configured with: ./configure --prefix=/free/GNU_BUILD/G1/devenv/distrib/i686/2.4.7-10/gcc-3.2.3 --disable-nls --enable-languages=c,c++,f77 --with-gnu-as -with-as=/free/GNU_BUILD/G1/devenv/install/i686/2.4.7-10/bin/as --with-gnu-ld -with-ld=/free/GNU_BUILD/G1/devenv/install/i686/2.4.7-10/bin/ld --enable-gcc Thread model: posix gcc version 3.2.3 System type: Linux 2.4.21-4.ELsmp #1 SMP Fri Oct 3 17:52:56 EDT 2003 i686 i686 i386 GNU/Linux Command: bin/gcc -IFlex_inhouse/include -Imgls_inhouse/include -s -o ../ixl_op/pb pb.c Flex_inhouse/lib/libAnacadFlex.a mgls_inhouse/lib/libmgls.a -lnsl message I get: gcc: Internal error: Segmentation fault (program cc1) Please submit a full bug report. See http://gcc.gnu.org/bugs.html> for instructions. gnumake: *** [../ixl_op/pb] Error 1 Expected behavior: output file generated I tried to separate building and linking and I get the problem in the building phase. When I reduce the size of the character variable, building works fine. -- Summary: gcc gives a core dump when compiling a C program, cc works fine. Product: gcc Version: 3.2.3 Status: UNCONFIRMED Severity: blocker Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: mohamed_selim at mentor dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28393
[Bug c/28393] gcc gives a core dump when compiling a C program, cc works fine.
--- Comment #1 from mohamed_selim at mentor dot com 2006-07-16 09:34 --- Created an attachment (id=11895) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11895&action=view) file that whn compiled gives the crash. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28393
[Bug c/28393] gcc gives a core dump when compiling a C program, cc works fine.
--- Comment #2 from pinskia at gcc dot gnu dot org 2006-07-16 09:38 --- In a way that struct is big, I bet the compiler is really just running out of stack space. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28393
[Bug c/28393] gcc gives a core dump when compiling a C program, cc works fine.
--- Comment #3 from pinskia at gcc dot gnu dot org 2006-07-16 09:40 --- I also think most of the stack space issues have been fixed for 3.3, 3.4, 4.0, and 4.1. You might should try a 4.1.1 compiler as 3.2.x (and 3.x) are no longer being maintained. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28393
[Bug c/28393] gcc gives a core dump when compiling a C program, cc works fine.
--- Comment #4 from pinskia at gcc dot gnu dot org 2006-07-16 09:41 --- Also this works for me with 4.0.2 and 3.3. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Severity|blocker |normal http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28393
[Bug c/28393] gcc gives a core dump when compiling a C program, cc works fine.
--- Comment #5 from mohamed_selim at mentor dot com 2006-07-16 09:42 --- Subject: RE: gcc gives a core dump when compiling a C program, cc works fine. Is there any option to increase this stack size? -Original Message- From: pinskia at gcc dot gnu dot org [mailto:[EMAIL PROTECTED] Sent: Sunday, July 16, 2006 12:39 PM To: Selim, Mohamed Subject: [Bug c/28393] gcc gives a core dump when compiling a C program, cc works fine. --- Comment #2 from pinskia at gcc dot gnu dot org 2006-07-16 09:38 --- In a way that struct is big, I bet the compiler is really just running out of stack space. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28393
[Bug c/28393] gcc gives a core dump when compiling a C program, cc works fine.
--- Comment #6 from pinskia at gcc dot gnu dot org 2006-07-16 09:45 --- (In reply to comment #5) > Subject: RE: gcc gives a core dump when compiling a C program, cc works fine. > > Is there any option to increase this stack size? That is an offtopic question really but using limit or ulimit depending on which shell you use. Also as I said this is fixed for 3.3 so I am closing it as such. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED Target Milestone|--- |3.3 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28393
[Bug ada/28394] New: Ambiguous call not detected when using dotted notation
See attached code example. When using dotted notation to call Setup() (as in first line in Test procedure), the compiler doesn't say anything, the Setup() procedure actually called is the one from the package Pkg. When using traditional notation (as in second line in Test procedure), the compiler outputs an ambiguity error message: test.adb:6:11: ambiguous expression (cannot resolve "Setup") test.adb:6:11: possible interpretation at der_pkg.ads:5 test.adb:6:11: possible interpretation at der_pkg.ads:3 Which seems more sensible than no message at all. The attached "bug" file can be expanded to five files using gnatchop. The program has been compiled using: $ gnatmake -gnat05 test ...which calls: gcc -c -gnat05 test.adb "gcc -v" outputs: $ gcc -v Using built-in specs. Target: i686-pc-linux-gnu Configured with: ../gcc-4.1.1/configure --prefix=/home/yves/Programs/gcc411/ --enable-languages=ada,c,c++,fortran --enable-libada Thread model: posix gcc version 4.1.1 For information, this misbehaviour has been initially found using the latest GNAT GPL 2006 from AdaCore. -- Summary: Ambiguous call not detected when using dotted notation Product: gcc Version: 4.1.1 Status: UNCONFIRMED Severity: major Priority: P3 Component: ada AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: kafka dot fr at laposte dot net GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28394
[Bug ada/28394] Ambiguous call not detected when using dotted notation
--- Comment #1 from kafka dot fr at laposte dot net 2006-07-16 09:55 --- Created an attachment (id=11896) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11896&action=view) Source files to illustrate the bug -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28394
[Bug fortran/27980] [4.1 only] Wrong allocation for zero-sized function result
--- Comment #7 from tkoenig at gcc dot gnu dot org 2006-07-16 10:12 --- Subject: Bug 27980 Author: tkoenig Date: Sun Jul 16 10:11:57 2006 New Revision: 115496 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115496 Log: 2006-07-16 Thomas Koenig <[EMAIL PROTECTED]> PR fortran/27980 Backport from mainline * trans-array.h (gfc_trans_allocate_temp_array): Add bool argument. * trans-array.c (gfc_trans_allocate_temp_array): Add extra argument "function" to show if we are translating a function. If we are translating a function, perform checks whether the size along any argument is negative. In that case, allocate size 0. (gfc_trans_array_constructor): Add funciton argument (as false) to gfc_trans_allocate_temp_array. (gfc_conv_loop_setup): Likewise. * trans-expr.c (gfc_trans_function_call): Add funciton argument (as true) to gfc_trans_allocate_temp_array. * trans-stmt.c (gfc_conv_elemental_dependencies): Add funciton argument (as false) to gfc_trans_allocate_temp_array. * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Likewise. 2006-07-16 Thomas Koenig <[EMAIL PROTECTED]> PR fortran/27980 * gfortran.dg/allocate_zerosize_2.f90: New test. Added: branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/allocate_zerosize_2.f90 Modified: branches/gcc-4_1-branch/gcc/fortran/ChangeLog branches/gcc-4_1-branch/gcc/fortran/trans-array.c branches/gcc-4_1-branch/gcc/fortran/trans-array.h branches/gcc-4_1-branch/gcc/fortran/trans-expr.c branches/gcc-4_1-branch/gcc/fortran/trans-intrinsic.c branches/gcc-4_1-branch/gcc/fortran/trans-stmt.c branches/gcc-4_1-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27980
[Bug fortran/27980] [4.1 only] Wrong allocation for zero-sized function result
--- Comment #8 from tkoenig at gcc dot gnu dot org 2006-07-16 10:12 --- Fixed on mainline and 4.1. 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=27980
[Bug tree-optimization/20643] [4.0/4.1/4.2 Regression] Tree loop optimizer does worse job than RTL loop optimizer
--- Comment #11 from anemo at mba dot ocn dot ne dot jp 2006-07-16 13:21 --- I have a similer optimization problem with this tiny function. void foo(int *a) { int i; for (i = 0; i < 100; i++) a[0] += a[1]; } All gcc 4.x I tried generate load and store in inner loop. On http://gcc.gnu.org/ml/gcc/2006-07/msg00282.html, I posted some results. Is this a same probelm? If not, I should file another bug report. Thank you. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20643
[Bug tree-optimization/20643] [4.0/4.1/4.2 Regression] Tree loop optimizer does worse job than RTL loop optimizer
--- Comment #12 from steven at gcc dot gnu dot org 2006-07-16 13:52 --- The test case in comment #11 looks like a classic store motion opportunity to me. GCC 3.3 performs the store motion, GCC 4.2 r115467 does not. Zdenek, I thought tree-ssa-lim should be able to do store motion in loops? -- steven at gcc dot gnu dot org changed: What|Removed |Added CC||rakdver at gcc dot gnu dot ||org Last reconfirmed|2006-02-01 04:41:41 |2006-07-16 13:52:59 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20643
[Bug tree-optimization/18842] Weak optimization on global references
--- Comment #8 from felix dot nawothnig at t-online dot de 2006-07-16 14:23 --- Don't know much about GCC internals but shouldn't this be a very trivial enhancement? I know that this is FOSS so not to annoy anyone, just wondering why it's still open after >1 year. (In case someone is wondering why I care - this is the only one thing where it's still faster to use macros instead of inline functions & references and this access is a huge bottleneck in my application) -- felix dot nawothnig at t-online dot de changed: What|Removed |Added CC||felix dot nawothnig at t- ||online dot de http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18842
[Bug fortran/28201] gfortran ICE if argument list does not match generic interface
--- Comment #4 from pault at gcc dot gnu dot org 2006-07-16 15:02 --- Subject: Bug 28201 Author: pault Date: Sun Jul 16 15:01:59 2006 New Revision: 115499 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115499 Log: 2006-07-16 Paul Thomas <[EMAIL PROTECTED]> PR fortran/28384 * trans-common.c (translate_common): If common_segment is NULL emit error that common block does not exist. PR fortran/20844 * io.c (check_io_constraints): It is an error if an ADVANCE specifier appears without an explicit format. PR fortran/28201 * resolve.c (resolve_generic_s): For a use_associated function, do not search for an alternative symbol in the parent name space. PR fortran/20893 * resolve.c (resolve_elemental_actual): New function t combine all the checks of elemental procedure actual arguments. In addition, check of array valued optional args(this PR) has been added. (resolve_function, resolve_call): Remove parts that treated elemental procedure actual arguments and call the above. 2006-07-16 Paul Thomas <[EMAIL PROTECTED]> PR fortran/20844 * gfortran.dg/io_constaints_2.f90: Add the test for ADVANCE specifiers requiring an explicit format tag.. PR fortran/28201 * gfortran.dg/generic_5: New test. PR fortran/20893 * gfortran.dg/elemental_optional_args_1.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/elemental_optional_args_1.f90 trunk/gcc/testsuite/gfortran.dg/generic_5.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/io.c trunk/gcc/fortran/resolve.c trunk/gcc/fortran/trans-common.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gfortran.dg/io_constraints_2.f90 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28201
[Bug fortran/20844] ADVANCE=specifier in output statement
--- Comment #3 from pault at gcc dot gnu dot org 2006-07-16 15:02 --- Subject: Bug 20844 Author: pault Date: Sun Jul 16 15:01:59 2006 New Revision: 115499 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115499 Log: 2006-07-16 Paul Thomas <[EMAIL PROTECTED]> PR fortran/28384 * trans-common.c (translate_common): If common_segment is NULL emit error that common block does not exist. PR fortran/20844 * io.c (check_io_constraints): It is an error if an ADVANCE specifier appears without an explicit format. PR fortran/28201 * resolve.c (resolve_generic_s): For a use_associated function, do not search for an alternative symbol in the parent name space. PR fortran/20893 * resolve.c (resolve_elemental_actual): New function t combine all the checks of elemental procedure actual arguments. In addition, check of array valued optional args(this PR) has been added. (resolve_function, resolve_call): Remove parts that treated elemental procedure actual arguments and call the above. 2006-07-16 Paul Thomas <[EMAIL PROTECTED]> PR fortran/20844 * gfortran.dg/io_constaints_2.f90: Add the test for ADVANCE specifiers requiring an explicit format tag.. PR fortran/28201 * gfortran.dg/generic_5: New test. PR fortran/20893 * gfortran.dg/elemental_optional_args_1.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/elemental_optional_args_1.f90 trunk/gcc/testsuite/gfortran.dg/generic_5.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/io.c trunk/gcc/fortran/resolve.c trunk/gcc/fortran/trans-common.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gfortran.dg/io_constraints_2.f90 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20844
[Bug fortran/20893] unconditional use of optional argument not detected
--- Comment #4 from pault at gcc dot gnu dot org 2006-07-16 15:02 --- Subject: Bug 20893 Author: pault Date: Sun Jul 16 15:01:59 2006 New Revision: 115499 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115499 Log: 2006-07-16 Paul Thomas <[EMAIL PROTECTED]> PR fortran/28384 * trans-common.c (translate_common): If common_segment is NULL emit error that common block does not exist. PR fortran/20844 * io.c (check_io_constraints): It is an error if an ADVANCE specifier appears without an explicit format. PR fortran/28201 * resolve.c (resolve_generic_s): For a use_associated function, do not search for an alternative symbol in the parent name space. PR fortran/20893 * resolve.c (resolve_elemental_actual): New function t combine all the checks of elemental procedure actual arguments. In addition, check of array valued optional args(this PR) has been added. (resolve_function, resolve_call): Remove parts that treated elemental procedure actual arguments and call the above. 2006-07-16 Paul Thomas <[EMAIL PROTECTED]> PR fortran/20844 * gfortran.dg/io_constaints_2.f90: Add the test for ADVANCE specifiers requiring an explicit format tag.. PR fortran/28201 * gfortran.dg/generic_5: New test. PR fortran/20893 * gfortran.dg/elemental_optional_args_1.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/elemental_optional_args_1.f90 trunk/gcc/testsuite/gfortran.dg/generic_5.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/io.c trunk/gcc/fortran/resolve.c trunk/gcc/fortran/trans-common.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gfortran.dg/io_constraints_2.f90 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20893
[Bug fortran/28384] ICE on non-existent COMMON block
--- Comment #2 from pault at gcc dot gnu dot org 2006-07-16 15:02 --- Subject: Bug 28384 Author: pault Date: Sun Jul 16 15:01:59 2006 New Revision: 115499 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115499 Log: 2006-07-16 Paul Thomas <[EMAIL PROTECTED]> PR fortran/28384 * trans-common.c (translate_common): If common_segment is NULL emit error that common block does not exist. PR fortran/20844 * io.c (check_io_constraints): It is an error if an ADVANCE specifier appears without an explicit format. PR fortran/28201 * resolve.c (resolve_generic_s): For a use_associated function, do not search for an alternative symbol in the parent name space. PR fortran/20893 * resolve.c (resolve_elemental_actual): New function t combine all the checks of elemental procedure actual arguments. In addition, check of array valued optional args(this PR) has been added. (resolve_function, resolve_call): Remove parts that treated elemental procedure actual arguments and call the above. 2006-07-16 Paul Thomas <[EMAIL PROTECTED]> PR fortran/20844 * gfortran.dg/io_constaints_2.f90: Add the test for ADVANCE specifiers requiring an explicit format tag.. PR fortran/28201 * gfortran.dg/generic_5: New test. PR fortran/20893 * gfortran.dg/elemental_optional_args_1.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/elemental_optional_args_1.f90 trunk/gcc/testsuite/gfortran.dg/generic_5.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/io.c trunk/gcc/fortran/resolve.c trunk/gcc/fortran/trans-common.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gfortran.dg/io_constraints_2.f90 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28384
[Bug libstdc++/28277] __builtin_alloca with no limit in libstdc++
--- Comment #10 from paolo at gcc dot gnu dot org 2006-07-16 15:39 --- Subject: Bug 28277 Author: paolo Date: Sun Jul 16 15:38:59 2006 New Revision: 115501 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115501 Log: 2006-07-16 Paolo Carlini <[EMAIL PROTECTED]> PR libstdc++/28277 (partial: valarray bits) * include/std/std_valarray.h (valarray<>::shift(int), valarray<>::cshift(int)): Avoid __builtin_alloca with no limit, do the work in place. * testsuite/26_numerics/valarray/28277.cc: New. Added: trunk/libstdc++-v3/testsuite/26_numerics/valarray/28277.cc Modified: trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/include/std/std_valarray.h -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28277
[Bug c/28395] New: Improved division-by-constant code
32-bit unsigned division A/B by compile-time constant B can be optimized by replacing it with multiplication and shift right. For example, division by 10 is done like this: (A*3435973837) >> 35, in i386 asm: movl$-858993459, %ecx movl8(%ebp), %eax mull%ecx movl%edx, %esi shrl$3, %esi Choosing right constant by which we need to multiply is not trivial: large A values can give wrong results. I spent a few days researching this. I will attach the following test programs: find_fast_div.c: reports fastdiv params for every B in [3..2^32-1] fast_div_bench.c: measures speed improvement when dividing by B=10. find_fast_div_random.c: there is fastdiv_params() function which is intended to go into gcc's optimizer, "constant division" department. It calculates fastdiv parameters (K,bits) for given B and max_A (max_A is to be supplied by gcc's value range analyser). main() calls fastdiv_params() with random parameters in the loop. I am not familiar with gcc internals. Please tell me what should I do next in order to integrate it inot gcc. -- Summary: Improved division-by-constant code Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: vda dot linux at googlemail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28395
[Bug c/28395] Improved division-by-constant code
--- Comment #1 from vda dot linux at googlemail dot com 2006-07-16 15:45 --- Created an attachment (id=11898) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11898&action=view) find_fast_div.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28395
[Bug c/28395] Improved division-by-constant code
--- Comment #2 from vda dot linux at googlemail dot com 2006-07-16 15:46 --- Created an attachment (id=11899) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11899&action=view) fast_div_bench.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28395
[Bug c/28395] Improved division-by-constant code
--- Comment #3 from vda dot linux at googlemail dot com 2006-07-16 15:46 --- Created an attachment (id=11900) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11900&action=view) find_fast_div_random.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28395
[Bug middle-end/28395] Improved division-by-constant code
--- Comment #4 from pinskia at gcc dot gnu dot org 2006-07-16 15:50 --- GCC already does something like this. For /10, GCC produces: f: movl$-858993459, %eax mull4(%esp) shrl$3, %edx movl%edx, %eax ret Maybe I don't understand what you are requesting. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28395
[Bug middle-end/28395] Improved division-by-constant code
--- Comment #5 from pinskia at gcc dot gnu dot org 2006-07-16 15:52 --- In fact we do it also for signed integers (PPC asm this time): _f: lis r0,0x srawi r2,r3,31 ori r0,r0,26215 mulhw r3,r3,r0 srawi r3,r3,2 subf r3,r2,r3 blr -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28395
[Bug middle-end/28395] Improved division-by-constant code
--- Comment #6 from pinskia at gcc dot gnu dot org 2006-07-16 15:54 --- This has been done in GCC since at least 1994 revision 7598 in the SVN. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28395
[Bug middle-end/28395] Improved division-by-constant code
--- Comment #7 from vda dot linux at googlemail dot com 2006-07-16 16:22 --- Oh my. It looks that use of -Os played a joke on me. gcc 3.4.3 -Os uses a division instruction, even though it results in slower and _also bigger_ code. Maybe it makes sense to enable this optimization for -Os too? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28395
[Bug middle-end/28395] Improved division-by-constant code
--- Comment #8 from steven at gcc dot gnu dot org 2006-07-16 16:51 --- No. At -Os, we care about smaller code. Unless that sequence of insns with muls and shifts is smaller than a div, we should produce the div at -Os. And as far as I can see, the div will always be smaller. Not a bug. -- steven at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||WORKSFORME http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28395
[Bug fortran/20844] ADVANCE=specifier in output statement
--- Comment #4 from pault at gcc dot gnu dot org 2006-07-16 17:17 --- Subject: Bug 20844 Author: pault Date: Sun Jul 16 17:17:04 2006 New Revision: 115502 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115502 Log: 2006-07-16 Paul Thomas <[EMAIL PROTECTED]> PR fortran/28384 * trans-common.c (translate_common): If common_segment is NULL emit error that common block does not exist. PR fortran/20844 * io.c (check_io_constraints): It is an error if an ADVANCE specifier appears without an explicit format. PR fortran/28201 * resolve.c (resolve_generic_s): For a use_associated function, do not search for an alternative symbol in the parent name space. PR fortran/20893 * resolve.c (resolve_elemental_actual): New function t combine all the checks of elemental procedure actual arguments. In addition, check of array valued optional args(this PR) has been added. (resolve_function, resolve_call): Remove parts that treated elemental procedure actual arguments and call the above. PR fortran/28353 * trans-expr.c (gfc_conv_aliased_arg): Missing formal arg means that intent is INOUT (fixes regression). PR fortran/25097 * check.c (check_present): The only permitted reference is a full array reference. PR fortran/20903 * decl.c (variable_decl): Add error if a derived type is not from the current namespace if the namespace is an interface body. 2006-07-16 Paul Thomas <[EMAIL PROTECTED]> PR fortran/20844 * gfortran.dg/io_constaints_2.f90: Add the test for ADVANCE specifiers requiring an explicit format tag.. PR fortran/28201 * gfortran.dg/generic_5: New test. PR fortran/20893 * gfortran.dg/elemental_optional_args_1.f90: New test. PR fortran/25097 * gfortran.dg/present_1.f90: New test. PR fortran/20903 * gfortran.dg/interface_derived_type_1.f90: New test. Added: branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/elemental_optional_args_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/generic_5.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/interface_derived_type_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/present_1.f90 Modified: branches/gcc-4_1-branch/gcc/fortran/ChangeLog branches/gcc-4_1-branch/gcc/fortran/check.c branches/gcc-4_1-branch/gcc/fortran/decl.c branches/gcc-4_1-branch/gcc/fortran/io.c branches/gcc-4_1-branch/gcc/fortran/resolve.c branches/gcc-4_1-branch/gcc/fortran/trans-common.c branches/gcc-4_1-branch/gcc/fortran/trans-expr.c branches/gcc-4_1-branch/gcc/testsuite/ChangeLog branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/io_constraints_2.f90 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20844
[Bug fortran/28384] ICE on non-existent COMMON block
--- Comment #3 from pault at gcc dot gnu dot org 2006-07-16 17:17 --- Subject: Bug 28384 Author: pault Date: Sun Jul 16 17:17:04 2006 New Revision: 115502 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115502 Log: 2006-07-16 Paul Thomas <[EMAIL PROTECTED]> PR fortran/28384 * trans-common.c (translate_common): If common_segment is NULL emit error that common block does not exist. PR fortran/20844 * io.c (check_io_constraints): It is an error if an ADVANCE specifier appears without an explicit format. PR fortran/28201 * resolve.c (resolve_generic_s): For a use_associated function, do not search for an alternative symbol in the parent name space. PR fortran/20893 * resolve.c (resolve_elemental_actual): New function t combine all the checks of elemental procedure actual arguments. In addition, check of array valued optional args(this PR) has been added. (resolve_function, resolve_call): Remove parts that treated elemental procedure actual arguments and call the above. PR fortran/28353 * trans-expr.c (gfc_conv_aliased_arg): Missing formal arg means that intent is INOUT (fixes regression). PR fortran/25097 * check.c (check_present): The only permitted reference is a full array reference. PR fortran/20903 * decl.c (variable_decl): Add error if a derived type is not from the current namespace if the namespace is an interface body. 2006-07-16 Paul Thomas <[EMAIL PROTECTED]> PR fortran/20844 * gfortran.dg/io_constaints_2.f90: Add the test for ADVANCE specifiers requiring an explicit format tag.. PR fortran/28201 * gfortran.dg/generic_5: New test. PR fortran/20893 * gfortran.dg/elemental_optional_args_1.f90: New test. PR fortran/25097 * gfortran.dg/present_1.f90: New test. PR fortran/20903 * gfortran.dg/interface_derived_type_1.f90: New test. Added: branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/elemental_optional_args_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/generic_5.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/interface_derived_type_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/present_1.f90 Modified: branches/gcc-4_1-branch/gcc/fortran/ChangeLog branches/gcc-4_1-branch/gcc/fortran/check.c branches/gcc-4_1-branch/gcc/fortran/decl.c branches/gcc-4_1-branch/gcc/fortran/io.c branches/gcc-4_1-branch/gcc/fortran/resolve.c branches/gcc-4_1-branch/gcc/fortran/trans-common.c branches/gcc-4_1-branch/gcc/fortran/trans-expr.c branches/gcc-4_1-branch/gcc/testsuite/ChangeLog branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/io_constraints_2.f90 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28384
[Bug fortran/28353] ICE: Segmentation fault
--- Comment #7 from pault at gcc dot gnu dot org 2006-07-16 17:17 --- Subject: Bug 28353 Author: pault Date: Sun Jul 16 17:17:04 2006 New Revision: 115502 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115502 Log: 2006-07-16 Paul Thomas <[EMAIL PROTECTED]> PR fortran/28384 * trans-common.c (translate_common): If common_segment is NULL emit error that common block does not exist. PR fortran/20844 * io.c (check_io_constraints): It is an error if an ADVANCE specifier appears without an explicit format. PR fortran/28201 * resolve.c (resolve_generic_s): For a use_associated function, do not search for an alternative symbol in the parent name space. PR fortran/20893 * resolve.c (resolve_elemental_actual): New function t combine all the checks of elemental procedure actual arguments. In addition, check of array valued optional args(this PR) has been added. (resolve_function, resolve_call): Remove parts that treated elemental procedure actual arguments and call the above. PR fortran/28353 * trans-expr.c (gfc_conv_aliased_arg): Missing formal arg means that intent is INOUT (fixes regression). PR fortran/25097 * check.c (check_present): The only permitted reference is a full array reference. PR fortran/20903 * decl.c (variable_decl): Add error if a derived type is not from the current namespace if the namespace is an interface body. 2006-07-16 Paul Thomas <[EMAIL PROTECTED]> PR fortran/20844 * gfortran.dg/io_constaints_2.f90: Add the test for ADVANCE specifiers requiring an explicit format tag.. PR fortran/28201 * gfortran.dg/generic_5: New test. PR fortran/20893 * gfortran.dg/elemental_optional_args_1.f90: New test. PR fortran/25097 * gfortran.dg/present_1.f90: New test. PR fortran/20903 * gfortran.dg/interface_derived_type_1.f90: New test. Added: branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/elemental_optional_args_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/generic_5.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/interface_derived_type_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/present_1.f90 Modified: branches/gcc-4_1-branch/gcc/fortran/ChangeLog branches/gcc-4_1-branch/gcc/fortran/check.c branches/gcc-4_1-branch/gcc/fortran/decl.c branches/gcc-4_1-branch/gcc/fortran/io.c branches/gcc-4_1-branch/gcc/fortran/resolve.c branches/gcc-4_1-branch/gcc/fortran/trans-common.c branches/gcc-4_1-branch/gcc/fortran/trans-expr.c branches/gcc-4_1-branch/gcc/testsuite/ChangeLog branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/io_constraints_2.f90 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28353
[Bug fortran/28201] gfortran ICE if argument list does not match generic interface
--- Comment #5 from pault at gcc dot gnu dot org 2006-07-16 17:17 --- Subject: Bug 28201 Author: pault Date: Sun Jul 16 17:17:04 2006 New Revision: 115502 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115502 Log: 2006-07-16 Paul Thomas <[EMAIL PROTECTED]> PR fortran/28384 * trans-common.c (translate_common): If common_segment is NULL emit error that common block does not exist. PR fortran/20844 * io.c (check_io_constraints): It is an error if an ADVANCE specifier appears without an explicit format. PR fortran/28201 * resolve.c (resolve_generic_s): For a use_associated function, do not search for an alternative symbol in the parent name space. PR fortran/20893 * resolve.c (resolve_elemental_actual): New function t combine all the checks of elemental procedure actual arguments. In addition, check of array valued optional args(this PR) has been added. (resolve_function, resolve_call): Remove parts that treated elemental procedure actual arguments and call the above. PR fortran/28353 * trans-expr.c (gfc_conv_aliased_arg): Missing formal arg means that intent is INOUT (fixes regression). PR fortran/25097 * check.c (check_present): The only permitted reference is a full array reference. PR fortran/20903 * decl.c (variable_decl): Add error if a derived type is not from the current namespace if the namespace is an interface body. 2006-07-16 Paul Thomas <[EMAIL PROTECTED]> PR fortran/20844 * gfortran.dg/io_constaints_2.f90: Add the test for ADVANCE specifiers requiring an explicit format tag.. PR fortran/28201 * gfortran.dg/generic_5: New test. PR fortran/20893 * gfortran.dg/elemental_optional_args_1.f90: New test. PR fortran/25097 * gfortran.dg/present_1.f90: New test. PR fortran/20903 * gfortran.dg/interface_derived_type_1.f90: New test. Added: branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/elemental_optional_args_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/generic_5.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/interface_derived_type_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/present_1.f90 Modified: branches/gcc-4_1-branch/gcc/fortran/ChangeLog branches/gcc-4_1-branch/gcc/fortran/check.c branches/gcc-4_1-branch/gcc/fortran/decl.c branches/gcc-4_1-branch/gcc/fortran/io.c branches/gcc-4_1-branch/gcc/fortran/resolve.c branches/gcc-4_1-branch/gcc/fortran/trans-common.c branches/gcc-4_1-branch/gcc/fortran/trans-expr.c branches/gcc-4_1-branch/gcc/testsuite/ChangeLog branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/io_constraints_2.f90 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28201
[Bug fortran/20903] types shouldn't propagate into interfaces
--- Comment #8 from pault at gcc dot gnu dot org 2006-07-16 17:17 --- Subject: Bug 20903 Author: pault Date: Sun Jul 16 17:17:04 2006 New Revision: 115502 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115502 Log: 2006-07-16 Paul Thomas <[EMAIL PROTECTED]> PR fortran/28384 * trans-common.c (translate_common): If common_segment is NULL emit error that common block does not exist. PR fortran/20844 * io.c (check_io_constraints): It is an error if an ADVANCE specifier appears without an explicit format. PR fortran/28201 * resolve.c (resolve_generic_s): For a use_associated function, do not search for an alternative symbol in the parent name space. PR fortran/20893 * resolve.c (resolve_elemental_actual): New function t combine all the checks of elemental procedure actual arguments. In addition, check of array valued optional args(this PR) has been added. (resolve_function, resolve_call): Remove parts that treated elemental procedure actual arguments and call the above. PR fortran/28353 * trans-expr.c (gfc_conv_aliased_arg): Missing formal arg means that intent is INOUT (fixes regression). PR fortran/25097 * check.c (check_present): The only permitted reference is a full array reference. PR fortran/20903 * decl.c (variable_decl): Add error if a derived type is not from the current namespace if the namespace is an interface body. 2006-07-16 Paul Thomas <[EMAIL PROTECTED]> PR fortran/20844 * gfortran.dg/io_constaints_2.f90: Add the test for ADVANCE specifiers requiring an explicit format tag.. PR fortran/28201 * gfortran.dg/generic_5: New test. PR fortran/20893 * gfortran.dg/elemental_optional_args_1.f90: New test. PR fortran/25097 * gfortran.dg/present_1.f90: New test. PR fortran/20903 * gfortran.dg/interface_derived_type_1.f90: New test. Added: branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/elemental_optional_args_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/generic_5.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/interface_derived_type_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/present_1.f90 Modified: branches/gcc-4_1-branch/gcc/fortran/ChangeLog branches/gcc-4_1-branch/gcc/fortran/check.c branches/gcc-4_1-branch/gcc/fortran/decl.c branches/gcc-4_1-branch/gcc/fortran/io.c branches/gcc-4_1-branch/gcc/fortran/resolve.c branches/gcc-4_1-branch/gcc/fortran/trans-common.c branches/gcc-4_1-branch/gcc/fortran/trans-expr.c branches/gcc-4_1-branch/gcc/testsuite/ChangeLog branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/io_constraints_2.f90 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20903
[Bug fortran/25097] Component of optional argument allowed as arg. to PRESENT
--- Comment #5 from pault at gcc dot gnu dot org 2006-07-16 17:17 --- Subject: Bug 25097 Author: pault Date: Sun Jul 16 17:17:04 2006 New Revision: 115502 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115502 Log: 2006-07-16 Paul Thomas <[EMAIL PROTECTED]> PR fortran/28384 * trans-common.c (translate_common): If common_segment is NULL emit error that common block does not exist. PR fortran/20844 * io.c (check_io_constraints): It is an error if an ADVANCE specifier appears without an explicit format. PR fortran/28201 * resolve.c (resolve_generic_s): For a use_associated function, do not search for an alternative symbol in the parent name space. PR fortran/20893 * resolve.c (resolve_elemental_actual): New function t combine all the checks of elemental procedure actual arguments. In addition, check of array valued optional args(this PR) has been added. (resolve_function, resolve_call): Remove parts that treated elemental procedure actual arguments and call the above. PR fortran/28353 * trans-expr.c (gfc_conv_aliased_arg): Missing formal arg means that intent is INOUT (fixes regression). PR fortran/25097 * check.c (check_present): The only permitted reference is a full array reference. PR fortran/20903 * decl.c (variable_decl): Add error if a derived type is not from the current namespace if the namespace is an interface body. 2006-07-16 Paul Thomas <[EMAIL PROTECTED]> PR fortran/20844 * gfortran.dg/io_constaints_2.f90: Add the test for ADVANCE specifiers requiring an explicit format tag.. PR fortran/28201 * gfortran.dg/generic_5: New test. PR fortran/20893 * gfortran.dg/elemental_optional_args_1.f90: New test. PR fortran/25097 * gfortran.dg/present_1.f90: New test. PR fortran/20903 * gfortran.dg/interface_derived_type_1.f90: New test. Added: branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/elemental_optional_args_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/generic_5.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/interface_derived_type_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/present_1.f90 Modified: branches/gcc-4_1-branch/gcc/fortran/ChangeLog branches/gcc-4_1-branch/gcc/fortran/check.c branches/gcc-4_1-branch/gcc/fortran/decl.c branches/gcc-4_1-branch/gcc/fortran/io.c branches/gcc-4_1-branch/gcc/fortran/resolve.c branches/gcc-4_1-branch/gcc/fortran/trans-common.c branches/gcc-4_1-branch/gcc/fortran/trans-expr.c branches/gcc-4_1-branch/gcc/testsuite/ChangeLog branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/io_constraints_2.f90 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25097
[Bug fortran/20893] unconditional use of optional argument not detected
--- Comment #5 from pault at gcc dot gnu dot org 2006-07-16 17:17 --- Subject: Bug 20893 Author: pault Date: Sun Jul 16 17:17:04 2006 New Revision: 115502 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115502 Log: 2006-07-16 Paul Thomas <[EMAIL PROTECTED]> PR fortran/28384 * trans-common.c (translate_common): If common_segment is NULL emit error that common block does not exist. PR fortran/20844 * io.c (check_io_constraints): It is an error if an ADVANCE specifier appears without an explicit format. PR fortran/28201 * resolve.c (resolve_generic_s): For a use_associated function, do not search for an alternative symbol in the parent name space. PR fortran/20893 * resolve.c (resolve_elemental_actual): New function t combine all the checks of elemental procedure actual arguments. In addition, check of array valued optional args(this PR) has been added. (resolve_function, resolve_call): Remove parts that treated elemental procedure actual arguments and call the above. PR fortran/28353 * trans-expr.c (gfc_conv_aliased_arg): Missing formal arg means that intent is INOUT (fixes regression). PR fortran/25097 * check.c (check_present): The only permitted reference is a full array reference. PR fortran/20903 * decl.c (variable_decl): Add error if a derived type is not from the current namespace if the namespace is an interface body. 2006-07-16 Paul Thomas <[EMAIL PROTECTED]> PR fortran/20844 * gfortran.dg/io_constaints_2.f90: Add the test for ADVANCE specifiers requiring an explicit format tag.. PR fortran/28201 * gfortran.dg/generic_5: New test. PR fortran/20893 * gfortran.dg/elemental_optional_args_1.f90: New test. PR fortran/25097 * gfortran.dg/present_1.f90: New test. PR fortran/20903 * gfortran.dg/interface_derived_type_1.f90: New test. Added: branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/elemental_optional_args_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/generic_5.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/interface_derived_type_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/present_1.f90 Modified: branches/gcc-4_1-branch/gcc/fortran/ChangeLog branches/gcc-4_1-branch/gcc/fortran/check.c branches/gcc-4_1-branch/gcc/fortran/decl.c branches/gcc-4_1-branch/gcc/fortran/io.c branches/gcc-4_1-branch/gcc/fortran/resolve.c branches/gcc-4_1-branch/gcc/fortran/trans-common.c branches/gcc-4_1-branch/gcc/fortran/trans-expr.c branches/gcc-4_1-branch/gcc/testsuite/ChangeLog branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/io_constraints_2.f90 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20893
[Bug fortran/28384] ICE on non-existent COMMON block
--- Comment #4 from pault at gcc dot gnu dot org 2006-07-16 17:18 --- Fixed on trunk and 4.2 Paul -- pault at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28384
[Bug fortran/20844] ADVANCE=specifier in output statement
--- Comment #5 from pault at gcc dot gnu dot org 2006-07-16 17:18 --- Fixed on trunk and 4.2 Paul -- pault at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20844
[Bug fortran/28201] gfortran ICE if argument list does not match generic interface
--- Comment #6 from pault at gcc dot gnu dot org 2006-07-16 17:19 --- Fixed on trunk and 4.2 Paul -- pault at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28201
[Bug fortran/20893] unconditional use of optional argument not detected
--- Comment #6 from pault at gcc dot gnu dot org 2006-07-16 17:20 --- Fixed on trunk and 4.2 Paul -- pault at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20893
[Bug fortran/28353] ICE: Segmentation fault
--- Comment #8 from pault at gcc dot gnu dot org 2006-07-16 17:20 --- Fixed on trunk and 4.2 Paul -- pault at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28353
[Bug fortran/25097] Component of optional argument allowed as arg. to PRESENT
--- Comment #6 from pault at gcc dot gnu dot org 2006-07-16 17:21 --- Fixed on trunk and 4.2 Paul -- pault at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25097
[Bug fortran/20903] types shouldn't propagate into interfaces
--- Comment #9 from pault at gcc dot gnu dot org 2006-07-16 17:22 --- Fixed on trunk and 4.2 Paul -- pault at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20903
[Bug fortran/20878] Interface body cannot access named entities by host association
--- Comment #3 from pault at gcc dot gnu dot org 2006-07-16 17:24 --- Fixed on trunk and 4.2 Paul -- pault at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20878
[Bug middle-end/28395] Improved division-by-constant code
--- Comment #9 from vda dot linux at googlemail dot com 2006-07-16 18:47 --- The test program below shows that in this case doing division with div insn takes more instructions than with mul+shift. Also mul+shift path has absolutely useless "movl %edx, %eax" insn, shaving that will make it even smaller. Need to build newer gcc and retest... # cat t.c enum { B = 10 }; enum { shift_bits = 35 }; enum { K = (1ULL<> shift_bits; asm("#3"); } # gcc -Os -fomit-frame-pointer -S t.c # cat t.s .file "t.c" .text .globl f .type f, @function f: pushl %ebx #APP #1 #NO_APP movl$10, %edx movl%edx, %ebx movl8(%esp), %eax xorl%edx, %edx divl%ebx movl%eax, a #APP #2 #NO_APP movl$-858993459, %eax mull8(%esp) movl%edx, %eax shrl$3, %eax movl%eax, b #APP #3 #NO_APP popl%ebx ret .size f, .-f .comm a,4,4 .comm b,4,4 .section.note.GNU-stack,"",@progbits .ident "GCC: (GNU) 3.4.3" -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28395
[Bug middle-end/28395] Improved division-by-constant code
--- Comment #10 from vda dot linux at googlemail dot com 2006-07-16 18:54 --- gcc-4.1.1 differs only by insterting one more useless insn: movl$-858993459, %eax mull8(%esp) movl%edx, %eax + xorl%edx, %edx shrl$3, %eax movl%eax, b Huh? -- vda dot linux at googlemail dot com changed: What|Removed |Added CC||vda dot linux at googlemail ||dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28395
[Bug c++/28370] [4.2 Regression] undefined reference to template class static variable in an anonymous namespace
--- Comment #11 from jakub at gcc dot gnu dot org 2006-07-16 20:17 --- Subject: Bug 28370 Author: jakub Date: Sun Jul 16 20:17:20 2006 New Revision: 115503 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115503 Log: PR c++/28370 * decl2.c (note_vague_linkage_var): Removed. (finish_static_data_member_decl): Add decl to pending_statics vector directly. Do it even for non-public decls. * g++.dg/template/anon3.C: New test. Added: trunk/gcc/testsuite/g++.dg/template/anon3.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/decl2.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28370
[Bug fortran/28390] Broken !$omp parallel do lastprivate(iterationvar)
--- Comment #1 from jakub at gcc dot gnu dot org 2006-07-16 20:19 --- Subject: Bug 28390 Author: jakub Date: Sun Jul 16 20:19:27 2006 New Revision: 115504 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115504 Log: PR fortran/28390 * trans-openmp.c (gfc_trans_omp_do): Look for LASTPRIVATE in code->exp.omp_clauses rather than in the 3rd function argument. * testsuite/libgomp.fortran/pr28390.f: New test. Added: trunk/libgomp/testsuite/libgomp.fortran/pr28390.f Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/trans-openmp.c trunk/libgomp/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28390
[Bug tree-optimization/28210] ICE in is_gimple_min_invariant at -O1.
--- Comment #3 from pluto at agmk dot net 2006-07-16 20:27 --- it works for me with 4.1.2 revision 115366. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28210
[Bug tree-optimization/18842] Weak optimization on global references
--- Comment #9 from rguenth at gcc dot gnu dot org 2006-07-16 20:36 --- You could try it yourself. But - do you have a testcase that shows how macros and inline functions come into play here? -- rguenth at gcc dot gnu dot org changed: What|Removed |Added CC||rguenth at gcc dot gnu dot ||org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18842
[Bug fortran/28397] New: Check format mismatches at compile time
It would be nice to check this at compile-time, if possible (although a lot of compilers don't do this). $ cat format.f90 program main integer :: i i = 42 print '(F10.4)', i end program main $ gfortran format.f90 $ ./a.out At line 4 of file format.f90 Fortran runtime error: Expected REAL for item 2 in formatted transfer, got INTEGER (F10.4) ^ $ gfortran -v Using built-in specs. Target: i686-pc-linux-gnu Configured with: ../../gcc/trunk/configure --prefix=/home/ig25 --enable-languages=c,fortran Thread model: posix gcc version 4.2.0 20060716 (experimental) -- Summary: Check format mismatches at compile time Product: gcc Version: 4.2.0 Status: UNCONFIRMED Keywords: diagnostic Severity: enhancement Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tkoenig at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28397
[Bug java/28398] New: error messages lack substitutions
The following sort of garbaged error messaged with accented latin characters in the place where some string was supposed to be substituted into place are chronic with gcj 4.1.1. gcj -fjni -o gcj_test ../java/src/com/basistech/ne/batch/Extractor.java ../java/src/com/basistech/ne/batch/jni.java TestGCJ.java -Djava.library.path=../../../rlp/lib/ia32-glibc23-gcc32 --main=TestGCJ TestGCJ.java:21: error: Type â not found in the declaration of the local variable â. FileInputStream fis = new FileInputStream(rlpRoot + "/samples/data/en-text.txt"); ^ TestGCJ.java:22: error: Type â not found in the declaration of the local variable â. InputStreamReader isr = new InputStreamReader(fis, "utf-8"); ^ -- Summary: error messages lack substitutions Product: gcc Version: 4.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: java AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: bim2006 at basistech dot com GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28398
[Bug fortran/28399] New: Implement ftnchek-like warnings
There are some useful warnings that gfortran could issue. Examples: $ cat chk.f program main double precision a real b b = 2.3**(2/3) a = 4.3*1d5 print *,a,b b = 1.23456789012345 print *,4**(-3) end $ ftnchek chk.f FTNCHEK Version 3.3 November 2004 File chk.f: 4 b = 2.3**(2/3) ^ Warning near line 4 col 18 file chk.f: integer const expr yields result of 0 ^ Warning near line 4 col 14 file chk.f: integer quotient expr (2/3) used in exponent 5 a = 4.3*1d5 ^ Warning near line 5 col 14 file chk.f: promotion may not give desired precision: real const 4.3 * dble const 1D5 7 b = 1.23456789012345 ^ Warning near line 7 col 11 file chk.f: Single-precision real constant has more digits than are stored 8 print *,4**(-3) ^ Warning near line 8 col 16 file chk.f: integer const expr yields result of 0 0 syntax errors detected in file chk.f 5 warnings issued in file chk.f -- Summary: Implement ftnchek-like warnings Product: gcc Version: 4.2.0 Status: UNCONFIRMED Keywords: diagnostic Severity: enhancement Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tkoenig at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28399
[Bug java/28398] error messages lack substitutions
--- Comment #1 from pinskia at gcc dot gnu dot org 2006-07-16 22:13 --- â Actually I think it is because your environment variables said your terminal supports UTF-8 but they really don't. Can you try setting LANG to C and try again? -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |WAITING Summary|error messages lack |error messages lack |substitutions |substitutions http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28398
[Bug c++/28370] [4.2 Regression] undefined reference to template class static variable in an anonymous namespace
--- Comment #12 from pinskia at gcc dot gnu dot org 2006-07-16 22:24 --- Fixed. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28370
[Bug fortran/28390] Broken !$omp parallel do lastprivate(iterationvar)
--- Comment #2 from pinskia at gcc dot gnu dot org 2006-07-16 22:24 --- Fixed. -- 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=28390
[Bug java/28398] error messages lack substitutions
--- Comment #2 from bim2006 at basistech dot com 2006-07-16 22:29 --- Oh, of course. I should have thought of that. -- bim2006 at basistech dot com changed: What|Removed |Added Status|WAITING |RESOLVED Resolution||INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28398
[Bug target/24036] [e500] ICE in subreg_offset_representable_p, at rtlanal.c:3143
--- Comment #4 from dje at gcc dot gnu dot org 2006-07-17 01:43 --- Double Complex on e500 with double GPRs fundamentally does not interact well with GCC's current design. GCC does not want to have a double placed in the same register that can contain an int if the width of the register for ints cannot span the width of the register for float. rs6000_hard_regno_nregs() can cover the e500 double case with: if (TARGET_E500_DOUBLE && FLOAT_MODE_P (mode)) return (GET_MODE_SIZE (mode) + UNITS_PER_FP_WORD - 1) / UNITS_PER_FP_WORD; which fixes the first dubreg_offset_representable_p() assert, but subreg_offset with double nregs foir regno != int nregs for same regno intends this case for "holes", e.g., XFmode spanning three 32-bit float words but four 32-bit int words. (In this example, xmode is DCmode and ymode is DFmode.) For this special case, the function overrides the default (and correct) nregs nregs_xmode = hard_regno_nregs[xregno][xmode]; with nregs_xmode_unit_int * GET_MODE_NUNITS (xmode) which is twice the number of units. However, ymode is calculated the normal way. Hilarity ensues, e.g., gcc_assert ((mode_multiple % nregs_multiple) == 0); fails. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24036
[Bug target/24036] [e500] ICE in subreg_offset_representable_p, at rtlanal.c:3143
--- Comment #5 from dje at gcc dot gnu dot org 2006-07-17 02:05 --- Created an attachment (id=11902) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11902&action=view) consistently calculate nregs for FLOAT_MODES -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24036
[Bug middle-end/28010] [4.1/4.2 regression] ICE because of fold_rtx endless recursion
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28010
[Bug c++/28025] [4.1/4.2 Regression] multiple template friend compile error
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28025
[Bug c++/28031] [4.2 regression] bogus jump to case label crosses initialization error with C99 anonymous initializers
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28031
[Bug c++/28048] [4.0/4.1/4.2 Regression] ICE on accessing member of dependent name
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28048
[Bug objc/28049] [4.1/4.2 regression] ICE on single + or -
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28049
[Bug objc/28050] [4.1/4.2 regression] ICE on invalid initializer
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P4 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28050
[Bug c++/28053] [4.2 regression] ICE deriving from class with invalid bitfield
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P4 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28053
[Bug c++/28056] [4.1/4.2 regression] enum accepted as scope
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28056
[Bug c++/28058] [4.1/4.2 regression] ICE in inline_forbidden_p
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28058
[Bug debug/28063] [4.2 regression] Dwarf no longer uses merged strings for DW_AT_comp_dir
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28063
[Bug rtl-optimization/28071] [4.1/4.2 regression] A file that can not be compiled in reasonable time/space
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28071
[Bug target/28102] [4.2 Regression] GNU Hurd bootstrap error: 'OPTION_GLIBC' undeclared
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P5 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28102
[Bug c++/28113] [4.2 Regression] vectors initialized in ctors, not at compile time, cause altivec-3.C failure
--- Comment #6 from mmitchel at gcc dot gnu dot org 2006-07-17 02:49 --- Janis -- IIUC, you checked in a fix for this issue. Or, do you want to keep the issue open even though the patch has gone in? If so, would you please retitle the issue and indicate what the current purpose of the bug is? Thanks, -- Mark -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28113
[Bug c/28136] [4.0/4.1/4.2 regression] ICE with incomplete array type
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P4 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28136
[Bug c++/28148] [4.0/4.1/4.2 Regression] ICE with pointer to member function initializer and cast to a different type
--- Comment #5 from mmitchel at gcc dot gnu dot org 2006-07-17 02:52 --- This code is not valid ISO C++; there is no conversion from function pointers (including pointers to member functions) from one type to another. -- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Keywords||ice-on-invalid-code Priority|P3 |P2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28148
[Bug target/28181] [4.0/4.1/4.2 regression] ICE in reload_cse_simplify_operands, at postreload.c:393 on m68k
--- Comment #7 from mmitchel at gcc dot gnu dot org 2006-07-17 02:53 --- m68k is not a primary or secondary platform. -- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P5 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28181
[Bug c++/28025] [4.1/4.2 Regression] multiple template friend compile error
--- Comment #2 from fang at csl dot cornell dot edu 2006-07-17 02:56 --- known to work: 4.0.1 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28025
[Bug c++/28182] [4.0/4.1/4.2 Regression] Bad behaviour when missing "typename" keyword.
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28182
[Bug libgcj/28189] [4.1/4.2 Regression] Many libjava execution tests time out on Tru64 UNIX
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P5 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28189
[Bug libgcj/28190] [4.2 Regression] libjava bootstrap failure on IRIX 6.5: stdint.h misdetection
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P5 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28190
[Bug middle-end/28216] [4.1/4.2 regression] mangled warning message
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P5 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28216
[Bug c++/28225] [4.0/4.1/4.2 regression] segfault in type_dependent_expression_p
--- Comment #4 from mmitchel at gcc dot gnu dot org 2006-07-17 03:00 --- I don't think this code is invalid. To instantiate operator(), size_traits would have to be complete, but that should not prevent the template declaration. -- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28225
[Bug c++/28235] [4.0/4.1/4.2 Regression] ICE with static const member as default parameter in template
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28235
[Bug tree-optimization/28238] [4.1/4.2 regression] verify_stmts failed (invalid operand to unary operator)
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28238
[Bug c++/28239] [4.2 regression] ICE in gimple_add_tmp_var, at gimplify.c:720
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P4 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28239
[Bug target/28247] [4.1/4.2 regression] libstdc++ cannot be build with Solaris threads
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28247
[Bug c++/28248] [4.1/4.2 regression] Trouble with invalid initializers
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28248
[Bug c++/28250] [4.2 regression] ICE with invalid catch
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P4 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28250
[Bug c++/28253] [4.0/4.1/4.2 regression] ICE with invalid covariant return
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P4 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28253
[Bug c++/28255] [4.1/4.2 regression] ICE with initialization in template
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28255
[Bug c++/28256] [4.1/4.2 regression] ICE with empty initializer
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28256
[Bug c++/28257] [4.0/4.1/4.2 regression] ICE with invalid variable declaration
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P4 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28257
[Bug c++/28258] [4.0/4.1/4.2 regression] ICE with invalid constructor
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P4 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28258
[Bug c++/28259] [4.0/4.1/4.2 regression] ICE with invalid virtual inheritance
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P4 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28259
[Bug c++/28261] [4.0/4.1/4.2 regression] ICE with enum in constructor definition
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28261
[Bug c++/28266] [4.0/4.1/4.2 regression] ICE on invalid default variable
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P4 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28266
[Bug c++/28267] [4.0/4.1/4.2 regression] ICE on invalid default variable in operator new
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P4 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28267
[Bug target/28270] [4.0/4.1/4.2 regression] ICE on invalid inline asm
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P4 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28270
[Bug c++/28274] [4.1/4.2 Regression] Redeclaration with extra default argument doesn't work
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28274
[Bug c/28280] [4.2 regression] bogus "statement with no effect" warning with VLA and typeof
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28280
[Bug c++/28284] [4.2 regression] ICE with invalid static const variable
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P4 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28284