[Bug target/33533] New: bogus escapes
gcc/config/pdp11/pdp11.md:1404ff: { rtx lateoperands[2]; lateoperands[0] = operands[0]; operands[0] = gen_rtx_REG (HImode, REGNO (operands[0]) + 1); lateoperands[1] = operands[1]; operands[1] = gen_rtx_REG (HImode, REGNO (operands[1]) + 1); output_asm_insn (\"clc\", operands); < output_asm_insn (\"ror %0\", lateoperands);< output_asm_insn (\"ror %0\", operands);< return \"\"; < } This is in a brace block, NOT in a double quote string. These escapes are bogus. This is revision 127595. -- Summary: bogus escapes Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: kai-gcc-bugs at khms dot westfalen dot de GCC target triplet: pdp11 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33533
[Bug target/33533] bogus escapes
--- Comment #1 from kai-gcc-bugs at khms dot westfalen dot de 2007-09-23 07:29 --- Also line 1623ff: { rtx lateoperands[2]; lateoperands[0] = operands[0]; operands[0] = gen_rtx_REG (HImode, REGNO (operands[0]) + 1); lateoperands[1] = operands[1]; operands[1] = gen_rtx_REG (HImode, REGNO (operands[1]) + 1); output_asm_insn (\"com %0\", operands); <- output_asm_insn (\"com %0\", lateoperands); <- output_asm_insn (\"inc %0\", operands); <- output_asm_insn (\"adc %0\", lateoperands); <- return \"\"; <- } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33533
[Bug target/33534] New: bogus escape
gcc/config/score/score.md:113ff: { switch (which_alternative) { case 0: return mdp_limm (operands); case 1: return mdp_move (operands); case 2: return mdp_linsn (operands, MDA_BYTE, false); case 3: return mdp_sinsn (operands, MDA_BYTE); case 4: return TARGET_MAC ? \"mf%1%S0 %0\" : \"mf%1%0\"; < case 5: return TARGET_MAC ? \"mt%0%S1 %1\" : \"mt%0%1\"; < case 6: return \"mfsr%0, %1\"; < case 7: return \"mtsr%1, %0\"; < default: gcc_unreachable (); } } This is in a brace block, NOT in a double quote string. These escapes are bogus. This is revision 127595. -- Summary: bogus escape Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: kai-gcc-bugs at khms dot westfalen dot de GCC target triplet: score http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33534
[Bug target/33534] bogus escape
--- Comment #1 from kai-gcc-bugs at khms dot westfalen dot de 2007-09-23 08:35 --- ... also many more in this file, too many to add here. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33534
[Bug tree-optimization/33535] New: bitpos_of_field() returns false result base of hard coded multiplication by 8
Taken from tree-ssa-structalias.c: The original code: static unsigned HOST_WIDE_INT bitpos_of_field (const tree fdecl) { if (TREE_CODE (DECL_FIELD_OFFSET (fdecl)) != INTEGER_CST || TREE_CODE (DECL_FIELD_BIT_OFFSET (fdecl)) != INTEGER_CST) return -1; return (tree_low_cst (DECL_FIELD_OFFSET (fdecl), 1) * 8) + tree_low_cst (DECL_FIELD_BIT_OFFSET (fdecl), 1); } I think the code needs to be: static unsigned HOST_WIDE_INT bitpos_of_field (const tree fdecl) { if (TREE_CODE (DECL_FIELD_OFFSET (fdecl)) != INTEGER_CST || TREE_CODE (DECL_FIELD_BIT_OFFSET (fdecl)) != INTEGER_CST) return -1; return (tree_low_cst (DECL_FIELD_OFFSET (fdecl), 1) * BITS_PER_UNIT) + tree_low_cst (DECL_FIELD_BIT_OFFSET (fdecl), 1); } The offset in bits need to consider the BITS_PER_UNIT macro instead of hard coded 8. This is usefull for machines that have different value of BITS_PER_UNIT (16 for e.g. on the port I'm working on). -- Summary: bitpos_of_field() returns false result base of hard coded multiplication by 8 Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tomerben at ceva-dsp dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33535
[Bug fortran/33529] Non-litteral CHARACTER kind values matching is wrong
--- Comment #1 from fxcoudert at gcc dot gnu dot org 2007-09-23 09:08 --- $ cat u.f90 character (kind=kind("a")) :: u end $ gfortran u.f90 u.f90:1.27: character (kind=kind("a")) :: u 1 Error: Kind 0 is not a CHARACTER kind at (1) -- fxcoudert at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |fxcoudert at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Keywords||rejects-valid Known to fail||4.3.0 Last reconfirmed|-00-00 00:00:00 |2007-09-23 09:08:14 date|| Summary|problem with intrinsic |Non-litteral CHARACTER kind |function KIND |values matching is wrong Target Milestone|--- |4.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33529
[Bug fortran/33513] error reported on correct initialization code.
--- Comment #5 from fxcoudert at gcc dot gnu dot org 2007-09-23 09:08 --- Fixed on 4.3. -- fxcoudert at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED Target Milestone|--- |4.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33513
[Bug target/33534] bogus escape
--- Comment #2 from kai-gcc-bugs at khms dot westfalen dot de 2007-09-23 09:13 --- (I count 128 lines in all.) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33534
[Bug fortran/33432] g77 extension: Support for the .XOR. operator
-- 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 |2007-09-23 09:29:07 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33432
[Bug fortran/33430] Improve -finit-*: Initialization of derived types, equivalenced variables
-- 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 |2007-09-23 09:29:56 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33430
[Bug fortran/33456] Vendor extension: Use env. var. to set filename of preconnect unit
--- Comment #2 from fxcoudert at gcc dot gnu dot org 2007-09-23 09:32 --- Tobias says "I'm not sure we need this", and Steve rightly points out that this was ruled out in the past. So, closing for now. (If the need arises, we should first discuss it on the list, IMHO.) -- fxcoudert at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||WONTFIX http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33456
[Bug middle-end/28755] [4.0/4.1/4.2/4.3 Regression] duplicate members of arrays
--- Comment #7 from jakub at gcc dot gnu dot org 2007-09-23 09:34 --- Subject: Bug 28755 Author: jakub Date: Sun Sep 23 09:34:28 2007 New Revision: 128685 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=128685 Log: PR middle-end/28755 * expr.c (expand_constructor): New function. (expand_expr_real_1) : Call it. (expand_expr_real_1) : Call it if VALUE is CONSTRUCTOR. * gcc.dg/pr28755.c: New test. Added: trunk/gcc/testsuite/gcc.dg/pr28755.c Modified: trunk/gcc/ChangeLog trunk/gcc/expr.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28755
[Bug fortran/33174] Testsuite: unexpected failures
--- Comment #9 from fxcoudert at gcc dot gnu dot org 2007-09-23 09:35 --- PR 33140 disappeared from mainline around 2007-09-08. Dale, can you still see the ICE you reported? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33174
[Bug fortran/33204] Run-time argument check for procedures (run-time interface checking)
-- 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 |2007-09-23 09:40:53 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33204
[Bug fortran/33229] ICE with "intrinsic" plus calling a subroutine as function
-- 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 |2007-09-23 09:41:31 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33229
[Bug fortran/33230] Missing check: specification function must be pure
-- 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 |2007-09-23 09:42:27 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33230
[Bug tree-optimization/32975] [4.3 Regression] ICE segfault (verify_cgraph failure after ipa-cp) with -finline-functions -fipa-cp
--- Comment #6 from jakub at gcc dot gnu dot org 2007-09-23 09:44 --- Subject: Bug 32975 Author: jakub Date: Sun Sep 23 09:44:23 2007 New Revision: 128688 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=128688 Log: PR tree-optimization/32772 * gcc.c-torture/compile/20070905-1.c: New test. PR tree-optimization/32975 * gcc.dg/pr32975.c: New test. Added: trunk/gcc/testsuite/gcc.c-torture/compile/20070905-1.c trunk/gcc/testsuite/gcc.dg/pr32975.c Modified: trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32975
[Bug tree-optimization/32772] [4.3 Regression] error: found real variable when subvariables should have appeared
--- Comment #15 from jakub at gcc dot gnu dot org 2007-09-23 09:44 --- Subject: Bug 32772 Author: jakub Date: Sun Sep 23 09:44:23 2007 New Revision: 128688 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=128688 Log: PR tree-optimization/32772 * gcc.c-torture/compile/20070905-1.c: New test. PR tree-optimization/32975 * gcc.dg/pr32975.c: New test. Added: trunk/gcc/testsuite/gcc.c-torture/compile/20070905-1.c trunk/gcc/testsuite/gcc.dg/pr32975.c Modified: trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32772
[Bug target/33536] New: bogus escapes
gcc/config/spu/spu.md:1647f: { emit_move_insn (operands[3],spu_float_const(\"0.5\",SFmode)); < emit_move_insn (operands[4],spu_float_const(\"1.0011920928955078125\",SFmode)); < emit_insn(gen_frsqest_sf(operands[2],operands[1])); emit_insn(gen_fi_sf(operands[2],operands[1],operands[2])); emit_insn(gen_mulsf3(operands[5],operands[2],operands[1])); emit_insn(gen_mulsf3(operands[3],operands[5],operands[3])); emit_insn(gen_fnms_sf(operands[4],operands[2],operands[5],operands[4])); emit_insn(gen_fma_sf(operands[0],operands[4],operands[3],operands[5])); DONE; }) This is in a brace block, NOT in a double quote string. These escapes are bogus. This is revision 127595. -- Summary: bogus escapes Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: kai-gcc-bugs at khms dot westfalen dot de GCC target triplet: spu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33536
[Bug tree-optimization/33535] bitpos_of_field() returns false result base of hard coded multiplication by 8
--- Comment #1 from rguenth at gcc dot gnu dot org 2007-09-23 11:04 --- If so (did you look how DECL_FIELD_OFFSET is set?) then the documentation in tree.h needs adjustment as well: /* In a FIELD_DECL, this is the field position, counting in bytes, of the DECL_OFFSET_ALIGN-bit-sized word containing the bit closest to the beginning of the structure. */ #define DECL_FIELD_OFFSET(NODE) (FIELD_DECL_CHECK (NODE)->field_decl.offset) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33535
[Bug c++/5305] wrong constructor called -- default argument in constructor not seen
--- Comment #6 from rguenth at gcc dot gnu dot org 2007-09-23 11:25 --- Reconfirmed. Looks like non-regression wrong-code bugs get no attention :/ -- rguenth at gcc dot gnu dot org changed: What|Removed |Added CC||jason at redhat dot com, ||mark at codesourcery dot com Last reconfirmed|2006-09-03 21:39:38 |2007-09-23 11:25:41 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=5305
[Bug c++/8858] Gcc "rebinds" template member names.
--- Comment #4 from rguenth at gcc dot gnu dot org 2007-09-23 11:39 --- Re-confirmed with the new C++ parser. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added CC||jason at redhat dot com, ||mark at codesourcery dot com Last reconfirmed|2005-12-30 07:02:35 |2007-09-23 11:39:11 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8858
[Bug c++/10291] error referencing a static local from a local struct in template code
--- Comment #7 from rguenth at gcc dot gnu dot org 2007-09-23 11:48 --- Testcase from comment #1 still returns 0 on trunk. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added CC||jason at redhat dot com, ||mark at codesourcery dot com Last reconfirmed|2006-09-03 21:39:31 |2007-09-23 11:48:06 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10291
[Bug c++/30897] [4.1/4.2/4.3 regression] ICE with default argument in template template parameter
--- Comment #3 from pcarlini at suse dot de 2007-09-23 11:52 --- By the way, the hunk of code at issue dates back to this time: http://gcc.gnu.org/ml/gcc-patches/2001-10/msg00589.html (and, by the way, I cannot find an explicit approval in the mailing list). Anyway, the effect of removing it is fixing this PR and regressing only on the testcase committed with it (template/ttp2.C). -- pcarlini at suse dot de changed: What|Removed |Added CC||mark at codesourcery dot ||com, pcarlini at suse dot de http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30897
[Bug c++/17410] Specialization of nested template rejected because of unrelated declaration
--- Comment #7 from rguenth at gcc dot gnu dot org 2007-09-23 12:15 --- Re-confirmed. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added CC||jason at redhat dot com, ||mark at codesourcery dot com Known to fail|2.95.3 3.0.4 3.2.3 3.3.3|2.95.3 3.0.4 3.2.3 3.3.3 |3.4.0 4.0.0 4.1.0 |3.4.0 4.0.0 4.1.0 4.3.0 Last reconfirmed|2005-10-27 16:27:41 |2007-09-23 12:15:33 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17410
[Bug target/18723] [C] gcc 3.4.4 zeroes inline function argument with "-O2 -march=pentium4"
--- Comment #7 from rguenth at gcc dot gnu dot org 2007-09-23 12:21 --- Can you verify the bug still occurs with a still maintained version of GCC? That is, GCC 4.2.1 or trunk. Thanks. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |WAITING http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18723
[Bug c++/19531] NRV is performed on volatile temporary
--- Comment #2 from rguenth at gcc dot gnu dot org 2007-09-23 12:26 --- Why didn't you submit a patch? -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Last reconfirmed|2006-01-26 05:35:43 |2007-09-23 12:26:37 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19531
[Bug middle-end/20222] Double load of volatile operand for abs builtin
--- Comment #3 from rguenth at gcc dot gnu dot org 2007-09-23 12:35 --- Please re-confirm this if this still happens on the mainline as I cannot reproduce this with a i686 target. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |WAITING http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20222
[Bug other/21322] O2 and O3 memory access error - compiled program - incorrect debug output
--- Comment #12 from rguenth at gcc dot gnu dot org 2007-09-23 12:40 --- This sounds like possibly an aliasing issue. Anyway, does this still occur with a maintained version of GCC? That would be at least 4.2.1. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |WAITING http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21322
[Bug middle-end/21360] wrong result of 'if' statement with comparing of floating point with gcc.
--- Comment #8 from rguenth at gcc dot gnu dot org 2007-09-23 12:47 --- 6.3.1.4/1 says this is undefined. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21360
[Bug debug/33537] New: [4.0/4.1/4.2/4.3 regression] C++ arguments passed by invisible reference have wrong type
Compile the code below using g++ -g, load the object into gdb, and 'ptype foo'. You will see that the type of foo is 'int (Obj &)'. If this function is called from GDB, and the called function modifies its argument, it will end up modifying the original copy. It's supposed to get a temporary copy. This changed sometime between g++ 3.3 and g++ 4.0. class Obj { public: Obj (); Obj (const Obj &); ~Obj (); int var[2]; }; int foo (Obj arg) { return arg.var[0] + arg.var[1]; } int main() { return 0; } Obj::Obj () { var[0] = 1; var[1] = 2; } Obj::Obj (const Obj &obj) { var[0] = obj.var[0]; var[1] = obj.var[1]; } Obj::~Obj () { } -- Summary: [4.0/4.1/4.2/4.3 regression] C++ arguments passed by invisible reference have wrong type Product: gcc Version: 4.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: drow at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33537
[Bug c++/16370] __attribute__((deprecated)) not useful on classes, and ugly function name listed for deperecation warnings on constructor
--- Comment #6 from jason at gcc dot gnu dot org 2007-09-23 15:27 --- Subject: Bug 16370 Author: jason Date: Sun Sep 23 15:27:10 2007 New Revision: 128691 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=128691 Log: PR c++/16370 * decl.c (grokdeclarator): Look through implicit TYPE_DECLs for deprecation warnings. Added: trunk/gcc/testsuite/g++.dg/warn/deprecated-5.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/decl.c trunk/gcc/testsuite/g++.dg/warn/deprecated.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16370
[Bug c++/16370] __attribute__((deprecated)) not useful on classes, and ugly function name listed for deperecation warnings on constructor
-- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2005-05-01 03:41:47 |2007-09-23 15:28:24 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16370
[Bug c++/16370] __attribute__((deprecated)) not useful on classes, and ugly function name listed for deperecation warnings on constructor
--- Comment #7 from jason at gcc dot gnu dot org 2007-09-23 15:28 --- Fixed for 4.3.0. -- jason at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16370
[Bug tree-optimization/33535] bitpos_of_field() returns false result base of hard coded multiplication by 8
--- Comment #2 from tomerben at ceva-dsp dot com 2007-09-23 16:31 --- (In reply to comment #1) > If so (did you look how DECL_FIELD_OFFSET is set?) then the documentation in > tree.h needs adjustment as well: > /* In a FIELD_DECL, this is the field position, counting in bytes, of the >DECL_OFFSET_ALIGN-bit-sized word containing the bit closest to the > beginning >of the structure. */ > #define DECL_FIELD_OFFSET(NODE) (FIELD_DECL_CHECK (NODE)->field_decl.offset) I don't think the documentation needs to be modified - multiplying the offset in bytes (=units) by the BITS_PER_UNIT makes perfect sense to get the bitpos of a certain field. taken from the gcc internals: "BITS_PER_UNIT [Macro]- Define this macro to be the number of bits in an addressable storage unit (byte). If you do not define this macro the default is 8." In most cases unit=byte=8 but in my case unit=byte=16 and hard coded multiplication by 8 is wrong. -- tomerben at ceva-dsp dot com changed: What|Removed |Added CC||tomerben at ceva-dsp dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33535
[Bug target/33536] extraneous escapes
--- Comment #1 from pinskia at gcc dot gnu dot org 2007-09-23 16:43 --- Again this is only an extraneous escape. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Severity|normal |enhancement Summary|bogus escapes |extraneous escapes http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33536
[Bug target/33532] bogus escape
--- Comment #3 from bangerth at dealii dot org 2007-09-23 16:56 --- (In reply to comment #2) > This is not a bogus escape, just extraneous. Uh, what exactly do you mean? This code is not valid: --- char *p = \"abc\"; --- Neither should the one quoted be... W. -- bangerth at dealii dot org changed: What|Removed |Added CC||bangerth at dealii dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33532
[Bug target/33532] bogus escape
--- Comment #4 from pinskia at gcc dot gnu dot org 2007-09-23 16:59 --- (In reply to comment #3) > (In reply to comment #2) > > This is not a bogus escape, just extraneous. > > Uh, what exactly do you mean? This code is not valid: this escape is in the machine description file which is not exactly C. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33532
[Bug debug/33537] [4.0/4.1/4.2/4.3 regression] C++ arguments passed by invisible reference have wrong type
--- Comment #1 from bangerth at dealii dot org 2007-09-23 17:07 --- I get the same output (gdb) ptype foo type = int (Obj &) for all compilers I tried here, i.e. gcc versions 2.95, 3.2.3, 3.3.6, 3.4.6 and 4.1.2. This is with gdb 6.5. On the other hand, when using icc10 and Sun Studio, I get this: (gdb) ptype foo type = int (Obj) which appears correct. So I can confirm that this appears to be a bug. I'm not sure yet about the regression status: Can you re-check whether you indeed got the correct results with pre-4.0 versions of gcc? W. -- bangerth at dealii dot org changed: What|Removed |Added CC||bangerth at dealii dot org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2007-09-23 17:07:02 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33537
[Bug c++/19531] NRV is performed on volatile temporary
--- Comment #3 from bangerth at dealii dot org 2007-09-23 17:13 --- Confirmed indeed. Core DR 20 added the following text to 12.8/15: This elision of copy operations is permitted in the following circumstances (which may be combined to eliminate multiple copies): -- in a return statement in a function with a class return type, when the expression is the name of a non-volatile automatic object with the same cv-unqualified type as the function return type, the copy operation can be omitted by constructing the automatic object directly into the function's return value Note that the return expression is specifically restricted to the name of a *non-volatile automatic object*. W. -- bangerth at dealii dot org changed: What|Removed |Added CC||bangerth at dealii dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19531
[Bug c++/33435] internal compiler error with templates and openmp
--- Comment #3 from bangerth at dealii dot org 2007-09-23 17:20 --- Confirmed. W. -- bangerth at dealii dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2007-09-23 17:20:55 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33435
[Bug c++/21385] __extension__ lost inside template
--- Comment #3 from jason at gcc dot gnu dot org 2007-09-23 17:49 --- I don't think implementing this can leverage the attribute work. I'd probably implement it with a new tree code; the alternative would be a new flag in a lot of places. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21385
[Bug debug/33537] [4.0/4.1/4.2/4.3 regression] C++ arguments passed by invisible reference have wrong type
--- Comment #2 from drow at gcc dot gnu dot org 2007-09-23 17:49 --- I got the correct result on amd64 with g++-3.3 (GCC) 3.3.6 (Debian 1:3.3.6-15). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33537
[Bug c++/33518] unused code changes the result of name lookup
--- Comment #2 from bangerth at dealii dot org 2007-09-23 18:09 --- This indeed looks like a bug. Take this: - #include namespace M { struct A {}; using std::distance; } namespace N { template struct S {}; class Q : S {}; int distance(Q,Q); } int i = distance (N::Q(), N::Q()); I would expect this to compile: all arguments to the call to distance() have associated namespace N, so we would expect that the compiler finds N::distance. However, apparently, gcc also performs the derived-to-base conversion to find S and concludes that namespace M is also associated from where it tries to use std::distance and gives the error g/x> c++ -c y.cc /usr/include/c++/4.1.2/bits/stl_iterator_base_types.h: In instantiation of 'std::iterator_traits': y.cc:15: instantiated from here /usr/include/c++/4.1.2/bits/stl_iterator_base_types.h:129: error: no type named 'iterator_category' in 'class N::Q' /usr/include/c++/4.1.2/bits/stl_iterator_base_types.h:130: error: no type named 'value_type' in 'class N::Q' /usr/include/c++/4.1.2/bits/stl_iterator_base_types.h:131: error: no type named 'difference_type' in 'class N::Q' /usr/include/c++/4.1.2/bits/stl_iterator_base_types.h:132: error: no type named 'pointer' in 'class N::Q' /usr/include/c++/4.1.2/bits/stl_iterator_base_types.h:133: error: no type named 'reference' in 'class N::Q' It shouldn't be hard to produce a wrong-code bug from this. If someone wants to beat me to producing something without the include file, feel free... W. -- bangerth at dealii dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2007-09-23 18:09:10 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33518
[Bug c++/33094] [4.2/4.3 Regression] ICE on valid C++ virtual template static member in anonymous namespace
-- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2007-08-17 09:29:10 |2007-09-23 18:22:01 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33094
[Bug c++/33518] invalid Koenig lookup
--- Comment #3 from bangerth at dealii dot org 2007-09-23 18:23 --- This actually turns out to be a serious bug in several different ways. Here's self-contained code: --- namespace X { template struct H { typedef typename T::type type; }; template typename H::type foo(T); } namespace M { struct A {}; using X::foo; } namespace N { template struct S {}; class Q : S {}; int foo(Q); } int i = foo (N::Q()); - We get this: g/x> c++ -c y.ii y.ii: In instantiation of 'X::H': y.ii:18: instantiated from here y.ii:2: error: no type named 'type' in 'class N::Q' Note that in the call to foo, all arguments have associated namespace N, so X::foo shouldn't be considered. The fact that we do is bug 1. Bug 2 is that even if we consider X::foo, we should realize that the return type of X::foo can't be instantiated for this template argument, since X::H::type doesn't exist. That we don't silently give up means that we aren't doing SFINAE right. I'll try to come up with a wrong-code version of this in a minute. W. -- bangerth at dealii dot org changed: What|Removed |Added Keywords||rejects-valid Summary|unused code changes the |invalid Koenig lookup |result of name lookup | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33518
[Bug c++/33239] [4.1/4.2/4.3 Regression] internal compiler error in instantiate_class_template, at cp/pt.c:5666
-- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2007-09-01 12:22:43 |2007-09-23 18:24:07 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33239
[Bug c++/11407] [DR 115] Function cannot be resolved
-- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2005-12-11 21:45:02 |2007-09-23 18:27:29 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11407
[Bug c++/11756] ICE's when using typeof in template function parameter type declarations
-- jason at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2006-09-03 21:39:32 |2007-09-23 18:28:21 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11756
[Bug c++/33518] invalid Koenig lookup/incorrect SFINAE
--- Comment #4 from bangerth at dealii dot org 2007-09-23 18:29 --- I can't seem to produce a wrong-code bug with this -- it appears that gcc produces the error while investigating the overload set. If I make the declaration of X::foo work for N::Q, then gcc apparently still doesn't want to call it. That doesn't make this bug any less serious. W. -- bangerth at dealii dot org changed: What|Removed |Added Summary|invalid Koenig lookup |invalid Koenig ||lookup/incorrect SFINAE http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33518
[Bug debug/33537] [4.0/4.1/4.2/4.3 regression] C++ arguments passed by invisible reference have wrong type
--- Comment #3 from pluto at agmk dot net 2007-09-23 18:31 --- (In reply to comment #0) > If this function is called from GDB, and the called function modifies > its argument, it will end up modifying the original copy. > It's supposed to get a temporary copy. compiler does the temporary copy. please look at this example: $ cat 33537.cpp struct X { X(); X( X const& ); int var; }; int f( X arg ) { arg.var = 0; return arg.var; } int main() { X x; f( x ); return 0; } at tree dump we see the temporary object passed to f(X) by reference: int f(X) (arg) { arg->var = 0; return 0; } int main() () { struct X x; struct X D.2360; __comp_ctor (&x); __comp_ctor (&D.2360, &x); f (&D.2360); return 0; } -- pluto at agmk dot net changed: What|Removed |Added CC||pluto at agmk dot net http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33537
[Bug debug/33537] [4.0/4.1/4.2/4.3 regression] C++ arguments passed by invisible reference have wrong type
--- Comment #4 from drow at gcc dot gnu dot org 2007-09-23 18:40 --- Subject: Re: [4.0/4.1/4.2/4.3 regression] C++ arguments passed by invisible reference have wrong type On Sun, Sep 23, 2007 at 06:31:42PM -, pluto at agmk dot net wrote: > > If this function is called from GDB, and the called function modifies > > its argument, it will end up modifying the original copy. > > It's supposed to get a temporary copy. > > compiler does the temporary copy. please look at this example: That's why the bug report said "from GDB". It's a debug info bug, not a C++ wrong-code bug. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33537
[Bug c++/26404] g++ seems to substitute template parameter too early
--- Comment #3 from pcarlini at suse dot de 2007-09-23 18:58 --- For the record, Comeau also rejects it. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26404
[Bug c++/33409] Overload Resolution Succeeds When Actually Ambiguous.
--- Comment #2 from bangerth at dealii dot org 2007-09-23 19:44 --- icc (and EDG-based compiler) accepts this code, but sunCC rejects it as ambiguous. I don't know off the top of my head who's right and who is not, but I suspect that it would be gcc and icc who are right. W. -- bangerth at dealii dot org changed: What|Removed |Added CC||bangerth at dealii dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33409
[Bug c++/30857] [4.1/4.2/4.3 regression] accepts both explicit instantiation and explicit specialization, duplicate explicit instantiations, etc.
--- Comment #2 from simartin at gcc dot gnu dot org 2007-09-23 19:49 --- I've done tests with the current mainline and I wonder if this PR is still "valid"... We report an error for the following three cases: 1. Multiple specializations: template class A {}; template<> class A {}; template<> class A {}; 2. Multiple explicit instantiations: template class B {}; template class B; template class B; 3. Specialization following an explicit instantiation: template class D {}; template class D; template<> class D {}; The fact that we accept an explicit instantiation after a specialization is due to DR 259. -- simartin at gcc dot gnu dot org changed: What|Removed |Added CC||simartin at gcc dot gnu dot ||org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30857
[Bug c++/33518] invalid Koenig lookup/incorrect SFINAE
--- Comment #5 from rguenth at gcc dot gnu dot org 2007-09-23 19:58 --- This looks related to PR17410. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33518
[Bug c++/33518] invalid Koenig lookup/incorrect SFINAE
--- Comment #6 from bangerth at dealii dot org 2007-09-23 20:57 --- (In reply to comment #5) > This looks related to PR17410. Uh, is this really the one you meant? PR 17410 is about template template parameters and nested types, neither of which are at hand here... W. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33518
[Bug fortran/33538] New: bootstrap break in fortran on *-apple-darwin r128671
svn r128671 causes a bootstrap failure on *apple-darwin: (gdb) r Starting program: /Volumes/development/gcc/head/objdir/gcc/f951 /Volumes/development/gcc/head/gcc/libgfortran/intrinsics/selected_int_kind.f90 -feliminate-unused-debug-symbols -fPIC -quiet -dumpbase selected_int_kind.f90 -mmacosx-version-min=10.4 -auxbase-strip .libs/selected_int_kind.o -g -O2 -Wall -version -fno-repack-arrays -fno-underscoring -fallow-leading-underscore -fno-common -I . -fintrinsic-modules-path finclude -o selected_int_kind.s Reading symbols for shared libraries .++ done GNU F95 (GCC) version 4.3.0 20070923 (experimental) [trunk revision 128695] (powerpc-apple-darwin8.10.0) compiled by GNU C version 4.3.0 20070923 (experimental) [trunk revision 128695], GMP version 4.2.2, MPFR version 2.3.0. GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_PROTECTION_FAILURE at address: 0x000c 0x00177360 in dbxout_end_source_file (line=4) at /Volumes/development/gcc/head/gcc/gcc/dbxout.c:1181 1181 if (current_file->bincl_status == BINCL_PROCESSED) (gdb) bt #0 0x00177360 in dbxout_end_source_file (line=4) at /Volumes/development/gcc/head/gcc/gcc/dbxout.c:1181 #1 0x00065b28 in gfc_advance_line () at /Volumes/development/gcc/head/gcc/gcc/fortran/scanner.c:322 #2 0x000675b8 in gfc_next_char_literal (in_string=4) at /Volumes/development/gcc/head/gcc/gcc/fortran/scanner.c:754 #3 0x000678d8 in gfc_next_char () at /Volumes/development/gcc/head/gcc/gcc/fortran/scanner.c:926 #4 0x000587f8 in gfc_match_literal_constant (result=0xbfffe900, signflag=0) at /Volumes/development/gcc/head/gcc/gcc/fortran/primary.c:785 #5 0x000449fc in match_mult_operand (result=0xbfffe968) at /Volumes/development/gcc/head/gcc/gcc/fortran/matchexp.c:161 #6 0x00044cf8 in match_add_operand (result=0xbfffe9e8) at /Volumes/development/gcc/head/gcc/gcc/fortran/matchexp.c:382 #7 0x00044f84 in match_level_2 (result=0xbfffea68) at /Volumes/development/gcc/head/gcc/gcc/fortran/matchexp.c:501 #8 0x000450f8 in match_level_3 (result=0xbfffead8) at /Volumes/development/gcc/head/gcc/gcc/fortran/matchexp.c:572 #9 0x00045240 in match_and_operand (result=0xbfffeb58) at /Volumes/development/gcc/head/gcc/gcc/fortran/matchexp.c:620 #10 0x000454ac in match_or_operand (result=0xbfffebc8) at /Volumes/development/gcc/head/gcc/gcc/fortran/matchexp.c:743 #11 0x000455d0 in match_equiv_operand (result=0xbfffec38) at /Volumes/development/gcc/head/gcc/gcc/fortran/matchexp.c:786 #12 0x000456f4 in match_level_5 (result=0xbfffeca8) at /Volumes/development/gcc/head/gcc/gcc/fortran/matchexp.c:832 #13 0x0004489c in gfc_match_expr (result=0x42510c24) at /Volumes/development/gcc/head/gcc/gcc/fortran/matchexp.c:891 #14 0x8ef8 in gfc_match_array_spec (asp=0xbfffedb4) at /Volumes/development/gcc/head/gcc/gcc/fortran/array.c:297 #15 0x0001a078 in gfc_match_data_decl () at /Volumes/development/gcc/head/gcc/gcc/fortran/decl.c:1456 #16 0x0004fee0 in match_word (str=0x4 , subr=0x19e18 , old_locus=0xbfffef0c) at /Volumes/development/gcc/head/gcc/gcc/fortran/parse.c:64 #17 0x000505e8 in decode_statement () at /Volumes/development/gcc/head/gcc/gcc/fortran/parse.c:133 #18 0x000512f4 in next_statement () at /Volumes/development/gcc/head/gcc/gcc/fortran/parse.c:505 #19 0x0005319c in parse_spec (st=ST_DATA_DECL) at /Volumes/development/gcc/head/gcc/gcc/fortran/parse.c:1958 #20 0x00054d18 in parse_progunit (st=ST_BLOCK_DATA) at /Volumes/development/gcc/head/gcc/gcc/fortran/parse.c:2965 #21 0x000552b4 in gfc_parse_file () at /Volumes/development/gcc/head/gcc/gcc/fortran/parse.c:3285 #22 0x0007f684 in gfc_be_parse_file (set_yydebug=4) at /Volumes/development/gcc/head/gcc/gcc/fortran/f95-lang.c:258 #23 0x000df3a8 in toplev_main (argc=6665944, argv=0x406c6380) at /Volumes/development/gcc/head/gcc/gcc/toplev.c:1045 #24 0x2430 in _start () #25 0x2134 in start () Darwin is an arch which uses stabs, at least for Tiger and below. Aka, 10.8 and lower. -- Summary: bootstrap break in fortran on *-apple-darwin r128671 Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: andreast at gcc dot gnu dot org GCC build triplet: *-apple-darwin GCC host triplet: *-apple-darwin GCC target triplet: *-apple-darwin http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33538
[Bug fortran/33539] New: Too much noise on zero-length character strings
Hi, gfortran is way too noisy for zero-length character strings. I get: % gfc gfcbug71.f90 gfcbug71.f90:3.44: character(len=*), parameter :: prefix = "" 1 Warning: CHARACTER variable has zero length at (1) gfcbug71.f90:7.14: use gfcbug71 1 Warning: CHARACTER variable has zero length at (1) % cat gfcbug71.f90 module gfcbug71 implicit none character(len=*), parameter :: prefix = "" end module gfcbug71 program test use gfcbug71 implicit none print *, "prefix = ", prefix end program test The first warning is a nuisance, but the second one when USEing the module is really annoying. This should not be the default. -- Summary: Too much noise on zero-length character strings Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: anlauf at gmx dot de GCC host triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33539
[Bug c++/30080] incorrect code generation, possibly related to casting/aliasing
--- Comment #7 from pcarlini at suse dot de 2007-09-23 22:55 --- Double checked, closing. -- pcarlini at suse dot de changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Known to work||4.1.2 4.2.1 4.3.0 Resolution||WORKSFORME http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30080
[Bug c++/30303] [4.2/4.3 regression] ICE with invalid constructor definition
--- Comment #8 from pcarlini at suse dot de 2007-09-23 23:02 --- Any news? ;) -- pcarlini at suse dot de changed: What|Removed |Added CC||pcarlini at suse dot de http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30303
[Bug c++/33540] New: internal compiler error
The error-producing command line is g++ -Wall -O3 -march=native -c videospeed.cc videospeed.cc: In function 'int main(int, char**)': videospeed.cc:275: internal compiler error: in expand_simple_binop, at optabs.c:1158 Adding -save-temps gives a new warning "SSE instruction set disabled, using 387 arithmetics", and the compile succeeds. Also, changing to -march=i386 or -march=i686 avoids the problem. I will attach the g++ -E output, which does trigger the error. -- Summary: internal compiler error Product: gcc Version: 4.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ebuddington at wesleyan dot edu 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=33540
[Bug middle-end/33540] internal compiler error
--- Comment #1 from ebuddington at wesleyan dot edu 2007-09-24 00:52 --- Created an attachment (id=14247) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14247&action=view) error-producing test case test case: rename to test.cc, and 'g++ -Wall -O3 -march=native -c test.cc' -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33540
[Bug middle-end/20222] Double load of volatile operand for abs builtin
--- Comment #4 from eweddington at cso dot atmel dot com 2007-09-24 01:45 --- Subject: RE: Double load of volatile operand for abs builtin > --- Comment #3 from rguenth at gcc dot gnu dot org > 2007-09-23 12:35 --- > Please re-confirm this if this still happens on the mainline > as I cannot > reproduce > this with a i686 target. I cannot reproduce bug with 4.3.0 20070914 snapshot. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20222
[Bug middle-end/33540] internal compiler error
--- Comment #2 from pinskia at gcc dot gnu dot org 2007-09-24 02:12 --- Can you provide the -v output? This is needed if you use -march=native. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33540
[Bug middle-end/33540] internal compiler error
--- Comment #3 from ebuddington at wesleyan dot edu 2007-09-24 02:39 --- bash-2.05b$ gcc -v Using built-in specs. Target: i686-pc-linux-gnu Configured with: ../gcc-4.2.1/configure --prefix=/packages/gcc/4.2.1/any --exec-prefix=/packages/gcc/4.2.1/i386 Thread model: posix gcc version 4.2.1 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33540
[Bug c++/26404] g++ seems to substitute template parameter too early
--- Comment #4 from bangerth at dealii dot org 2007-09-24 03:52 --- It's only a diagnostic problem: the template type 'int' in Tag::type is non-deductible, so the compiler can't find the primary template. The code in therefore in fact invalid. You can make it valid by explicitly specifying the template argument as in template <> void foo(Tag::type t) {} Once one knows what the problem is, the error message even makes some sense. I don't know how to improve it, since the compiler certainly can't tell that the primary template uses a template parameter in a non-deducible context here. W. -- bangerth at dealii dot org changed: What|Removed |Added CC||bangerth at dealii dot org Status|NEW |RESOLVED Resolution||INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26404
[Bug middle-end/20222] Double load of volatile operand for abs builtin
--- Comment #5 from bangerth at dealii dot org 2007-09-24 03:58 --- Appears fixed now. -- bangerth at dealii dot org changed: What|Removed |Added CC||bangerth at dealii dot org Status|WAITING |RESOLVED Resolution||FIXED Target Milestone|--- |4.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20222
[Bug middle-end/28755] [4.0/4.1/4.2 Regression] duplicate members of arrays
--- Comment #8 from jakub at gcc dot gnu dot org 2007-09-24 06:36 --- Fixed on the trunk. -- jakub at gcc dot gnu dot org changed: What|Removed |Added Known to work|2.95.3 |2.95.3 4.3.0 Summary|[4.0/4.1/4.2/4.3 Regression]|[4.0/4.1/4.2 Regression] |duplicate members of arrays |duplicate members of arrays http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28755