[Bug inline-asm/64119] asm triggers local register variable data corruption
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64119 Markus Trippelsdorf changed: What|Removed |Added CC||trippels at gcc dot gnu.org Resolution|FIXED |INVALID
[Bug sanitizer/64131] [5 Regression] libsanitizer fails to build for AARCH64 with the glibc from the trunk
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64131 clyon at gcc dot gnu.org changed: What|Removed |Added CC||clyon at gcc dot gnu.org --- Comment #2 from clyon at gcc dot gnu.org --- Hi Andrew, I've been made aware of this problem a few days ago by Marcus. I plan to work on cleaning libsanitizer a bit (the other cleanup I'm working on first is the old_[gu]id type change in the kernel).
[Bug tree-optimization/64126] [5.0 Regression] FAIL: gcc.dg/pr37289.c scan-tree-dump original "-\\(long unsigned int\\) x"
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64126 Richard Biener changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org --- Comment #3 from Richard Biener --- Testing a fix.
[Bug c++/64127] [5.0 regression] ICE on invalid: tree check: expected identifier_node, have template_id_expr in cp_parser_diagnose_invalid_type_name, at cp/parser.c:2980
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64127 Richard Biener changed: What|Removed |Added Target Milestone|--- |5.0
[Bug tree-optimization/64130] vrp: handle non zero constant divided by range cannot be zero.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64130 Richard Biener changed: What|Removed |Added Keywords||missed-optimization Status|UNCONFIRMED |NEW Last reconfirmed||2014-12-01 Ever confirmed|0 |1 --- Comment #4 from Richard Biener --- (In reply to Andi Kleen from comment #3) > You're right. I actually meant > > x >= maxval(typeof(a)), x / a cannot be 0. > > Corrected test case (assuming 64bit target): > > #include > > int fsigned(int a) > { > return 0x1fffL / a == 0; > } 0x1fffL / 0x2000 == 0 Maybe you meant 0x1fffL / a == 0? > int funsigned(unsigned a) > { > return 0x1fffL / a == 0; > } > > >So this should be optimized to a > 100 instead. > > Yes this would make sense too. Yes.
[Bug tree-optimization/63738] [4.9/5 Regression] ssa corruption when compiled with -O3
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63738 --- Comment #10 from Richard Biener --- Author: rguenth Date: Mon Dec 1 09:35:15 2014 New Revision: 218201 URL: https://gcc.gnu.org/viewcvs?rev=218201&root=gcc&view=rev Log: 2014-12-01 Richard Biener PR tree-optimization/63738 * gcc.dg/torture/pr63738.c: Fix call to setjmp. Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/torture/pr63738.c
[Bug tree-optimization/63738] [4.9/5 Regression] ssa corruption when compiled with -O3
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63738 --- Comment #11 from Richard Biener --- Author: rguenth Date: Mon Dec 1 09:36:56 2014 New Revision: 218202 URL: https://gcc.gnu.org/viewcvs?rev=218202&root=gcc&view=rev Log: 2014-12-01 Richard Biener PR tree-optimization/63738 * gcc.dg/torture/pr63738.c: Fix call to setjmp. Modified: branches/gcc-4_9-branch/gcc/testsuite/ChangeLog branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/torture/pr63738.c
[Bug gcov-profile/64123] [5 Regression] Instrumented Firefox segfaults on start
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123 Richard Biener changed: What|Removed |Added Target Milestone|--- |5.0
[Bug target/64134] (vector float){0, 0, b, a} Uses stores when it does need to
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64134 ktkachov at gcc dot gnu.org changed: What|Removed |Added Keywords||missed-optimization Status|UNCONFIRMED |NEW Last reconfirmed||2014-12-01 CC||alan.lawrence at arm dot com, ||ktkachov at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #2 from ktkachov at gcc dot gnu.org --- Confirmed. CC'ing Alan, he might find this of interest
[Bug tree-optimization/64121] [5 Regression] ICE: SSA corruption with -O -fsanitize=undefined
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64121 --- Comment #2 from Richard Biener --- # xp_1(ab) = PHI base: if (x_5(D) != 0) goto ; else goto ; : xp.0_6 = xp_1(ab); xp_7(ab) = xp.0_6 + 4; _15 = __builtin_object_size (ip_8(D), 0); _16 = ip_8(D); UBSAN_OBJECT_SIZE (_16, 4, _15, 0); _9 = *ip_8(D); _17 = __builtin_object_size (xp_1(ab), 0); ... _13 = &base + _12; gotovar.1_14 = _13; goto gotovar.1_14; xp_1 and xp_7 are life at the same time - the above is from 017t.ubsan. You may not refer to xp_1(ab) but should use xp.0_6 here.
[Bug tree-optimization/64121] [5 Regression] ICE: SSA corruption with -O -fsanitize=undefined
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64121 Richard Biener changed: What|Removed |Added Priority|P3 |P1
[Bug bootstrap/64116] ice with -O3 -fgraphite-identity on bootstrap
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64116 Richard Biener changed: What|Removed |Added Status|UNCONFIRMED |WAITING Last reconfirmed||2014-12-01 Ever confirmed|0 |1 --- Comment #2 from Richard Biener --- Please provide preprocessed source and the output of appending -v - esp. important because you are using -march-native.
[Bug target/64115] [4.9/5 Regression] ICE: : in rs6000_delegitimize_address, at config/rs6000/rs6000.c:7051
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64115 Richard Biener changed: What|Removed |Added Priority|P3 |P2 Target Milestone|--- |4.9.3
[Bug tree-optimization/64121] [5 Regression] ICE: SSA corruption with -O -fsanitize=undefined
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64121 Marek Polacek changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |mpolacek at gcc dot gnu.org --- Comment #3 from Marek Polacek --- Thanks. Let me dig into this.
[Bug tree-optimization/64111] [5.0 regression] ICE: conversion of register to a different size
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64111 Richard Biener changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org Target Milestone|--- |5.0 --- Comment #17 from Richard Biener --- unit size align 64 symtab 0 alias set -1 canonical type 0x10001dedc8 precision 64 min max pointer_to_this > V4DI size unit size align 256 symtab 0 alias set -1 canonical type 0x10001e86b0 nunits 4 pointer_to_this > arg 0 unsigned V4DI size unit size align 256 symtab 0 alias set 6 canonical type 0x7686a000 nunits 4 pointer_to_this > var def_stmt vect_var_.22_70 = MEM[(struct QAbstractAnimationTimer * const &)vect_ppretmp.18_68]; version 70>> It looks like PCH causes integer constant sharing to break down. (gdb) p debug_tree ((tree)0x76851de0) constant 256> $2 = void (gdb) p debug_tree ((tree)0x110d40) constant 256> the constant is above the integer share limit thus it only gets shared via the int_cst_hash_table hashtable which is collectible: static GTY ((if_marked ("ggc_marked_p"), param_is (union tree_node))) htab_t int_cst_hash_table; but we are supposed to save that into the PCH file and restore it. tree-cfg.c relies on this: else if (TREE_CODE (op) == SSA_NAME && TYPE_SIZE (TREE_TYPE (expr)) != TYPE_SIZE (TREE_TYPE (op))) { error ("conversion of register to a different size"); though from a quick grep it doesn't seem to be the only one doing so: fold-const.c: return ((TYPE_SIZE (TREE_TYPE (arg0)) == TYPE_SIZE (TREE_TYPE (arg1)) tree-inline.c: gcc_checking_assert (TYPE_SIZE (type) == TYPE_SIZE (TYPE_MAIN_VARIANT (type))); tree-inline.c: gcc_checking_assert (TYPE_SIZE_UNIT (type) == TYPE_SIZE_UNIT (TYPE_MAIN_VARIANT (type))); tree-inline.c:|| TYPE_SIZE (TREE_TYPE (p)) == TYPE_SIZE (TREE_TYPE (value))) tree-inline.c: else if (TYPE_SIZE (req_type) == TYPE_SIZE (TREE_TYPE (replace_info->new_tree))) Ah, the issue might be that we have (on the 4.8 branch): /* Return the hash code code X, an INTEGER_CST. */ static hashval_t int_cst_hash_hash (const void *x) { const_tree const t = (const_tree) x; return (TREE_INT_CST_HIGH (t) ^ TREE_INT_CST_LOW (t) ^ htab_hash_pointer (TREE_TYPE (t))); } thus we hash in the pointer value ... (oops). Similar on trunk: /* Return the hash code code X, an INTEGER_CST. */ hashval_t int_cst_hasher::hash (tree x) { const_tree const t = x; hashval_t code = htab_hash_pointer (TREE_TYPE (t)); int i; for (i = 0; i < TREE_INT_CST_NUNITS (t); i++) code ^= TREE_INT_CST_ELT (t, i); return code; } I'm quite sure that doesn't survive pointer-swizzling with PCH. I suggest to use a better hash than a simple XOR and rather than hashing in TREE_TYPE hash in TYPE_UID.
[Bug middle-end/64111] [5.0 regression] ICE: conversion of register to a different size
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64111 --- Comment #18 from Richard Biener --- I've posted a patch for trunk. The following patch for the 4.8 branch fixes the testcase: Index: gcc/tree.c === --- gcc/tree.c (revision 218016) +++ gcc/tree.c (working copy) @@ -1130,7 +1130,7 @@ int_cst_hash_hash (const void *x) const_tree const t = (const_tree) x; return (TREE_INT_CST_HIGH (t) ^ TREE_INT_CST_LOW (t) - ^ htab_hash_pointer (TREE_TYPE (t))); + ^ TYPE_UID (TREE_TYPE (t))); } /* Return nonzero if the value represented by *X (an INTEGER_CST tree node)
[Bug libstdc++/64128] Let vector take advantage of malloc_usable_size for malloc-using allocators
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64128 --- Comment #2 from Jonathan Wakely --- Comment on attachment 34150 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34150 testcase Users can specialize std::allocator so we'd need to use SFINAE hacks to find out if __gnu_cxx::new_allocator is the base class and if it's unspecialized. It's a silly test though, if you care about performance there use reserve().
[Bug libstdc++/64135] New: Allocator base classes should use reserved names
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64135 Bug ID: 64135 Summary: Allocator base classes should use reserved names Product: gcc Version: 5.0 Status: UNCONFIRMED Keywords: rejects-valid Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: redi at gcc dot gnu.org This is a valid program and should compile: #define new_allocator 1 #include int main() { }
[Bug middle-end/64101] GCC considers that the erf math function does not set errno
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64101 --- Comment #2 from niva at niisi dot msk.ru --- Please explain why erf is marked as 'const' and does not use ATTR_MATHFN_FPROUNDING_ERRNO? ISO C does not say that erf may not set errno. And POSIX directly requires that erf, erff, erfl set errno=ERANGE in case of underflow. Here is another example: #include #include #include extern double res; int main () { errno = 0; res = erf (-1.2553634935946022721708238314E-308); printf ("errno=%d, res=%g\n", errno, res); return 0; } As a result of mips64-none-elf-gcc -O1 -S tst2_erf.c -o tst2_erf.s the following code is generated: main: ... addiu$sp,$sp,-40 sd$31,32($sp) sw$0,%gp_rel(errno)($28) jalerf ldc1$f12,%gp_rel($LC0)($28) sdc1$f0,%gp_rel(res)($28) lui$4,%hi($LC1)# printf arg 0: format line addiu$4,$4,%lo($LC1) dmfc1$6,$f0# printf arg 2: res jalprintf move$5,$0#! printf arg 1: zero (must be errno) move$2,$0 ld$31,32($sp) j$31 addiu$sp,$sp,40 Zero ($0) is passed to printf instead of errno. If -fno-builtin-printf is used the compiler generates lw$5,%gp_rel(errno)($28) instead of move$5,$0 in the delay slot after "jal printf". В Птн, 28/11/2014 в 13:24 +, rguenth at gcc dot gnu.org пишет: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64101 > > Richard Biener changed: > >What|Removed |Added > > Target||x86_64-*-*, mips64-none-elf > Status|UNCONFIRMED |NEW >Last reconfirmed||2014-11-28 > Ever confirmed|0 |1 > > --- Comment #1 from Richard Biener --- > I think the issue is that you don't use the result of erf() and the function > is marked as 'const' - thus does not use ATTR_MATHFN_FPROUNDING_ERRNO. > If you make 'res' global then it will work. >
[Bug bootstrap/64102] ARM bootstrap fails with segfault with -mapcs in BOOT_CFLAGS
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64102 --- Comment #3 from ktkachov at gcc dot gnu.org --- Hmm... Trying to bootstrap 4.9 with the same configuration and -mapcs results in an ICE in stage2 when compiling haifa-sched.c $SRC/gcc/haifa-sched.c:6507:1: internal compiler error: in lra_create_copy, at lra.c:1532 } ^ 0x6f240b lra_create_copy(int, int, int) $SRC/gcc/lra.c:1532 0x70f447 process_bb_lives $SRC/gcc/lra-lives.c:568 0x710761 lra_create_live_ranges(bool) $SRC/gcc/lra-lives.c:1008 0x6f3f33 lra(_IO_FILE*) $SRC/gcc/lra.c:2372 0x6ad3a1 do_reload $SRC/gcc/ira.c:5457 0x6ad717 rest_of_handle_reload $SRC/gcc/ira.c:5598 0x6ad75f execute $SRC/gcc/ira.c:5627 Please submit a full bug report, with preprocessed source if appropriate. I didn't try without -mapcs on 4.9 though, so need to check that first.
[Bug libstdc++/64128] Let vector take advantage of malloc_usable_size for malloc-using allocators
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64128 Markus Trippelsdorf changed: What|Removed |Added CC||trippels at gcc dot gnu.org --- Comment #3 from Markus Trippelsdorf --- Or LD_PRELOAD a different malloc implementation like llalloc or tcmalloc. llalloc (http://locklessinc.com/articles/allocator_tricks/) for example, speeds up the testcase by 36% on my machine.
[Bug c++/60894] [4.8/4.9/5 Regression] Use of redundant struct keyword in function prototype combined with using statement causes compilation error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60894 --- Comment #11 from fabien at gcc dot gnu.org --- I posted a patch here: https://gcc.gnu.org/ml/gcc-patches/2014-09/msg02190.html
[Bug fortran/60898] [4.8/4.9/5 Regression] model compile error with gfortran 4.7 and gcc 4.9
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60898 Richard Biener changed: What|Removed |Added Priority|P3 |P4
[Bug target/60925] [4.9/5 Regression] hppa: can't find a register in class 'R1_REGS' while reloading 'asm'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60925 Richard Biener changed: What|Removed |Added Keywords||ice-on-valid-code, ra Priority|P3 |P4
[Bug debug/61014] [4.8/4.9/5 Regression] gdb can't find symbol of derived data type array in nested subroutine
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61014 Richard Biener changed: What|Removed |Added Priority|P3 |P4
[Bug c++/61018] [4.8/4.9/5 Regression] -Wvarargs does not print warning for member functions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61018 Richard Biener changed: What|Removed |Added Priority|P3 |P2 Target Milestone|5.0 |4.8.4
[Bug plugins/61176] plugin builds including gimple.h not building
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61176 Richard Biener changed: What|Removed |Added Target Milestone|4.9.3 |--- Summary|[4.9/5 Regression] plugin |plugin builds including |builds including gimple.h |gimple.h not building |not building| Known to fail|4.10.0 |5.0 --- Comment #12 from Richard Biener --- Surely not a "regression" in the classical sense but a plugin bug or a plugin (stable-) API deficiency.
[Bug tree-optimization/61194] [4.9/5 Regression] vectorization failed with "bit-precision arithmetic not supported" even if conversion to int is requested
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61194 Richard Biener changed: What|Removed |Added Priority|P3 |P2 --- Comment #18 from Richard Biener --- There is a proposed patch to if-conversion that solves the multiple-use issue by duplicating the involved statements (ugh).
[Bug tree-optimization/63551] [4.9/5 Regression] wrong code (segfaults) at -Os on x86_64-linux-gnu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63551 --- Comment #8 from Martin Jambor --- Author: jamborm Date: Mon Dec 1 12:05:41 2014 New Revision: 218205 URL: https://gcc.gnu.org/viewcvs?rev=218205&root=gcc&view=rev Log: 2014-12-01 Martin Jambor PR ipa/63551 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Convert value of the argument to the type of the value in the condition. testsuite/ * gcc.dg/ipa/pr63551.c: New test. * gcc.dg/ipa/pr64041.c: Likewise. Added: trunk/gcc/testsuite/gcc.dg/ipa/pr63551.c trunk/gcc/testsuite/gcc.dg/ipa/pr64041.c Modified: trunk/gcc/ChangeLog trunk/gcc/ipa-inline-analysis.c trunk/gcc/testsuite/ChangeLog
[Bug c++/64110] [5 Regression] ICE: Max. number of generated reload insns per insn is achieved (90)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64110 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #5 from Jakub Jelinek --- Simplified testcase (-O3 -march=core-avx2): int foo (void); int a; short *b; void bar (short x) { while (a--) { int i, j = foo (); for (i = 0; i < j; ++i) *b++ = x; } }
[Bug tree-optimization/63941] [5 Regression] ICE on valid code at -O3 and above on x86_64-linux-gnu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63941 --- Comment #3 from ienkovich at gcc dot gnu.org --- Author: ienkovich Date: Mon Dec 1 12:19:28 2014 New Revision: 218206 URL: https://gcc.gnu.org/viewcvs?rev=218206&root=gcc&view=rev Log: gcc/ PR tree-optimization/63941 * tree-if-conv.c (add_to_predicate_list): Delete wrong assertion that DOM_BB has non-true predicate, conditionally set non-true predicate for BB. gcc/testsuite/ PR tree-optimization/63941 * gcc.dg/torture/pr63941.c: New test. Added: trunk/gcc/testsuite/gcc.dg/torture/pr63941.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-if-conv.c
[Bug tree-optimization/61203] [4.8/4.9/5 Regression] g++.old-deja/g++.jason/rvalue2.C FAILs with -O2 -fno-inline
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61203 Richard Biener changed: What|Removed |Added Status|UNCONFIRMED |WAITING Last reconfirmed||2014-12-01 CC||jason at gcc dot gnu.org Ever confirmed|0 |1 Known to fail|4.10.0 |5.0 --- Comment #4 from Richard Biener --- (In reply to Michael Matz from comment #3) > (In reply to Jakub Jelinek from comment #2) > > same spot. No idea what to do against this though, treating a CLOBBER as a > > barrier for propagation of addresses to other local variables would penalize > > stuff way too much. > > Conceptually this should be the right thing. The clobber says > the object doesn't exist anymore, so also forming its address should be > invalid/implementation defined. Either the clobber should move or it should > be a barrier also for addresses of the clobbered object. I'm not sure if > that > really would penalize much. But I don't see how it could be easily implemented. > > And giving up on stack slot sharing because of such an > > artificial testcase is not useful either. > > Perhaps expansion could detect the situation (address of clobbered object > leaked after the clobber) and disable sharing just for such problematic > objects. Likewise. (it would be whether the address escaped the function before the clobber) I'd rather say that optimization is permitted to make &a and A(a).get_this () equal. Btw, there is also the missed optimization that get_this, discovered as 'const', passed &decl can only return either NULL or an address based on &decl and thus the result cannot compare equal to &a. So even without inlining we could statically compute the comparison.
[Bug c/61240] [4.8/4.9/5 Regression] Incorrect warning "integer overflow in expression" on pointer-pointer subtraction
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61240 Richard Biener changed: What|Removed |Added Keywords||diagnostic, ||missed-optimization Priority|P3 |P2 --- Comment #8 from Richard Biener --- So this is also a missed optimization on the C++ side? Btw, the C++ FE warns for me as well (on trunk).
[Bug ipa/61548] [5 Regression] FAIL: gcc.dg/tls/alias-1.c (internal compiler error)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61548 Richard Biener changed: What|Removed |Added Priority|P3 |P1
[Bug target/61622] [4.8 regression] internal compiler error: in simplify_const_unary_operation, at simplify-rtx.c:1508
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61622 Richard Biener changed: What|Removed |Added Priority|P3 |P2
[Bug target/61878] Missing intrinsic functions in avx512intrin.h
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61878 Richard Biener changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #4 from Richard Biener --- Fixed.
[Bug lto/61886] [4.8/4.9/5 Regression] LTO breaks fread with _FORTIFY_SOURCE=2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61886 Richard Biener changed: What|Removed |Added Priority|P3 |P2
[Bug target/62231] [4.8/4.9 regression] Exception handling broken on powerpc-e500v2-linux-gnuspe
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62231 Richard Biener changed: What|Removed |Added Priority|P3 |P4
[Bug middle-end/62247] [5.0 Regression] FAIL: g++.dg/abi/anon3.C -std=c++98 scan-assembler .weak(_definition)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62247 Richard Biener changed: What|Removed |Added Priority|P3 |P1
[Bug pch/63319] [5 Regression] ICE: Segmentation fault building qt5 with pch
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63319 Richard Biener changed: What|Removed |Added Status|UNCONFIRMED |WAITING Last reconfirmed||2014-12-01 Ever confirmed|0 |1
[Bug c/61240] [4.8/4.9/5 Regression] Incorrect warning "integer overflow in expression" on pointer-pointer subtraction
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61240 --- Comment #9 from Marek Polacek --- I view this as a problem that we fold too early - I think this bug (and its kin) are to be solved with delayed folding.
[Bug other/63630] [5.0 Regression] internal compiler error: Spill fail with invalid register
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63630 Richard Biener changed: What|Removed |Added Priority|P3 |P4
[Bug libstdc++/64132] [5.0 Regression] FAIL: 22_locale/numpunct/members/char/3.cc execution test
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64132 Richard Biener changed: What|Removed |Added Target Milestone|--- |5.0
[Bug c++/64110] [5 Regression] ICE: Max. number of generated reload insns per insn is achieved (90)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64110 Jakub Jelinek changed: What|Removed |Added CC|jakub at redhat dot com|vmakarov at gcc dot gnu.org --- Comment #6 from Jakub Jelinek --- So, before LRA we have: (insn 27 36 28 2 (set (reg:SI 178 [ x ]) (reg:SI 5 di [ x ])) pr64110.C:7 90 {*movsi_internal} (expr_list:REG_DEAD (reg:SI 5 di [ x ]) (nil))) (insn 28 27 29 2 (set (reg/v:HI 177 [ x ]) (subreg:HI (reg:SI 178 [ x ]) 0)) pr64110.C:7 92 {*movhi_internal} (expr_list:REG_DEAD (reg:SI 178 [ x ]) (nil))) (note 29 28 89 2 NOTE_INSN_FUNCTION_BEG) (insn 89 29 247 2 (set (reg:V16HI 214 [ vect_cst_.21 ]) (vec_duplicate:V16HI (reg/v:HI 177 [ x ]))) 4254 {*vec_dupv16hi} (nil)) and *vec_dupv16hi is: (define_insn "*vec_dup" [(set (match_operand:AVX2_VEC_DUP_MODE 0 "register_operand" "=x,x,x") (vec_duplicate:AVX2_VEC_DUP_MODE (match_operand: 1 "nonimmediate_operand" "m,x,!r")))] "TARGET_AVX2" Thus, I don't see a bug on the md side, I would have expected LRA to just use (vec_duplicate:V16HI (reg/v:HI 5 di)) on the rhs (yes, it will be split after reload). But, during the ICE I see: (insn 27 36 28 2 (set (reg:SI 178 [ x ]) (reg:SI 5 di [ x ])) pr64110.C:7 90 {*movsi_internal} (expr_list:REG_DEAD (reg:SI 5 di [ x ]) (nil))) (insn 28 27 29 2 (set (reg/v:HI 177 [ x ]) (subreg:HI (reg:SI 178 [ x ]) 0)) pr64110.C:7 92 {*movhi_internal} (expr_list:REG_DEAD (reg:SI 178 [ x ]) (nil))) (note 29 28 262 2 NOTE_INSN_FUNCTION_BEG) (insn 262 29 263 2 (set (reg/v:HI 218 [orig:177 x ] [177]) (reg/v:HI 177 [ x ])) 92 {*movhi_internal} (nil)) (insn 263 262 264 2 (set (reg/v:HI 219 [orig:177 x ] [177]) (reg/v:HI 218 [orig:177 x ] [177])) 92 {*movhi_internal} (nil)) (insn 264 263 265 2 (set (reg/v:HI 220 [orig:177 x ] [177]) (reg/v:HI 219 [orig:177 x ] [177])) 92 {*movhi_internal} (nil)) ... (repeated many times for pseudos 221, 222, ... 305) (insn 350 349 351 2 (set (reg/v:HI 306 [orig:177 x ] [177]) (reg/v:HI 305 [orig:177 x ] [177])) 92 {*movhi_internal} (nil)) (insn 351 350 89 2 (set (reg/v:HI 217 [orig:177 x ] [177]) (reg/v:HI 306 [orig:177 x ] [177])) 92 {*movhi_internal} (nil)) (insn 89 351 261 2 (set (reg:V16HI 216 [orig:214 vect_cst_.21 ] [214]) (vec_duplicate:V16HI (reg/v:HI 217 [orig:177 x ] [177]))) 4254 {*vec_dupv16hi} (nil)) Vlad, can you please have a look? Thanks.
[Bug target/62231] [4.8/4.9 regression] Exception handling broken on powerpc-e500v2-linux-gnuspe
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62231 --- Comment #6 from Arseny Solokha --- (In reply to manfred.rudigier from comment #3) > I was probably to enthusiastic, the problem is still there, even in GCC > 4.9.2. In order to reproduce the bug, you either have to use a root file > system which was also built with GCC 4.8.3 or 4.9.2, or you just link the > example program statically (which is probably the easier thing). OK, when I've built the program statically I reproduced the issue.
[Bug target/64055] [5 regression] gnat.dg/derived_aggregate.adb FAILs on 32-bit i386
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64055 --- Comment #8 from ienkovich at gcc dot gnu.org --- Author: ienkovich Date: Mon Dec 1 12:43:04 2014 New Revision: 218207 URL: https://gcc.gnu.org/viewcvs?rev=218207&root=gcc&view=rev Log: PR target/64055 * tree-chkp.c (chkp_find_bound_slots_1): Allow non constant values in array domain. Modified: trunk/gcc/ChangeLog trunk/gcc/tree-chkp.c
[Bug tree-optimization/64121] [5 Regression] ICE: SSA corruption with -O -fsanitize=undefined
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64121 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #4 from Jakub Jelinek --- Maybe you should just add to the instrument_object_size while (TREE_CODE (base) == SSA_NAME) loop if (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (base)) break; ?
[Bug tree-optimization/63941] [5 Regression] ICE on valid code at -O3 and above on x86_64-linux-gnu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63941 Jakub Jelinek changed: What|Removed |Added Status|NEW |RESOLVED CC||jakub at gcc dot gnu.org Resolution|--- |FIXED --- Comment #4 from Jakub Jelinek --- Fixed.
[Bug tree-optimization/63551] [4.9/5 Regression] wrong code (segfaults) at -Os on x86_64-linux-gnu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63551 --- Comment #9 from Martin Jambor --- Author: jamborm Date: Mon Dec 1 12:52:58 2014 New Revision: 218208 URL: https://gcc.gnu.org/viewcvs?rev=218208&root=gcc&view=rev Log: 2014-12-01 Martin Jambor PR ipa/63551 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Convert value of the argument to the type of the value in the condition. testsuite/ * gcc.dg/ipa/pr63551.c: New test. * gcc.dg/ipa/pr64041.c: Likewise. Added: branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/ipa/pr63551.c branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/ipa/pr64041.c Modified: branches/gcc-4_9-branch/gcc/ChangeLog branches/gcc-4_9-branch/gcc/ipa-inline-analysis.c branches/gcc-4_9-branch/gcc/testsuite/ChangeLog
[Bug tree-optimization/64121] [5 Regression] ICE: SSA corruption with -O -fsanitize=undefined
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64121 --- Comment #5 from Marek Polacek --- Unfortunately, that doesn't seem to help.
[Bug c/64136] New: gcc tree optimization removes basic block containing break condition
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64136 Bug ID: 64136 Summary: gcc tree optimization removes basic block containing break condition Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: ecd at brainaid dot de Created attachment 34152 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34152&action=edit bug.i source code When compiling the following code the loop does not terminate properly, if day is greater than 334 and leap equal 0 or day is greater than 335 and leap equals 1: #include static const uint16_t days_on_first[2][12] = { { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 }, { 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 } }; int foo(int leap, int32_t days) { int i = 0; while ((days <= days_on_first[leap][i + 1]) && (i < 11)) { i++; } return i; } The test for (i << 11) is removed from the loop. This is verified by looking at the generated output bug.c.056t.cunrolli. The bug can be reproduced on gcc for x86 with the following options: gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-cygwin/4.8.3/lto-wrapper.exe Target: x86_64-pc-cygwin Configured with: /cygdrive/i/szsz/tmpp/gcc/gcc-4.8.3-3.x86_64/src/gcc-4.8.3/configure --srcdir=/cygdrive/i/szsz/tmpp/gcc/gcc-4.8.3-3.x86_64/src/gcc-4.8.3 --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/libexec --datadir=/usr/share --localstatedir=/var --sysconfdir=/etc --libdir=/usr/lib --datarootdir=/usr/share --docdir=/usr/share/doc/gcc --htmldir=/usr/share/doc/gcc/html -C --build=x86_64-pc-cygwin --host=x86_64-pc-cygwin --target=x86_64-pc-cygwin --without-libiconv-prefix --without-libintl-prefix --libexecdir=/usr/lib --enable-shared --enable-shared-libgcc --enable-static --enable-version-specific-runtime-libs --enable-bootstrap --enable-__cxa_atexit --with-dwarf2 --with-tune=generic --enable-languages=ada,c,c++,fortran,lto,objc,obj-c++ --enable-graphite --enable-threads=posix --enable-libatomic --enable-libgomp --disable-libitm --enable-libquadmath --enable-libquadmath-support --enable-libssp --enable-libada --enable-libgcj-sublibs --disable-java-awt --disable-symvers --with-ecj-jar=/usr/share/java/ecj.jar --with-gnu-ld --with-gnu-as --with-cloog-include=/usr/include/cloog-isl --without-libiconv-prefix --without-libintl-prefix --with-system-zlib --enable-linker-build-id Thread model: posix gcc version 4.8.3 (GCC) and on arm-none-eabi-gcc compiled with these options: arm-none-eabi-gcc -v Using built-in specs. COLLECT_GCC=arm-none-eabi-gcc COLLECT_LTO_WRAPPER=/opt/gcc-arm-none-eabi-4_8-2014q4/bin/../lib/gcc/arm-none-eabi/4.8.4/lto-wrapper Target: arm-none-eabi Configured with: /home/IS/ecd/src/gcc-arm-none-eabi-4_8-2014q3-20140805/src/gcc/configure --target=arm-none-eabi --prefix=/home/IS/ecd/src/gcc-arm-none-eabi-4_8-2014q3-20140805/install-native --libexecdir=/home/IS/ecd/src/gcc-arm-none-eabi-4_8-2014q3-20140805/install-native/lib --infodir=/home/IS/ecd/src/gcc-arm-none-eabi-4_8-2014q3-20140805/install-native/share/doc/gcc-arm-none-eabi/info --mandir=/home/IS/ecd/src/gcc-arm-none-eabi-4_8-2014q3-20140805/install-native/share/doc/gcc-arm-none-eabi/man --htmldir=/home/IS/ecd/src/gcc-arm-none-eabi-4_8-2014q3-20140805/install-native/share/doc/gcc-arm-none-eabi/html --pdfdir=/home/IS/ecd/src/gcc-arm-none-eabi-4_8-2014q3-20140805/install-native/share/doc/gcc-arm-none-eabi/pdf --enable-languages=c,c++ --enable-plugins --disable-decimal-float --disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-tls --with-gnu-as --with-gnu-ld --with-newlib --with-headers=yes --with-python-dir=share/gcc-arm-none-eabi --with-sysroot=/home/IS/ecd/src/gcc-arm-none-eabi-4_8-2014q3-20140805/install-native/arm-none-eabi --build=x86_64-linux-gnu --host=x86_64-linux-gnu --with-gmp=/home/IS/ecd/src/gcc-arm-none-eabi-4_8-2014q3-20140805/build-native/host-libs/usr --with-mpfr=/home/IS/ecd/src/gcc-arm-none-eabi-4_8-2014q3-20140805/build-native/host-libs/usr --with-mpc=/home/IS/ecd/src/gcc-arm-none-eabi-4_8-2014q3-20140805/build-native/host-libs/usr --with-isl=/home/IS/ecd/src/gcc-arm-none-eabi-4_8-2014q3-20140805/build-native/host-libs/usr --with-cloog=/home/IS/ecd/src/gcc-arm-none-eabi-4_8-2014q3-20140805/build-native/host-libs/usr --with-libelf=/home/IS/ecd/src/gcc-arm-none-eabi-4_8-2014q3-20140805/build-native/host-libs/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-pkgversion='GNU Tools for ARM Embedded Processors' --with-multilib-list=armv6-m,armv7-m,armv7e-m,armv7-r Thread model: single gcc version 4
[Bug c/64136] gcc tree optimization removes basic block containing break condition
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64136 --- Comment #1 from Eddie C. Dost --- Created attachment 34153 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34153&action=edit bug.i cunrolli dump
[Bug tree-optimization/64121] [5 Regression] ICE: SSA corruption with -O -fsanitize=undefined
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64121 --- Comment #6 from Jakub Jelinek --- Ah, indeed. So perhaps better replace the: 1565base = gimple_assign_rhs1 (def_stmt); line in the loop with { tree rhs1 = gimple_assign_rhs1 (def_stmt); if (TREE_CODE (rhs1) == SSA_NAME && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (rhs1)) break; else base = rhs1; } or so?
[Bug rtl-optimization/63957] [5 Regression] rename -fuse-caller-save to -fipa-ra
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63957 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #2 from Jakub Jelinek --- So, Tom, are you going to propose a patch?
[Bug c/64136] gcc tree optimization removes basic block containing break condition
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64136 Andrew Pinski changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #2 from Andrew Pinski --- 12 < 12 is false. So you read one past the array bounds.
[Bug c/64136] gcc tree optimization removes basic block containing break condition
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64136 --- Comment #3 from Andrew Pinski --- Swap around the conditions that you have and it will work correctly.
[Bug target/63661] [4.9 Regression] -O2 miscompiles with -mtune=nehalem or corei7
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63661 Jakub Jelinek changed: What|Removed |Added Known to work||5.0 Summary|[4.9/5 Regression] -O2 |[4.9 Regression] -O2 |miscompiles with|miscompiles with |-mtune=nehalem or corei7|-mtune=nehalem or corei7 Known to fail|5.0 | --- Comment #27 from Jakub Jelinek --- Thus fixed on the trunk so far.
[Bug tree-optimization/64126] [5.0 Regression] FAIL: gcc.dg/pr37289.c scan-tree-dump original "-\\(long unsigned int\\) x"
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64126 --- Comment #4 from Richard Biener --- Author: rguenth Date: Mon Dec 1 13:08:10 2014 New Revision: 218210 URL: https://gcc.gnu.org/viewcvs?rev=218210&root=gcc&view=rev Log: 2014-12-01 Richard Biener PR middle-end/64126 * match.pd: Allow conversions in ~A + 1 -> -A, add -A - 1 -> ~A and -1 - A -> ~A. * fold-const.c (fold_binary_loc): Remove transforms here. Modified: trunk/gcc/ChangeLog trunk/gcc/fold-const.c trunk/gcc/match.pd
[Bug tree-optimization/64121] [5 Regression] ICE: SSA corruption with -O -fsanitize=undefined
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64121 --- Comment #7 from Marek Polacek --- Yup, that works. Testing in progress. Thanks.
[Bug tree-optimization/15346] [tree-ssa] combine two successive divisions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15346 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #7 from Richard Biener --- Fixed.
[Bug tree-optimization/15346] [tree-ssa] combine two successive divisions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15346 --- Comment #8 from Richard Biener --- Author: rguenth Date: Mon Dec 1 13:13:28 2014 New Revision: 218211 URL: https://gcc.gnu.org/viewcvs?rev=218211&root=gcc&view=rev Log: 2014-12-01 Richard Biener PR tree-optimization/15346 * Makefile.in (gimple-match.o-warn): Remove -Wno-unused-parameter, add -Wno-unused-but-set-variable. * match.pd: Combine two successive divisions. * gcc.dg/tree-ssa/forwprop-32.c: New testcase. Added: trunk/gcc/testsuite/gcc.dg/tree-ssa/forwprop-32.c Modified: trunk/gcc/ChangeLog trunk/gcc/Makefile.in trunk/gcc/match.pd trunk/gcc/testsuite/ChangeLog
[Bug rtl-optimization/63957] [5 Regression] rename -fuse-caller-save to -fipa-ra
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63957 vries at gcc dot gnu.org changed: What|Removed |Added Assignee|unassigned at gcc dot gnu.org |vries at gcc dot gnu.org --- Comment #3 from vries at gcc dot gnu.org --- > So, Tom, are you going to propose a patch? Yes.
[Bug fortran/64137] New: Fortran FE builds invalid GENERIC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64137 Bug ID: 64137 Summary: Fortran FE builds invalid GENERIC Product: gcc Version: 5.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: rguenth at gcc dot gnu.org #6 0x0085f420 in gfc_conv_intrinsic_minmaxloc (se=0x7fffd150, expr=0x235ba70, op=GT_EXPR) at /space/rguenther/tramp3d/trunk/gcc/fortran/trans-intrinsic.c:3734 (gdb) l 3729 possible value is HUGE in both cases. */ 3730 if (op == GT_EXPR) 3731tmp = fold_build1_loc (input_location, NEGATE_EXPR, TREE_TYPE (tmp), tmp); 3732 if (op == GT_EXPR && expr->ts.type == BT_INTEGER) 3733tmp = fold_build2_loc (input_location, MINUS_EXPR, TREE_TYPE (tmp), tmp, 3734 build_int_cst (type, 1)); the body of the 2nd if builds REAL_CST - INTEGER_CST for at least gfortran.dg/maxloc_2.f90 at -O1+. Currently it is lucky that fold-const.c 10523 /* A - B -> A + (-B) if B is easily negatable. */ 10524 if (negate_expr_p (arg1) 10525 && !TYPE_OVERFLOW_SANITIZED (type) (gdb) l 10526 && ((FLOAT_TYPE_P (type) 10527 /* Avoid this transformation if B is a positive REAL_CST. */ 10528 && (TREE_CODE (arg1) != REAL_CST 10529 || REAL_VALUE_NEGATIVE (TREE_REAL_CST (arg1 10530 || INTEGRAL_TYPE_P (type))) 10531 return fold_build2_loc (loc, PLUS_EXPR, type, 10532 fold_convert_loc (loc, type, arg0), 10533 fold_convert_loc (loc, type, 10534 negate_expr (arg1))); applies as that fold_convert()s to REAL after negating the integer, hiding this bug. When I move that to match.pd patterns that no longer happens, but we simply get -Huge + -1 with bogus types here. Not sure what is intended here (integer Huge or Float 1).
[Bug c/64136] gcc tree optimization removes basic block containing break condition
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64136 --- Comment #4 from Eddie C. Dost --- Andrew, thank you very much, you are correct and I was blind. I now see the problem from gcc's optimizer view and it makes sense to remove the second condition.
[Bug middle-end/64111] [5.0 regression] ICE: conversion of register to a different size
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64111 --- Comment #19 from Richard Biener --- Author: rguenth Date: Mon Dec 1 13:42:45 2014 New Revision: 218212 URL: https://gcc.gnu.org/viewcvs?rev=218212&root=gcc&view=rev Log: 2014-12-01 Richard Biener PR middle-end/64111 * tree.c (int_cst_hasher::hash): Use TYPE_UID instead of htab_hash_pointer to not break PCH. Modified: trunk/gcc/ChangeLog trunk/gcc/tree.c
[Bug fortran/64137] Fortran FE builds invalid GENERIC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64137 Richard Biener changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2014-12-01 Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Richard Biener --- Index: gcc/fortran/trans-intrinsic.c === --- gcc/fortran/trans-intrinsic.c (revision 218211) +++ gcc/fortran/trans-intrinsic.c (working copy) @@ -3729,7 +3729,7 @@ gfc_conv_intrinsic_minmaxloc (gfc_se * s possible value is HUGE in both cases. */ if (op == GT_EXPR) tmp = fold_build1_loc (input_location, NEGATE_EXPR, TREE_TYPE (tmp), tmp); - if (op == GT_EXPR && expr->ts.type == BT_INTEGER) + if (op == GT_EXPR && arrayexpr->ts.type == BT_INTEGER) tmp = fold_build2_loc (input_location, MINUS_EXPR, TREE_TYPE (tmp), tmp, build_int_cst (type, 1)); works for me. So I suppose this is a wrong-code bug as we shouldn't have subtracted 1 off -Huge (what's that anyway?) But then is "integer -Huge" C INT_MIN + 1? Anyway, testing the above.
[Bug middle-end/64111] [5.0 regression] ICE: conversion of register to a different size
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64111 --- Comment #20 from Richard Biener --- Author: rguenth Date: Mon Dec 1 13:47:11 2014 New Revision: 218213 URL: https://gcc.gnu.org/viewcvs?rev=218213&root=gcc&view=rev Log: 2014-12-01 Richard Biener PR middle-end/64111 * tree.c (int_cst_hash_hash): Use TYPE_UID instead of htab_hash_pointer to not break PCH. Modified: branches/gcc-4_9-branch/gcc/ChangeLog branches/gcc-4_9-branch/gcc/tree.c
[Bug middle-end/64111] [5.0 regression] ICE: conversion of register to a different size
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64111 --- Comment #21 from Richard Biener --- Author: rguenth Date: Mon Dec 1 13:48:21 2014 New Revision: 218214 URL: https://gcc.gnu.org/viewcvs?rev=218214&root=gcc&view=rev Log: 2014-12-01 Richard Biener PR middle-end/64111 * tree.c (int_cst_hash_hash): Use TYPE_UID instead of htab_hash_pointer to not break PCH. Modified: branches/gcc-4_8-branch/gcc/ChangeLog branches/gcc-4_8-branch/gcc/tree.c
[Bug bootstrap/64102] ARM bootstrap fails with segfault with -mapcs in BOOT_CFLAGS
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64102 --- Comment #4 from ktkachov at gcc dot gnu.org --- (In reply to ktkachov from comment #3) > Hmm... > Trying to bootstrap 4.9 with the same configuration and -mapcs results in an > ICE in stage2 when compiling haifa-sched.c > $SRC/gcc/haifa-sched.c:6507:1: internal compiler error: in lra_create_copy, > at lra.c:1532 > } > ^ > 0x6f240b lra_create_copy(int, int, int) > $SRC/gcc/lra.c:1532 > 0x70f447 process_bb_lives > $SRC/gcc/lra-lives.c:568 > 0x710761 lra_create_live_ranges(bool) > $SRC/gcc/lra-lives.c:1008 > 0x6f3f33 lra(_IO_FILE*) > $SRC/gcc/lra.c:2372 > 0x6ad3a1 do_reload > $SRC/gcc/ira.c:5457 > 0x6ad717 rest_of_handle_reload > $SRC/gcc/ira.c:5598 > 0x6ad75f execute > $SRC/gcc/ira.c:5627 > Please submit a full bug report, > with preprocessed source if appropriate. > > > I didn't try without -mapcs on 4.9 though, so need to check that first. Ah, this is a known bootstrap failure: PR 63740 so can't check whether the -mapcs issue is a regression until that's resolved
[Bug libstdc++/63840] std::function copy constructor deletes an uninitialized pointer if new fails
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63840 Jonathan Wakely changed: What|Removed |Added Target Milestone|--- |4.8.4 --- Comment #3 from Jonathan Wakely --- Fixed on trunk so far.
[Bug libstdc++/63840] std::function copy constructor deletes an uninitialized pointer if new fails
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63840 --- Comment #2 from Jonathan Wakely --- Author: redi Date: Mon Dec 1 13:49:20 2014 New Revision: 218215 URL: https://gcc.gnu.org/viewcvs?rev=218215&root=gcc&view=rev Log: PR libstdc++/63840 * include/std/functional (function::function(const function&)): Set _M_manager after operations that might throw. * include/tr1/functional (function::function(const function&), function::function(_Functor, _Useless)): Likewise. * testsuite/20_util/function/63840.cc: New. * testsuite/tr1/3_function_objects/function/63840.cc: New. Added: trunk/libstdc++-v3/testsuite/20_util/function/63840.cc trunk/libstdc++-v3/testsuite/tr1/3_function_objects/function/63840.cc Modified: trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/include/std/functional trunk/libstdc++-v3/include/tr1/functional
[Bug plugins/61176] plugin builds including gimple.h not building
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61176 --- Comment #13 from Andrew Macleod --- gcc-plugin.h has had a number of includes added to ease the pain of flattening basic-block.h and cgraph.h this release. If there are still issues with tree.h or others, submit a patch which adds the required includes.
[Bug tree-optimization/63551] [4.9/5 Regression] wrong code (segfaults) at -Os on x86_64-linux-gnu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63551 Martin Jambor changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #10 from Martin Jambor --- Fixed.
[Bug tree-optimization/15826] don't use "if" to extract a single bit bit-field.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15826 --- Comment #9 from Richard Biener --- Which boils down to the premature fold-const.c:optimize_bit_field_compare which creates this BIT_FIELD_REF (fold_truth_andor_1 does similar stupid stuff).
[Bug tree-optimization/14541] [tree-ssa] built-in math functions are not fully optimized at tree level
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=14541 --- Comment #16 from Richard Biener --- (for logfn (BUILT_IN_LOGF BUILT_IN_LOG BUILT_IN_LOGL) expfn (BUILT_IN_EXPF BUILT_IN_EXP BUILT_IN_EXPL) (simplify (logfn (expfn @0)) (if (flag_unsafe_math_optimizations) @0))) with the still somewhat awkward syntax, patch for proposed better one is not yet ready but would look like (define_operator_list log (BUILT_IN_LOGF BUILT_IN_LOG BUILT_IN_LOGL)) (define_operator_list exp (BUILT_IN_EXPF BUILT_IN_EXP BUILT_IN_EXPL)) (simplify (log (exp @0)) (if (flag_unsafe_math_optimizations) @0))) thus the 'for' would be implicit. Note that fold_builtin_logarithm does handle some more cases. The match-and-simplify branch already covers quite some patterns in match-builtins.def (but not the above). I'll see if I can take the syntax patch (I was waiting for that so not to merge the "ugly" syntax).
[Bug target/64115] [4.9/5 Regression] ICE: : in rs6000_delegitimize_address, at config/rs6000/rs6000.c:7051
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64115 Ulrich Weigand changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2014-12-01 Assignee|unassigned at gcc dot gnu.org |uweigand at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #2 from Ulrich Weigand --- Confirmed.
[Bug c++/58107] missing destructor call after thrown exception in lambda capture
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58107 Ville Voutilainen changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2014-12-01 CC||ville.voutilainen at gmail dot com Ever confirmed|0 |1 --- Comment #1 from Ville Voutilainen --- Still happens with the gcc5 trunk.
[Bug c++/60845] print original type for typedef classes in diagnostics
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60845 --- Comment #1 from paolo at gcc dot gnu.org --- Author: paolo Date: Mon Dec 1 14:58:01 2014 New Revision: 218218 URL: https://gcc.gnu.org/viewcvs?rev=218218&root=gcc&view=rev Log: /cp 2014-12-01 Paolo Carlini PR c++/60845 * typeck.c (finish_class_member_access_expr): Use %q#T instead of %qD in error message. /testsuite 2014-12-01 Paolo Carlini PR c++/60845 * g++.dg/parse/error55.C: New. Added: trunk/gcc/testsuite/g++.dg/parse/error55.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog
[Bug c++/60845] print original type for typedef classes in diagnostics
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60845 Paolo Carlini changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED Target Milestone|--- |5.0 --- Comment #2 from Paolo Carlini --- Done.
[Bug fortran/64138] New: gfortran interface issue
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64138 Bug ID: 64138 Summary: gfortran interface issue Product: gcc Version: 4.9.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: wong.david-c at epa dot gov Hi, I have created a complex number module: module complex_number_module implicit none integer, parameter :: loc_real_precision = 8 type complex_number real(kind=loc_real_precision) :: real_part, imag_part end type complex_number interface c_sub module procedure c_sub_cc,& ! z1 - z2 c_sub_cr,& ! z1 - num, where num is a real number c_sub_rc! num - z1, where num is a real number end interface ! -- type (complex_number) function c_sub_cc (z1, z2) type (complex_number), intent(in) :: z1, z2 c_sub_cc%real_part = z1%real_part - z2%real_part c_sub_cc%imag_part = z1%imag_part - z2%imag_part end function c_sub_ccj ! -- type (complex_number) function c_sub_cr (z1, num) type (complex_number), intent(in) :: z1 real(kind=loc_real_precision), intent(in) :: num c_sub_cr%real_part = z1%real_part - num c_sub_cr%imag_part = z1%imag_part end function c_sub_cr ! -- type (complex_number) function c_sub_rc (num, z1) type (complex_number), intent(in) :: z1 real(kind=loc_real_precision), intent(in) :: num c_sub_rc%real_part = num - z1%real_part c_sub_rc%imag_part = - z1%imag_part end function c_sub_rc end module complex_number_module When I compile with gfortran (version 4.6.4), I got the following error: module_twoway_rrtmg_aero_optical_util.F:14.85: c_sub_rc! num - z1, where num is a real number 1 Error: Ambiguous interfaces 'c_sub_rc' and 'c_sub_cr' in generic interface 'c_sub' at (1) I don't see any ambiguity and I don't encounter any problem with other compilers such pgi and ifort. Please advise. Cheers, David
[Bug sanitizer/63956] [5 Regression][UBSAN] ICE segfault in cxx_eval_call_expression ../../gcc/cp/constexpr.c
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63956 --- Comment #13 from Marek Polacek --- Author: mpolacek Date: Mon Dec 1 15:29:11 2014 New Revision: 218221 URL: https://gcc.gnu.org/viewcvs?rev=218221&root=gcc&view=rev Log: PR sanitizer/63956 * ubsan.c (is_ubsan_builtin_p): Check also built-in class. cp/ * constexpr.c: Include ubsan.h. (cxx_eval_call_expression): Bail out for IFN_UBSAN_{NULL,BOUNDS} internal functions and for ubsan builtins. * error.c: Include internal-fn.h. (dump_expr): Add printing of internal functions. testsuite/ * c-c++-common/ubsan/shift-5.c: Add xfails. * g++.dg/ubsan/div-by-zero-1.C: Don't use -w. Add xfail. * g++.dg/ubsan/pr63956.C: New test. Added: trunk/gcc/testsuite/g++.dg/ubsan/pr63956.C Modified: trunk/gcc/ChangeLog trunk/gcc/cp/ChangeLog trunk/gcc/cp/constexpr.c trunk/gcc/cp/error.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/c-c++-common/ubsan/shift-5.c trunk/gcc/testsuite/g++.dg/ubsan/div-by-zero-1.C trunk/gcc/ubsan.c
[Bug sanitizer/63956] [5 Regression][UBSAN] ICE segfault in cxx_eval_call_expression ../../gcc/cp/constexpr.c
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63956 Marek Polacek changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #14 from Marek Polacek --- Fixed.
[Bug tree-optimization/64121] [5 Regression] ICE: SSA corruption with -O -fsanitize=undefined
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64121 --- Comment #8 from Marek Polacek --- Author: mpolacek Date: Mon Dec 1 15:37:55 2014 New Revision: 218222 URL: https://gcc.gnu.org/viewcvs?rev=218222&root=gcc&view=rev Log: PR sanitizer/64121 * ubsan.c (instrument_object_size): Stop searching if the base occurs in abnormal phi. * c-c++-common/ubsan/pr64121.c: New test. Added: trunk/gcc/testsuite/c-c++-common/ubsan/pr64121.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/ubsan.c
[Bug tree-optimization/64121] [5 Regression] ICE: SSA corruption with -O -fsanitize=undefined
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64121 Marek Polacek changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #9 from Marek Polacek --- Fixed.
[Bug jit/63969] gccjit segfaults when it can't locate the correct gcc driver program
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63969 dmalcolm at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #8 from dmalcolm at gcc dot gnu.org --- Should be fixed as of r218226.
[Bug jit/63969] gccjit segfaults when it can't locate the correct gcc driver program
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63969 --- Comment #7 from dmalcolm at gcc dot gnu.org --- Author: dmalcolm Date: Mon Dec 1 15:58:11 2014 New Revision: 218226 URL: https://gcc.gnu.org/viewcvs?rev=218226&root=gcc&view=rev Log: PR jit/63969: Fix segfault in error-handling when driver isn't found gcc/jit/ChangeLog: PR jit/63969 * jit-playback.c: Ensure that ctxt_progname is non-NULL. gcc/testsuite/ChangeLog: PR jit/63969 * jit.dg/harness.h (CHECK_STRING_STARTS_WITH): New. (check_string_starts_with): New. * jit.dg/test-error-pr63969-missing-driver.c: New. Added: trunk/gcc/testsuite/jit.dg/test-error-pr63969-missing-driver.c Modified: trunk/gcc/jit/ChangeLog trunk/gcc/jit/jit-playback.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/jit.dg/harness.h
[Bug jit/63854] Fix memory leaks seen in JIT
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63854 --- Comment #20 from dmalcolm at gcc dot gnu.org --- Author: dmalcolm Date: Mon Dec 1 16:13:29 2014 New Revision: 218227 URL: https://gcc.gnu.org/viewcvs?rev=218227&root=gcc&view=rev Log: PR jit/63854: Add support for running "make check-jit" under valgrind gcc/testsuite/ChangeLog: PR jit/63854 * jit.dg/jit.exp (report_leak): New. (parse_valgrind_logfile): New. (fixed_host_execute): Detect if RUN_UNDER_VALGRIND is present in the environment, and if so, run the executable under valgrind, capturing valgrind's output to a logfile. Parse the log file, generating PASSes and XFAILs for the summary of leaks. Use "wait" before "close": valgrind might not have finished writing the log out before we parse it, so we need to wait for the spawnee to finish. Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/jit.dg/jit.exp
[Bug target/64115] [4.9/5 Regression] ICE: : in rs6000_delegitimize_address, at config/rs6000/rs6000.c:7051
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64115 Ulrich Weigand changed: What|Removed |Added CC||dje.gcc at gmail dot com --- Comment #3 from Ulrich Weigand --- The ICE is triggered by checking code in rs6000_delegitimize_address: if (GET_CODE (y) == UNSPEC && XINT (y, 1) == UNSPEC_TOCREL) { #ifdef ENABLE_CHECKING if (REG_P (XVECEXP (y, 0, 1)) && REGNO (XVECEXP (y, 0, 1)) == TOC_REGISTER) { /* All good. */ } else if (GET_CODE (XVECEXP (y, 0, 1)) == DEBUG_EXPR) { /* Weirdness alert. df_note_compute can replace r2 with a debug_expr when this unspec is in a debug_insn. Seen in gcc.dg/pr51957-1.c */ } else { debug_rtx (orig_x); abort (); } #endif which attempts to ensure that the second argument of UNSPEC_TOCREL is the TOC register. However, this check seems fragile; in debug code, we can get RTX simplifications that replace the TOC register by some equivalent expression. The code already recognizes one such case; this bug shows another case, where the TOC register is replaced by a MEM RTX for the TOC save slot holding the TOC value. [ This case is probably made more likely by the change in my ELFv2 ABI preparation patch, which has the effect of making TOC moves into the save slot more explicit at the RTL level, allowing var-tracking code to detect that equivalence. ] One could try to make this check in rs6000_delegitimize_address more generic by allowing some (or all) MEM RTXes. However, I'm wonding what exactly that check is supposed to achieve in the first place; for the purposes of this routine, the second argument of UNSPEC_TOCREL is really irrelevant. David, would you be OK with simply removing the check (everything enclosed with ENABLE_CHECKING in the above code)?
[Bug c++/60859] Value-initialization of scalar in aggregate yields "braces around scalar initializer"
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60859 Paolo Carlini changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2014-12-01 Assignee|unassigned at gcc dot gnu.org |paolo.carlini at oracle dot com Ever confirmed|0 |1 --- Comment #1 from Paolo Carlini --- Mine.
[Bug rtl-optimization/63957] [5 Regression] rename -fuse-caller-save to -fipa-ra
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63957 --- Comment #4 from vries at gcc dot gnu.org --- Created attachment 34154 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34154&action=edit tentative patch
[Bug c++/64139] New: ice in possible_polymorphic_call_targets, at ipa-devirt.c:2410
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64139 Bug ID: 64139 Summary: ice in possible_polymorphic_call_targets, at ipa-devirt.c:2410 Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: dcb314 at hotmail dot com Created attachment 34155 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34155&action=edit gzipped C++ source code I just tried to compile the attached C++ code with the latest trunk dated 20141130 on a Fedora Linux x86_64 box. The compiler said /home/dcb/rpmbuild/BUILD/spatialindex-src-1.8.1/src/mvrtree/MVRTree.cc:1360:1: i nternal compiler error: in possible_polymorphic_call_targets, at ipa-devirt.c:24 10 } ^ 0xa47df4 possible_polymorphic_call_targets(tree_node*, long, ipa_polymorphic_cal l_context, bool*, void**, bool) ../../src/trunk/gcc/ipa-devirt.c:2410 0x17e4127 ipa_get_indirect_edge_target_1(cgraph_edge*, vec, vec, vec, ipa_agg_replacement_value*, bool*) ../../src/trunk/gcc/ipa-cp.c:1872 0xa5ebbd estimate_edge_devirt_benefit(cgraph_edge*, int*, int*, vec, vec, vec) ../../src/trunk/gcc/ipa-inline-analysis.c:2999 0xa5ebbd estimate_edge_size_and_time(cgraph_edge*, int*, int*, int*, int, vec, vec, vec, int*) ../../src/trunk/gcc/ipa-inline-analysis.c:3040 0xa5c7c4 estimate_calls_size_and_time(cgraph_node*, int*, int*, int*, int*, unsi gned int, vec, vec, vec) ../../src/trunk/gcc/ipa-inline-analysis.c:3099 0xa5ab25 estimate_node_size_and_time(cgraph_node*, unsigned int, vec, vec, vec, int*, int*, int*, int*, vec) Flag -O2 required.
[Bug libstdc++/64128] Let vector take advantage of malloc_usable_size for malloc-using allocators
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64128 --- Comment #4 from Eelis --- Yeah, I noticed that tcmalloc is also way faster, and since tcmalloc barely over-allocates for the sizes requested by vector, there is no benefit to using malloc_usable_size (which it also supports) there. So I think the bottom line is indeed: just don't use glibc malloc, because it's very slow.
[Bug jit/63854] Fix memory leaks seen in JIT
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63854 --- Comment #21 from dmalcolm at gcc dot gnu.org --- Author: dmalcolm Date: Mon Dec 1 17:16:04 2014 New Revision: 218230 URL: https://gcc.gnu.org/viewcvs?rev=218230&root=gcc&view=rev Log: PR jit/63854: Fix leak in tree-ssa-math-opts.c gcc/ChangeLog: PR jit/63854 * tree-ssa-math-opts.c (execute_cse_sincos_1): Fix a missing release of stmts by converting it to an auto_vec. Modified: trunk/gcc/ChangeLog trunk/gcc/tree-ssa-math-opts.c
[Bug c++/63779] g++ 4.9 generates invalid object provoking a GOT relative relocation must reference a local symbol linker error on SunOS
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63779 --- Comment #3 from Richard PALO --- Well, apparently this was affecting many using gcc 4.9.x and a workaround was given here https://bugzilla.mozilla.org/show_bug.cgi?id=999496 I tested it and now have (as with 4.8.x): >richard@omnis:/tmp/pkgsrc/devel/xulrunner31/work/build/content/media$ nm -C >MediaDecoderReader.o |grep MallocSizeOf >[148] | 0|29|FUNC |WEAK |2|90 >|mozilla::AudioQueueMemoryFunctor::MallocSizeOf(const void*) > > [_ZN7mozilla23AudioQueueMemoryFunctor12MallocSizeOfEPKv] >[145] | 0|29|FUNC |WEAK |2|87 >|mozilla::VideoQueueMemoryFunctor::MallocSizeOf(const void*) > > [_ZN7mozilla23VideoQueueMemoryFunctor12MallocSizeOfEPKv] Is there any further information I can provide now to find this nasty problem?
[Bug jit/63854] Fix memory leaks seen in JIT
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63854 --- Comment #22 from dmalcolm at gcc dot gnu.org --- Author: dmalcolm Date: Mon Dec 1 17:22:19 2014 New Revision: 218231 URL: https://gcc.gnu.org/viewcvs?rev=218231&root=gcc&view=rev Log: PR jit/63854: Fix leak within jit-builtins.c gcc/jit/ChangeLog: PR jit/63854 * jit-builtins.c (gcc::jit::recording::builtins_manager::make_fn_type): Call the context's new_function_type method, rather than directly creating a function_type instance. * jit-recording.c (gcc::jit::recording::context::new_function_type): New method, adapted from part of... (gcc::jit::recording::context::new_function_ptr_type): ...this. Update to call new_function_type. * jit-recording.h (gcc::jit::recording::context::new_function_type): New method. Modified: trunk/gcc/jit/ChangeLog trunk/gcc/jit/jit-builtins.c trunk/gcc/jit/jit-recording.c trunk/gcc/jit/jit-recording.h
[Bug fortran/64138] gfortran interface issue
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64138 kargl at gcc dot gnu.org changed: What|Removed |Added CC||kargl at gcc dot gnu.org --- Comment #1 from kargl at gcc dot gnu.org --- (In reply to david from comment #0) > Hi, > >I have created a complex number module: > >module complex_number_module > implicit none > > integer, parameter :: loc_real_precision = 8 > > type complex_number > real(kind=loc_real_precision) :: real_part, imag_part > end type complex_number > > interface c_sub > module procedure c_sub_cc,& ! z1 - z2 >c_sub_cr,& ! z1 - num, where num is a > real number >c_sub_rc! num - z1, where num is a > real number > end interface > > ! -- > type (complex_number) function c_sub_cc (z1, z2) > > type (complex_number), intent(in) :: z1, z2 > > c_sub_cc%real_part = z1%real_part - z2%real_part > c_sub_cc%imag_part = z1%imag_part - z2%imag_part > > end function c_sub_ccj > > ! -- > type (complex_number) function c_sub_cr (z1, num) > > type (complex_number), intent(in) :: z1 > real(kind=loc_real_precision), intent(in) :: num > > c_sub_cr%real_part = z1%real_part - num > c_sub_cr%imag_part = z1%imag_part > > end function c_sub_cr > > ! -- > type (complex_number) function c_sub_rc (num, z1) > > type (complex_number), intent(in) :: z1 > real(kind=loc_real_precision), intent(in) :: num > > c_sub_rc%real_part = num - z1%real_part > c_sub_rc%imag_part = - z1%imag_part > > end function c_sub_rc > > end module complex_number_module > > When I compile with gfortran (version 4.6.4), I got the following error: > > module_twoway_rrtmg_aero_optical_util.F:14.85: > > c_sub_rc! num - z1, where num is a real number >1 > > Error: Ambiguous interfaces 'c_sub_rc' and 'c_sub_cr' in generic interface > 'c_sub' at (1) > > I don't see any ambiguity and I don't encounter any problem with other > compilers such pgi and ifort. Please advise. > > Cheers, > David Please attach the exact code you tried to compile. The above is nonsense.
[Bug jit/63854] Fix memory leaks seen in JIT
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63854 --- Comment #23 from dmalcolm at gcc dot gnu.org --- Author: dmalcolm Date: Mon Dec 1 17:28:28 2014 New Revision: 218233 URL: https://gcc.gnu.org/viewcvs?rev=218233&root=gcc&view=rev Log: PR jit/63854: Fix leak in real.c for i386:init_ext_80387_constants gcc/ChangeLog: PR jit/63854 * real.c (real_from_string): Add missing mpfr_clear. Modified: trunk/gcc/ChangeLog trunk/gcc/real.c
[Bug libstdc++/64140] New: match_results.prefix() returns an incorrect result if regex_iterator holds a zero-length match
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64140 Bug ID: 64140 Summary: match_results.prefix() returns an incorrect result if regex_iterator holds a zero-length match Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: kariya_mitsuru at hotmail dot com Created attachment 34156 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34156&action=edit g++ -v Please see the following sample. == sample code == #include #include #include void print(const char* t, const std::string& s, const std::ssub_match& sub) { std::cout << " " << t << ": " << (sub.matched ? "matched " : "unmatched") << ", " "length() = " << sub.length() << ", str() = '" << sub.str() << "\', " "pair = (" << sub.first - s.begin() << ", " << sub.second - s.begin() << "), " "'" << std::string(sub.first, sub.second) << '\'' << std::endl; } int main() { const std::regex e("z*"); const std::string s("ab"); int i = 0; for (auto&& it = std::sregex_iterator(s.begin(), s.end(), e), end = std::sregex_iterator(); it != end; ++it) { std::cout << i++ << ':' << std::endl; print("prefix", s, it->prefix()); print("match ", s, (*it)[0]); std::cout << std::endl; } } = = output = 0: prefix: unmatched, length() = 0, str() = '', pair = (0, 0), '' match : matched , length() = 0, str() = '', pair = (0, 0), '' 1: prefix: unmatched, length() = 0, str() = '', pair = (0, 1), 'a' match : matched , length() = 0, str() = '', pair = (1, 1), '' 2: prefix: unmatched, length() = 0, str() = '', pair = (1, 2), 'b' match : matched , length() = 0, str() = '', pair = (2, 2), '' == cf. http://melpon.org/wandbox/permlink/JSkP6tl2QWFxmOEv According to C++11 standard 28.11.3[re.alg.search]/p.3 Table 143, prefix().matched should be true if prefix().first != prefix().second. (prefix().first is correct, because 28.12.1.4[re.regiter.incr]/p.5 says "match.prefix().first shall be equal to the previous value of match[0].second".) So, I think that the output should be = output = 0: prefix: unmatched, length() = 0, str() = '', pair = (0, 0), '' match : matched , length() = 0, str() = '', pair = (0, 0), '' 1: prefix: matched , length() = 1, str() = 'a', pair = (0, 1), 'a' match : matched , length() = 0, str() = '', pair = (1, 1), '' 2: prefix: matched , length() = 1, str() = 'b', pair = (1, 2), 'b' match : matched , length() = 0, str() = '', pair = (2, 2), '' ==
[Bug ipa/64139] [5 Regression] ice in possible_polymorphic_call_targets, at ipa-devirt.c:2410
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64139 H.J. Lu changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2014-12-01 CC||mjambor at suse dot cz Component|c++ |ipa Target Milestone|--- |5.0 Summary|ice in |[5 Regression] ice in |possible_polymorphic_call_t |possible_polymorphic_call_t |argets, at |argets, at |ipa-devirt.c:2410 |ipa-devirt.c:2410 Ever confirmed|0 |1 --- Comment #1 from H.J. Lu --- It was caused by r217587.
[Bug jit/63854] Fix memory leaks seen in JIT
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63854 --- Comment #24 from dmalcolm at gcc dot gnu.org --- Author: dmalcolm Date: Mon Dec 1 17:40:03 2014 New Revision: 218234 URL: https://gcc.gnu.org/viewcvs?rev=218234&root=gcc&view=rev Log: PR jit/63854: Fix leaks in toyvm.c gcc/jit/ChangeLog: PR jit/63854 * docs/examples/tut04-toyvm/toyvm.c (toyvm_compiled_function): New typedef. (toyvm_compiled_func) Rename to... (toyvm_compiled_code) ...this. (struct toyvm_compiled_function): New struct. (toyvm_function_compile): Return a toyvm_compiled_function * rather than a toyvm_compiled_func, so that the caller can fully clean things up. Free "funcname". (test_script): Update for change to toyvm_function_compile. Clean up the toyvm_compiled_function. (main): Likewise. (docs/intro/tutorial04.rst): Update to reflect the above changes, and to better spell out the lifetime of the compiled code. Modified: trunk/gcc/jit/ChangeLog trunk/gcc/jit/docs/examples/tut04-toyvm/toyvm.c trunk/gcc/jit/docs/intro/tutorial04.rst