[Bug target/44107] gcc emits frame (epilogue) info incompatible with the darwin {8,9}-unwinder,10-compacter

2014-01-22 Thread iains at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44107

--- Comment #28 from Iain Sandoe iains at gcc dot gnu.org ---
(In reply to Denis Excoffier from comment #27)
 I (OP) suppose we can WONTFIX that one. Thanks.

Well, there is a fix - which is to update /usr/lib/libgcc_s.dylib to a
non-buggy version.

I can give you instructions on how to achieve that (and would be willing to
provide a ready-made suitable binary) - but don't have anywhere suitable to
host it.


[Bug sanitizer/55561] TSAN: provide a TSAN instrumented libgomp

2014-01-22 Thread Joost.VandeVondele at mat dot ethz.ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55561

--- Comment #43 from Joost VandeVondele Joost.VandeVondele at mat dot ethz.ch 
---
(In reply to Emil Styrke from comment #42)
 Anyway, after manually fixing up the install it seems to work alright.  If
 this looks like a reasonable way forward, I'd be happy to improve the patch
 after feedback or leave this embryo in the hands of someone more
 knowledgeable.

I would welcome such a solution very much. From looking at the patch, it seems
a relatively small amount of work for a significant benefit. I hope you get
some feedbackhelp from libgomp/sanitizer experts.


[Bug tree-optimization/59903] [4.8/4.9 Regression] ICE on valid code at -O3 on x86_64-linux-gnu (affecting trunk and 4.8.x)

2014-01-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59903

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org
   Target Milestone|--- |4.8.3
Summary|ICE on valid code at -O3 on |[4.8/4.9 Regression] ICE on
   |x86_64-linux-gnu (affecting |valid code at -O3 on
   |trunk and 4.8.x)|x86_64-linux-gnu (affecting
   ||trunk and 4.8.x)

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org ---
Started with r195609.


[Bug target/44107] gcc emits frame (epilogue) info incompatible with the darwin {8,9}-unwinder,10-compacter

2014-01-22 Thread g...@denis-excoffier.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44107

--- Comment #29 from Denis Excoffier g...@denis-excoffier.org ---
(In reply to Iain Sandoe from comment #28)
 Well, there is a fix - which is to update
 /usr/lib/libgcc_s.dylib to a non-buggy version.
I had understood that it was desirable not to replace libgcc_s.dylib.

Personally, i use the sed command (shown in comment #17) to create my own
libgcc_s.1.dylib, i install it with GCC in /usr/local (or equivalent) and try
to always link with it (and usually succeed since i don't use any libraries
that are already linked with /usr/lib/libgcc_s.dylib). For security matters,
that's like replacing, however.

In any case, that bug is not NEW any more.


[Bug rtl-optimization/58960] [4.9 regression] ICE in bmp_iter_set_init

2014-01-22 Thread abel at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58960

Andrey Belevantsev abel at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2014-01-22
   Assignee|unassigned at gcc dot gnu.org  |abel at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #5 from Andrey Belevantsev abel at gcc dot gnu.org ---
Created attachment 31915
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31915action=edit
proposed patch


[Bug rtl-optimization/51366] [cygwin] ICE in maybe_record_trace_start, at dwarf2cfi.c:2244

2014-01-22 Thread g...@denis-excoffier.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51366

--- Comment #7 from Denis Excoffier g...@denis-excoffier.org ---
The bug is no longer present in GCC 4.8.2 (tested today under Cygwin 1.7.27 XP
32bits).

Please someone to update the WAITING field into RESOLVED (or WORKSFORME etc.).


[Bug rtl-optimization/58960] [4.9 regression] ICE in bmp_iter_set_init

2014-01-22 Thread abel at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58960

Andrey Belevantsev abel at gcc dot gnu.org changed:

   What|Removed |Added

 CC||vmakarov at gcc dot gnu.org

--- Comment #6 from Andrey Belevantsev abel at gcc dot gnu.org ---
Well, I guess one is responsible for what one has tamed, so reproduced now.

The issue is actually simple -- we add new blocks when scheduling (they are
recovery blocks for speculation insns) and for them we do not calculate
DF_LIVE_IN bitmaps so we segfault when we try to read those bitmaps in the
sched pressure info initialization code.  I see the following possible fixes:

1) calculate liveness for the new blocks via the DF interface.  Now it doesn't
look like anyone is using the partial analysis interface via df_set_blocks
nowadays, and the new blocks do not form a loop so df_analyze_loop Richard has
added would not work.  What can be done is gather the new blocks in a separate
bitmap and add their preds/succs which should hopefully have the right liveness
info, so partial df_analyze on those can do the trick.

2) manually calculate liveness for the new blocks.  Again DF doesn't offer much
for this, you'd need to df_grow_block_info for df_live and then try deriving
the liveness information from the original block's successor.  This will need
some manual propagation through the new block as we do in the selective
scheduler.

3) decide that the recovery code is supposed to be cold enough so we don't care
about applying register pressure sensitive code to it, thus reset
sched_pressure to SCHED_PRESSURE_NONE for all newly created regions.  The patch
from the previous comment does just that; we only need to free the
sched-pressure data immediately at this point as we later fail to do that and
ICE in IRA later.  I had to factorize the finalization code in a separate
function for that.  
The patch supports only blocks ending up in the new region, not the same
region, but it looks like the current code always puts recovery blocks in the
new region.

Vlad, what's your opinion on this?


[Bug middle-end/59561] [4.9 Regression] warning: iteration 4 invokes undefined behavior

2014-01-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59561

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org ---
(In reply to janus from comment #0)
 with -O2 and -O3, while 4.8 did not do that. Probably the warning is ok,
 since the test case is supposed to trigger a runtime error (Index '5' of
 dimension 2 of array 'a' outside of expected range (4:1)).

Of course the warning is correct.
 
 However, I see three possible problems:
 1) The question is why it only happens with SAVE.

I get the warning also without SAVE.  Furthermore, the warning is not
guaranteed for all undefined behaviors in the loop of course, only if the loop
has known constant number of iterations, no early exits and is known to trigger
selected kinds of undefined behavior in some of the iterations.

 2) I don't understand why the warning has 'iteration 4'. Shouldn't iteration
 5 be the problem?

This is a middle-end warning, I don't see how the middle-end could find out
that the frontend wants to count the iterations differently.

 3) The warning appears twice.

For that I have an untested fix:

2014-01-22  Jakub Jelinek  ja...@redhat.com

PR middle-end/59561
* cfgloopmanip.c (copy_loop_info): If
loop-warned_aggressive_loop_optimizations, make sure
the flag is set in target loop too.

--- gcc/cfgloopmanip.c.jj2014-01-03 11:40:33.0 +0100
+++ gcc/cfgloopmanip.c2014-01-22 10:21:54.057871045 +0100
@@ -1022,6 +1022,8 @@ copy_loop_info (struct loop *loop, struc
   target-any_estimate = loop-any_estimate;
   target-nb_iterations_estimate = loop-nb_iterations_estimate;
   target-estimate_state = loop-estimate_state;
+  target-warned_aggressive_loop_optimizations
+|= loop-warned_aggressive_loop_optimizations;
 }

 /* Copies copy of LOOP as subloop of TARGET loop, placing newly


[Bug c/59891] [4.7/4.8/4.9 Regression] ICE on invalid code (with div-by-zero) at all optimization levels on x86_64-linux-gnu

2014-01-22 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59891

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |mpolacek at gcc dot 
gnu.org

--- Comment #9 from Marek Polacek mpolacek at gcc dot gnu.org ---
Mine for now.


[Bug c++/14258] typename in a using declaration not supported

2014-01-22 Thread pipping at exherbo dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14258

Elias Pipping pipping at exherbo dot org changed:

   What|Removed |Added

 CC||pipping at exherbo dot org

--- Comment #18 from Elias Pipping pipping at exherbo dot org ---
I'm a bit confused here. Please consider the following piece of code:

SNIP

template typename T struct A {
  typedef int type;
};

template typename T struct B : public AT {
  using typename AT::type;
  static const int block_size = type::block_size;
};

SNAP

Compiling it with gcc 4.8.2 yields

  foo.hh:9:33: error: ‘type’ is not a class, namespace, or enumeration

whereas clang 3.4 will happily accept it(*).

At a first glance, this bug appears to address issues such as this, so that gcc
4.8.2 should be fine. This does not seem to be the case, however -- the test
case provided by Jim Apple compiles but the one above does not; I'll have to
assume the bug was only partly fixed?


(*) I orginally thought this was not valid and filed a clang bug:
http://llvm.org/bugs/show_bug.cgi?id=18574

[Bug tree-optimization/59903] [4.8/4.9 Regression] ICE on valid code at -O3 on x86_64-linux-gnu (affecting trunk and 4.8.x)

2014-01-22 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59903

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-01-22
 CC||mpolacek at gcc dot gnu.org
 Ever confirmed|0   |1


[Bug sanitizer/57316] [4.8/4.9 regression] build failure in libsanitizer

2014-01-22 Thread y.gribov at samsung dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57316

Yury Gribov y.gribov at samsung dot com changed:

   What|Removed |Added

 CC||y.gribov at samsung dot com

--- Comment #11 from Yury Gribov y.gribov at samsung dot com ---
Created attachment 31916
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31916action=edit
More robust check

Does this look reasonable? Should also work for cross-builds.


[Bug c++/53492] internal compiler error: in retrieve_specialization, at cp/pt.c:985

2014-01-22 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53492

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 CC||burrows.labs at gmail dot com

--- Comment #3 from Marek Polacek mpolacek at gcc dot gnu.org ---
*** Bug 59901 has been marked as a duplicate of this bug. ***


[Bug c++/59901] internal compiler error: in retrieve_specialization cp/pt.c:1012

2014-01-22 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59901

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||mpolacek at gcc dot gnu.org
 Resolution|--- |DUPLICATE

--- Comment #1 from Marek Polacek mpolacek at gcc dot gnu.org ---
Dup.

*** This bug has been marked as a duplicate of bug 53492 ***


[Bug sanitizer/57316] [4.8/4.9 regression] build failure in libsanitizer

2014-01-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57316

--- Comment #12 from Jakub Jelinek jakub at gcc dot gnu.org ---
(In reply to Yury Gribov from comment #11)
 Created attachment 31916 [details]
 More robust check
 
 Does this look reasonable? Should also work for cross-builds.

1) these syscalls are only needed on Linux, not on Darwin I think, so you
change would disable libsanitizer on Darwin (not that I care about it)

2) I think it is undesirable to put this check into toplevel configure, I'd say
the determination when to make the whole libsanitizer UNSUPPORTED should be
limited to target triplet checking.  I think my preference would be to test
this in libsanitizer/configure* and just make even the asan etc. conditional on
an automake conditional.


[Bug c++/14258] typename in a using declaration not supported

2014-01-22 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14258

--- Comment #19 from Jonathan Wakely redi at gcc dot gnu.org ---
That example's a bit misleading, because 'int' really isn't a class, namespace
or enumeration, but the error's wrong because there could be a specialization
of A, and the same error is produced even if AT::type is a class type.

Fabien, the fix doesn't seem to work with nested-name-specifiers, do you
remember if there's another bug report about that case?


[Bug c++/14258] typename in a using declaration not supported

2014-01-22 Thread fabien at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14258

--- Comment #20 from fabien at gcc dot gnu.org ---
(In reply to Jonathan Wakely from comment #19)

 Fabien, the fix doesn't seem to work with nested-name-specifiers, do you
 remember if there's another bug report about that case?

Yes, it's probably PR58047.


[Bug libstdc++/59656] weak_ptr::lock function crashes when compiling with -fno-exceptions flag

2014-01-22 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59656

--- Comment #5 from Jonathan Wakely redi at gcc dot gnu.org ---
Thanks Paul. You mentioned a proposed patch, are you working on that? From a
quick look I didn't see how to fix it without adding a
_Sp_counted_base::_M_add_ref_lock_nothrow() function and adding new
constructors taking an additional std::nothrow_t argument to the whole class
hierarchy. Did you have a simpler fix in mind?


[Bug sanitizer/57316] [4.8/4.9 regression] build failure in libsanitizer

2014-01-22 Thread y.gribov at samsung dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57316

Yury Gribov y.gribov at samsung dot com changed:

   What|Removed |Added

  Attachment #31916|0   |1
is obsolete||

--- Comment #13 from Yury Gribov y.gribov at samsung dot com ---
Created attachment 31917
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31917action=edit
Second try

(In reply to Jakub Jelinek from comment #12)
 1) these syscalls are only needed on Linux, not on Darwin I think, so you
 change would disable libsanitizer on Darwin (not that I care about it)

Fixed.

 2) I think it is undesirable to put this check into toplevel configure
 I'd say
 the determination when to make the whole libsanitizer UNSUPPORTED should be
 limited to target triplet checking.

I see.

 I think my preference would be to test
 this in libsanitizer/configure* and just make even the asan etc. conditional
 on an automake conditional.

Makes sense. Something like this then?


[Bug c++/14258] typename in a using declaration not supported

2014-01-22 Thread pipping at exherbo dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14258

--- Comment #21 from Elias Pipping pipping at exherbo dot org ---
(In reply to Jonathan Wakely from comment #19)
 That example's a bit misleading, because 'int' really isn't a class,
 namespace or enumeration, but the error's wrong because there could be a
 specialization of A, and the same error is produced even if AT::type is
 a class type.

You're right. This will reproduce the problem, too:

SNIP

struct C;

template typename T struct A {
  typedef C type;
};

template typename T struct B : public AT {
  using typename AT::type;
  static const int block_size = type::block_size;
};

SNAP


[Bug target/59904] New: [ARM] tls-reload-1.c fails

2014-01-22 Thread christophe.lyon at st dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59904

Bug ID: 59904
   Summary: [ARM] tls-reload-1.c fails
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: christophe.lyon at st dot com

Since commit 206897 (LRA fix PR rtl-optimization/59858)
I have noticed that:
gcc.dg/torture/tls/tls-reload-1.c  -Os  -pie -fPIE  execution test
gcc.dg/torture/tls/tls-reload-1.c  -Os  -pie -fpie  execution test

the compiler used to ICE, but after the LRA fix the generated code is not
functional.

I have tested with qemu-arm, target arm-none-linux-gnueabi, --with-mode=thumb
--with-cpu=cortex-a9, using RUNTESTFLAGS=-march=armv5t

gcc.log contains:
qemu: uncaught target signal 6 (Aborted) - core dumped


[Bug c++/14258] typename in a using declaration not supported

2014-01-22 Thread pipping at exherbo dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14258

--- Comment #22 from Elias Pipping pipping at exherbo dot org ---
I guess my test case is a reduction/duplicate of PR37140.


[Bug target/56315] ARM: Improve use of 64-bit constants in logical operations

2014-01-22 Thread ktkachov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56315

ktkachov at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||ktkachov at gcc dot gnu.org
 Resolution|--- |FIXED

--- Comment #3 from ktkachov at gcc dot gnu.org ---
This is now fixed on trunk, most probably with r199527.


[Bug sanitizer/57316] [4.8/4.9 regression] build failure in libsanitizer

2014-01-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57316

--- Comment #14 from Jakub Jelinek jakub at gcc dot gnu.org ---
I wouldn't call the conditional SYSCALL_SUPPORTED, but SANITIZER_SUPPORTED or
so.
In the future, the configure could have various other reasons why it should
give up on building any sanitizer libraries altogether.  Also, supposedly
__NR_gettid could be added to the test too.


[Bug target/51980] ARM - Neon code polluted by useless stores to the stack with vuzpq / vzipq / vtrnq

2014-01-22 Thread ktkachov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51980

ktkachov at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ktkachov at gcc dot gnu.org

--- Comment #8 from ktkachov at gcc dot gnu.org ---
 arm-none-eabi-gcc -march=armv7-a -mfpu=neon -mfloat-abi=softfp -O2 -mthumb:
 sqrlen4D_16u8:
 vmovd18, r0, r1  @ v16qi
 vmovd19, r2, r3
 vld1.64 {d16-d17}, [sp:64]
 vabd.u8 q8, q9, q8
 vmull.u8q9, d16, d16
 vmull.u8q8, d17, d17
 vuzp.32 q9, q8
 vpaddl.u16  q9, q9
 vmovq10, q9  @ v4si
 vpadal.u16  q10, q8
 vmovr0, r1, d20  @ v4si
 vmovr2, r3, d21
 bx  lr

With current trunk I'm getting for the softfp case:

push{lr}@ 40*push_multi [length = 2]
vmovd16, r0, r1  @ v16qi@ 37*neon_movv16qi/6[length
= 8]
vmovd17, r2, r3
add lr, sp, #4  @ 36*arm_addsi3/5   [length = 4]
vldrd18, [sp, #4]   @ 3 *neon_movv16qi/4[length = 8]
vldrd19, [sp, #12]
vabd.u8 q9, q8, q9  @ 7 neon_vabdv16qi  [length = 4]
vmull.u8q8, d18, d18@ 14neon_vmullv8qi  [length = 4]
vmull.u8q9, d19, d19@ 16neon_vmullv8qi  [length = 4]
vuzp.32 q8, q9  @ 18*neon_vuzpv4si_insn [length = 4]
vpaddl.u16  q8, q8  @ 22neon_vpaddlv8hi [length = 4]
vpadal.u16  q8, q9  @ 28neon_vpadalv8hi [length = 4]
vmovr0, r1, d16  @ v4si @ 39*neon_movv4si/5 [length = 8]
vmovr2, r3, d17
ldr pc, [sp], #4@ 45*ldr_with_return[length = 4]


The move between the vpad*s is gone, but there's a couple of redundant loads
and some register spillage.


[Bug target/51980] ARM - Neon code polluted by useless stores to the stack with vuzpq / vzipq / vtrnq

2014-01-22 Thread StaffLeavers at arm dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51980

--- Comment #9 from StaffLeavers at arm dot com ---
greta.yorsh no longer works for ARM.

Your email will be forwarded to their line manager.


Please do not reply to this email.
If you need more information, please email real-postmas...@arm.com

Thank you.


[Bug target/51980] ARM - Neon code polluted by useless stores to the stack with vuzpq / vzipq / vtrnq

2014-01-22 Thread StaffLeavers at arm dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51980

--- Comment #10 from StaffLeavers at arm dot com ---
greta.yorsh no longer works for ARM.

Your email will be forwarded to their line manager.


Please do not reply to this email.
If you need more information, please email real-postmas...@arm.com

Thank you.


[Bug target/51980] ARM - Neon code polluted by useless stores to the stack with vuzpq / vzipq / vtrnq

2014-01-22 Thread StaffLeavers at arm dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51980

--- Comment #11 from StaffLeavers at arm dot com ---
greta.yorsh no longer works for ARM.

Your email will be forwarded to their line manager.


Please do not reply to this email.
If you need more information, please email real-postmas...@arm.com

Thank you.


[Bug target/51980] ARM - Neon code polluted by useless stores to the stack with vuzpq / vzipq / vtrnq

2014-01-22 Thread StaffLeavers at arm dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51980

--- Comment #12 from StaffLeavers at arm dot com ---
greta.yorsh no longer works for ARM.

Your email will be forwarded to their line manager.


Please do not reply to this email.
If you need more information, please email real-postmas...@arm.com

Thank you.


[Bug target/51980] ARM - Neon code polluted by useless stores to the stack with vuzpq / vzipq / vtrnq

2014-01-22 Thread StaffLeavers at arm dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51980

--- Comment #13 from StaffLeavers at arm dot com ---
greta.yorsh no longer works for ARM.

Your email will be forwarded to their line manager.


Please do not reply to this email.
If you need more information, please email real-postmas...@arm.com

Thank you.


[Bug c/59905] New: Unfriendly abort when calling a fucntion via a function pointer cast

2014-01-22 Thread nisse at lysator dot liu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59905

Bug ID: 59905
   Summary: Unfriendly abort when calling a fucntion via a
function pointer cast
   Product: gcc
   Version: 4.7.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: nisse at lysator dot liu.se

Created attachment 31918
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31918action=edit
Example program

Some background:

In GNU nettle, I use function casts between function types differing in
the type of some pointer arguments. E.g.,

  struct s;

  int foo(struct s *);

  typedef int func_t(void *);

  func_t *f = (func_t *) foo;

Later on, f will be called with an argument of type void *, which
actually is a pointer to a valid struct s, but cast to void *.

I'm aware this is not strictly valid C, but I expect it to work on
virtually all C implementations, because struct s may well be an
incomplete type, and hence the calling conventions cannot reasonably
depend on it's actual definition. If it matters, I could replace void
* above by struct anything *, where struct anything is a different
incomplete type, not defined in any compilation unit ever.

(If you know any examples of architectures, supported by gcc or
otherwise, where calling conventions make this break, I'd be curious
to know about it).

And I think this style is fairly common in object oriented C code. The
closest alternatives, if one wants to stick to the C specification, is
to either skip type checking altogether, always using void * for the
function arguments, and casting when used. Or have do-nothing wrapper
functions like

  int foo(struct s *);
  int foo_wrapper(void *p) { return foo(p); }

This would typically compile to a single jump instruction, but I don't
think the wrapper can be eliminated completely by an optimizing C
compiler, because it is required that pointer comparison foo ==
foo_wrapper gives a false result.

And the reason I care is that I have a library with fairly a large
number of functions, which I want to let applications call either
directly, *with* strong type checking of all arguments, or call via an
abstraction using function pointers and void * instead of the real
struct type pointer, for state/context arguments.

This style seems to work fine with gcc. The surprise is when you call
a function via a cast like this, *without* first storing it a
variable. Like

  struct s;
  ((func_t *)foo)(s);

Here, the compiler issues a warning, and replaces the call by a call
to abort(). I'm attaching a complete example program. With gcc-4.7.2,
on Debian GNU/linux x86_64, this is what happens (and it's the same
with gcc-4.4 and gcc-4.6)

  $ gcc func-cast.c 
  func-cast.c: In function ‘main’:
  func-cast.c:33:41: warning: function called through a non-compatible type
[enabled by default]
  func-cast.c:33:41: note: if this code is reached, the program will abort
  $ ./a.out
  foo x: 1
  bar x (var): 2
  Illegal instruction (core dumped)

I find this behaviour a bit obnoxious... I understand you might just
say that this is bad code and gcc could emit an exec(nethack) if it
wanted to. I think the current gcc behaviour is bad, in particular as
default behavior, because

1. Generating a call to abort is generally unfriendly.

2. I expect that

 f = expr; f(...);

   and

 (expr)(...);

   should behave in roughly the same way for all possible expr, at
   least as long as f and expr have the same type, so the assignment
   itself doesn't imply any type conversion.

3. I think the compiler should in general treat explicit casts in the
   source code as meaning I think I know what I'm doing, please don't
   complain about it.

[Bug bootstrap/56645] libgcc /configure identifies non-existing /lib/cpp as preprocessor on Mingw

2014-01-22 Thread lode.leroy at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56645

Lode Leroy lode.leroy at gmail dot com changed:

   What|Removed |Added

 CC||lode.leroy at gmail dot com

--- Comment #3 from Lode Leroy lode.leroy at gmail dot com ---
cpp is not found by configure: which cpp returns '/mingw/bin/cpp'

/lib/cpp happens to be the last one tried in 
libgcc/configure:3859



[Bug tree-optimization/59594] [4.9 Regression] wrong code (by tree vectorizer) at -O3 on x86_64-linux-gnu

2014-01-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59594

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org ---
Created attachment 31919
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31919action=edit
gcc49-pr59594.patch

Untested patch for discussion.  The reason why we (incorrectly) vectorize the
testcase is that we ignore the data dependency, on the testcase both the b[a]
read vs. b[a+1] store and b[a] store vs. b[a+1] store DDRs have dist 1 and
DDR_REVERSED_P set and we ignore those.  Now on say:
int printf (const char *, ...);

int a;
static int b[1024];

int
main ()
{
  for (a = 0; a = 512; a++)
{
  b[a - 1] = b[a];
  b[a] = 1;
}
  printf (%d\n, b[1]);
  return 0;
}
only the b[a] read vs. b[a-1] store is dist 1 DDR_REVERSED_P and b[a] store vs.
b[a-1] store is dist 1 !DDR_REVERSED_P, thus we don't vectorize it (correctly).
Unfortunately not ignoring dist  0  DDR_REVERSED_P ddrs for negative step
regresses the testcase I've attached, where there is a write after read ddr and
it works properly with the current check.  While the attached patch keeps that
testcase (no-vfa-vect-depend*.c) working and fixes the test (pr59594.c), the
conditions are piled completely randomly, I'm afraid I don't know why it is so,
if for the DDR_REVERSED_P continue it matters whether step is positive or
negative, or if that is irrelevant and all the write after write DDR_REVERSED_P
ddrs need to be checked normally (abs (dist) = *max_vf), or if say only write
after read should be treated as the code treats it right now and even read
after write is problematic.  The DDR_REVERSED_P stuff has been added in 2007
for PR32377, see e.g. http://gcc.gnu.org/ml/gcc-patches/2007-09/msg01067.html

Richard, any ideas?


[Bug libstdc++/59656] weak_ptr::lock function crashes when compiling with -fno-exceptions flag

2014-01-22 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59656

--- Comment #6 from Jonathan Wakely redi at gcc dot gnu.org ---
Created attachment 31920
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31920action=edit
don't use _M_add_ref_lock() when exceptions are disabled

Here's a patch which fixes Paul's testcase


[Bug fortran/59906] New: [4.7/4.8 Regression] error: size of variable 'anonymous' is too large

2014-01-22 Thread anlauf at gmx dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59906

Bug ID: 59906
   Summary: [4.7/4.8 Regression] error: size of variable
'anonymous' is too large
   Product: gcc
   Version: 4.8.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: anlauf at gmx dot de

Hi,

a colleague just reported a regression for the code below.
It compiles fine with 4.3.4 and 4.5.0, but fails with 4.7.4 and 4.8.2.
Cannot check trunk right now.

% gfortran48 robin_gfortran_bug.f90
robin_gfortran_bug.f90: In function 'y':
robin_gfortran_bug.f90:17:0: error: size of variable 'anonymous' is too large
 print*,str_cmp((/'aaa','bbb'/), str_aux)
 ^

% gfortran47 robin_gfortran_bug.f90  
robin_gfortran_bug.f90: In function 'y':
robin_gfortran_bug.f90:17:0: error: size of variable 'anonymous' is too large


% cat robin_gfortran_bug.f90
program x
  implicit none
  call y('abcdef')
contains 

  subroutine y(str)
character(len=*), intent(in) :: str

character(len=len_trim(str)) :: str_aux

str_aux = str

! Compiles
!   print*,str_cmp((/'aaa','bbb'/), str)

! Does not compile:
print*,str_cmp((/'aaa','bbb'/), str_aux)

  end subroutine y

  elemental logical function str_cmp(str1, str2)
character(len=*), intent(in) :: str1
character(len=*), intent(in) :: str2
str_cmp = (str1 == str2)
  end function str_cmp

end program x


[Bug sanitizer/57316] [4.8/4.9 regression] build failure in libsanitizer

2014-01-22 Thread y.gribov at samsung dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57316

Yury Gribov y.gribov at samsung dot com changed:

   What|Removed |Added

  Attachment #31917|0   |1
is obsolete||

--- Comment #15 from Yury Gribov y.gribov at samsung dot com ---
Created attachment 31921
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31921action=edit
Third try

Makes sense, patch updated.


[Bug sanitizer/59029] ICE with builtin function and -fsanitize=address

2014-01-22 Thread y.gribov at samsung dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59029

--- Comment #7 from Yury Gribov y.gribov at samsung dot com ---
Volker, could you close this bug if gcc trunk works for you?


[Bug other/59384] Cilk Plus array notation with for loop after segfaults

2014-01-22 Thread nick.tomlinson at arm dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59384

--- Comment #2 from Nick Tomlinson nick.tomlinson at arm dot com ---
I tried that patch against the latest CilkPlus branch, but could not apply it.
I also tried building GCC 4.9 from trunk, but could not use cilk_for. Please
could you let me know if there is a branch that supports both cilk_for and
array notation?

Thanks


[Bug sanitizer/57316] [4.8/4.9 regression] build failure in libsanitizer

2014-01-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57316

--- Comment #16 from Jakub Jelinek jakub at gcc dot gnu.org ---
Sorry for not catching it earlier, I'm worried about -Wunused complaining about
the vars.  Can you instead use something like
int x = syscall (__NR_gettid);
syscall (__NR_futex, x, 1, 1);
syscall (__NR_exit_group, 0);
?  Please post to gcc-patches with the change (if it works).  Thanks.


[Bug sanitizer/57316] [4.8/4.9 regression] build failure in libsanitizer

2014-01-22 Thread y.gribov at samsung dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57316

--- Comment #17 from Yury Gribov y.gribov at samsung dot com ---
Will do.


[Bug fortran/59906] [4.7/4.8 Regression] error: size of variable 'anonymous' is too large

2014-01-22 Thread anlauf at gmx dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59906

Harald Anlauf anlauf at gmx dot de changed:

   What|Removed |Added

  Known to work||4.1.2
  Known to fail||4.4.5, 4.5.2, 4.6.3

--- Comment #1 from Harald Anlauf anlauf at gmx dot de ---
It's not entirely clear when the regression occured.

I see no failure with

GNU Fortran (SUSE Linux) 4.5.0 20100604 [gcc-4_5-branch revision 160292]

but the failure occurs with 4.4.5 and 4.5.2 on a Debian based system.


[Bug rtl-optimization/59811] [4.8/4.9 Regression] Huge increase in memory usage and compile time in combine

2014-01-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59811

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org ---
Started with r190594 which apparently made big changes in some of the GIMPLE
passes, e.g. the optimized dump linecount went down from 65782 lines (r190593)
to 52107 lines (r190594).  But, for some reason that change results in
uncomparably more log links and combiner opportunities.
In -fdump-rtl-combine-details dump, 'Successfully match' matches went up from
9742 up to 3921927, and 'Failed to match' matches went up from 53193 to
22538586.
So, the combiner success rate is approximately the same, around 17.5%, just on
400 times more opportunities.
For GIMPLE passes, looking just at the sizes of the gimple dumps, until esra
the sizes are the same, from fre1 the dump with r190594 is slightly to
significantly larger than corresponding r190593 dump until crited, and then
surprisingly the pre dump is on the other side half the size of r190593 dump
and from sink till optimized the dump sizes roughly match the 65782 to 52107
lines.


[Bug rtl-optimization/59811] [4.8/4.9 Regression] Huge increase in memory usage and compile time in combine

2014-01-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59811

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org ---
With -O2 -fno-automatic -ffixed-line-length-none --param
sccvn-max-alias-queries-per-access=1300 the combiner completely disappears out
of the picture, supposedly because then FRE/PRE doesn't give up, with 1200 the
combiner already takes 17% of compile time and 77% of memory, with the default
1000 it takes 58% of compile time and 96% of memory.


[Bug c++/37140] type inherited from base class not recognized

2014-01-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37140

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC|joao.eiras at gmail dot com|

--- Comment #9 from Paolo Carlini paolo.carlini at oracle dot com ---
Fabien, any news on this - now that we are in Stage 3?


[Bug other/59384] Cilk Plus array notation with for loop after segfaults

2014-01-22 Thread bviyer at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59384

Balaji V. Iyer bviyer at gmail dot com changed:

   What|Removed |Added

 CC||bviyer at gmail dot com

--- Comment #3 from Balaji V. Iyer bviyer at gmail dot com ---
Try this patch and the trunk revision mentioned in the thread:
http://gcc.gnu.org/ml/gcc-patches/2014-01/msg01170.html


[Bug target/56315] ARM: Improve use of 64-bit constants in logical operations

2014-01-22 Thread josh.m.conner at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56315

--- Comment #4 from Joshua Conner josh.m.conner at gmail dot com ---
Excellent - thanks!


[Bug ada/59907] New: Ada 2012 Indefinite_Holders Reference_Type is not implemented

2014-01-22 Thread christian_morgenr...@t-online.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59907

Bug ID: 59907
   Summary: Ada 2012 Indefinite_Holders Reference_Type is not
implemented
   Product: gcc
   Version: unknown
   URL: http://ada-auth.org/standards/12rm/html/RM-A-18-18.htm
l
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: ada
  Assignee: unassigned at gcc dot gnu.org
  Reporter: christian_morgenr...@t-online.de

The Ada 2012 Indefinite_Holders package declares the following types and
functions which aren't implemented yet:

type Constant_Reference_Type
  (Element : not null access constant Element_Type) is private
   with Implicit_Dereference = Element;

type Reference_Type (Element : not null access Element_Type) is private
   with Implicit_Dereference = Element;

function Constant_Reference (Container : aliased in Holder)
   return Constant_Reference_Type;

function Reference (Container : aliased in out Holder)
   return Reference_Type;


[Bug target/43538] config/mt-gnu CXXFLAGS_FOR_TARGET

2014-01-22 Thread glisse at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43538

Marc Glisse glisse at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||build
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-01-22
 Ever confirmed|0   |1

--- Comment #1 from Marc Glisse glisse at gcc dot gnu.org ---
CXXFLAGS_FOR_TARGET is currently useless on platforms using mt-gnu...


[Bug tree-optimization/59908] New: Incorrect uninit warning with -fsanitize=address caused by LIM

2014-01-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59908

Bug ID: 59908
   Summary: Incorrect uninit warning with -fsanitize=address
caused by LIM
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jakub at gcc dot gnu.org

struct S
{
  int s;
  struct S *p;
};
extern void bar (void) __attribute__ ((__noreturn__));
extern void baz (struct S **);

void
foo (struct S *x, long c)
{
  int s;
  struct S *y;
  if (c)
bar ();
lab:
  s = x-s;
  y = x;
  switch (s)
{
case 0:
  x = x-p;
  goto lab;
case 1:
  baz (y);
}
}

when compiled with -O2 -Wall -fsanitize=address incorrectly warns about maybe
uninitialized y, with just -O2 -Wall it doesn't (both 4.8 and trunk).

I couldn't find anything wrong in the -fdump-tree-asan1-all dump though, seems
like the problematic uninitialized load is inserted by lim pass, a single store
into y in the loop is replaced by load from uninitialized var before the loop
and 4 different stores after the loop (2 before the __asan_report* noreturn
calls, one before call to baz and one before exit.


[Bug tree-optimization/59908] Incorrect uninit warning with -fsanitize=address caused by LIM

2014-01-22 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59908

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-01-22
 CC||mpolacek at gcc dot gnu.org
   Target Milestone|--- |4.9.0
 Ever confirmed|0   |1

--- Comment #1 from Marek Polacek mpolacek at gcc dot gnu.org ---
Confirmed.


[Bug target/59691] cilk-plus run failures on non-sse processors

2014-01-22 Thread bviyer at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59691

--- Comment #2 from Balaji V. Iyer bviyer at gmail dot com ---
Hello Bernd,
I don't have a pentium 2 machine readily available. Can you try this patch
and see if it works for you?

Thanks,

Balaji V. Iyer.

diff --git a/libcilkrts/runtime/config/x86/os-unix-sysdep.c
b/libcilkrts/runtime
/config/x86/os-unix-sysdep.c
index 881bc3f..8d5642c 100644
--- a/libcilkrts/runtime/config/x86/os-unix-sysdep.c
+++ b/libcilkrts/runtime/config/x86/os-unix-sysdep.c
@@ -47,7 +47,7 @@
 // save the FP state (rounding mode and the like) before calling setjmp.  We
 // will need to restore that state when we resume.
 #ifndef __MIC__
-# if defined(__i386__) || defined(__x86_64)
+# if (defined(__i386__) || defined(__x86_64))  defined (__SSE__)
 #   define RESTORE_X86_FP_STATE
 # endif // defined(__i386__) || defined(__x86_64)
 #endif  // __MIC__


[Bug target/59691] cilk-plus run failures on non-sse processors

2014-01-22 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59691

--- Comment #3 from Andrew Pinski pinskia at gcc dot gnu.org ---
(In reply to Balaji V. Iyer from comment #2)
 Hello Bernd,
 I don't have a pentium 2 machine readily available. Can you try this
 patch and see if it works for you?

This is not correct, there should be a runtime check rather than a compile time
one.

 
 Thanks,
 
 Balaji V. Iyer.
 
 diff --git a/libcilkrts/runtime/config/x86/os-unix-sysdep.c
 b/libcilkrts/runtime
 /config/x86/os-unix-sysdep.c
 index 881bc3f..8d5642c 100644
 --- a/libcilkrts/runtime/config/x86/os-unix-sysdep.c
 +++ b/libcilkrts/runtime/config/x86/os-unix-sysdep.c
 @@ -47,7 +47,7 @@
  // save the FP state (rounding mode and the like) before calling setjmp.  We
  // will need to restore that state when we resume.
  #ifndef __MIC__
 -# if defined(__i386__) || defined(__x86_64)
 +# if (defined(__i386__) || defined(__x86_64))  defined (__SSE__)
  #   define RESTORE_X86_FP_STATE
  # endif // defined(__i386__) || defined(__x86_64)
  #endif  // __MIC__


[Bug target/59691] cilk-plus run failures on non-sse processors

2014-01-22 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59691

--- Comment #4 from Jeffrey A. Law law at redhat dot com ---
On 01/22/14 10:45, pinskia at gcc dot gnu.org wrote:
 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59691

 --- Comment #3 from Andrew Pinski pinskia at gcc dot gnu.org ---
 (In reply to Balaji V. Iyer from comment #2)
 Hello Bernd,
  I don't have a pentium 2 machine readily available. Can you try this
 patch and see if it works for you?

 This is not correct, there should be a runtime check rather than a compile 
 time
 one.
Also note that you can usually change the underlying processor in VM 
environments.  That's obviously useful for testing this kind of thing. 
VMs are, umm, goodness.

jeff


[Bug fortran/59906] [4.7/4.8 Regression] error: size of variable 'anonymous' is too large

2014-01-22 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59906

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-01-22
Version|4.8.2   |4.7.3
   Target Milestone|--- |4.7.4
 Ever confirmed|0   |1

--- Comment #2 from H.J. Lu hjl.tools at gmail dot com ---
It is caused by r158683.


[Bug target/59909] Quad memory bootstrap issues on little endian powerpc64 power8 systems

2014-01-22 Thread meissner at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59909

Michael Meissner meissner at gcc dot gnu.org changed:

   What|Removed |Added

 Target||powerpc64le-linux
 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2014-01-22
 CC||bergner at gcc dot gnu.org,
   ||dje at gcc dot gnu.org,
   ||matz at gcc dot gnu.org,
   ||wschmidt at gcc dot gnu.org
   Host||powerpc64le-linux
   Assignee|unassigned at gcc dot gnu.org  |meissner at gcc dot 
gnu.org
 Ever confirmed|0   |1
  Build||powerpc64le-linux


[Bug c++/59482] A friend class cannot inherit a private nested class

2014-01-22 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59482

--- Comment #2 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org ---
Author: paolo
Date: Wed Jan 22 18:08:01 2014
New Revision: 206933

URL: http://gcc.gnu.org/viewcvs?rev=206933root=gccview=rev
Log:
/cp
2014-01-22  Ville Voutilainen  ville.voutilai...@gmail.com

PR c++/59482
* parser.c (cp_parser_class_head): Push the class before parsing
the base-clause, pop after it.

/testsuite
2014-01-22  Ville Voutilainen  ville.voutilai...@gmail.com

PR c++/59482
* g++.dg/pr59482.C: New.

Added:
trunk/gcc/testsuite/g++.dg/pr59482.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/parser.c
trunk/gcc/testsuite/ChangeLog


[Bug target/59909] Quad memory bootstrap issues on little endian powerpc64 power8 systems

2014-01-22 Thread meissner at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59909

--- Comment #1 from Michael Meissner meissner at gcc dot gnu.org ---
Created attachment 31922
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31922action=edit
Proposed patch to fix the problem

Split quad-memory support into two options, -mquad-memory for non-atomic
load/stores, -mquad-memory-atomic for atomic load/stores.  Don't allow
non-atomic quad load/stores in little endian mode.  Swap double words in little
endian mode for atomic loads/stores.


[Bug target/59909] New: Quad memory bootstrap issues on little endian powerpc64 power8 systems

2014-01-22 Thread meissner at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59909

Bug ID: 59909
   Summary: Quad memory bootstrap issues on little endian
powerpc64 power8 systems
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: meissner at gcc dot gnu.org

Using the current sources, the GCC 4.9 compiler will not bootstrap if the
default target is power8 on a little endian system.  The cause is the new quad
word load/store support does not deal with swapping words after doing the load,
and before doing the store.


[Bug target/59909] Quad memory bootstrap issues on little endian powerpc64 power8 systems

2014-01-22 Thread meissner at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59909

--- Comment #2 from Michael Meissner meissner at gcc dot gnu.org ---
Created attachment 31923
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31923action=edit
Patch back ported to the ibm/gcc-4_8-branch

Back ported patch to ibm/gcc-4_8-branch.


[Bug target/59379] [4.9 Regression] gomp_init_num_threads is compiled into an infinite loop with --with-arch=corei7 --with-cpu=slm

2014-01-22 Thread uros at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59379

--- Comment #21 from uros at gcc dot gnu.org ---
Author: uros
Date: Wed Jan 22 18:28:30 2014
New Revision: 206934

URL: http://gcc.gnu.org/viewcvs?rev=206934root=gccview=rev
Log:
Backport from mainline
2014-01-20  Uros Bizjak  ubiz...@gmail.com

* config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
for SImode_address_operand operands, having only a REG argument.

2014-01-20  Jakub Jelinek  ja...@redhat.com

PR target/59880
* config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
if operands[1] is a REG or ZERO_EXTEND of a REG.

2014-01-18  Uros Bizjak  ubiz...@gmail.com
H.J. Lu  hongjiu...@intel.com

PR target/59379
* config/i386/i386.md (*leamode): Zero-extend return register
to DImode for zero-extended addresses.


Modified:
branches/gcc-4_8-branch/gcc/ChangeLog
branches/gcc-4_8-branch/gcc/config/i386/i386.c
branches/gcc-4_8-branch/gcc/config/i386/i386.md


[Bug target/59880] ix86_avoid_lea_for_addr is buggy

2014-01-22 Thread uros at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59880

--- Comment #11 from uros at gcc dot gnu.org ---
Author: uros
Date: Wed Jan 22 18:28:30 2014
New Revision: 206934

URL: http://gcc.gnu.org/viewcvs?rev=206934root=gccview=rev
Log:
Backport from mainline
2014-01-20  Uros Bizjak  ubiz...@gmail.com

* config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
for SImode_address_operand operands, having only a REG argument.

2014-01-20  Jakub Jelinek  ja...@redhat.com

PR target/59880
* config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
if operands[1] is a REG or ZERO_EXTEND of a REG.

2014-01-18  Uros Bizjak  ubiz...@gmail.com
H.J. Lu  hongjiu...@intel.com

PR target/59379
* config/i386/i386.md (*leamode): Zero-extend return register
to DImode for zero-extended addresses.


Modified:
branches/gcc-4_8-branch/gcc/ChangeLog
branches/gcc-4_8-branch/gcc/config/i386/i386.c
branches/gcc-4_8-branch/gcc/config/i386/i386.md


[Bug libstdc++/56779] [4.8/4.9 Regression] libstdc++.so: undefined reference to `libintl_textdomain'

2014-01-22 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56779

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

   Severity|major   |normal


[Bug target/59379] [4.9 Regression] gomp_init_num_threads is compiled into an infinite loop with --with-arch=corei7 --with-cpu=slm

2014-01-22 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59379

Uroš Bizjak ubizjak at gmail dot com changed:

   What|Removed |Added

 Target||x86
 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|4.9.0   |4.8.3

--- Comment #22 from Uroš Bizjak ubizjak at gmail dot com ---
Fixed.

[Bug c++/59482] A friend class cannot inherit a private nested class

2014-01-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59482

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |4.9.0

--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com ---
Fixed for 4.9.0.


[Bug c++/59886] [4.9 Regression] C++ array init optimization results in RANGE_EXPRs in assignments

2014-01-22 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59886

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |jason at gcc dot gnu.org


[Bug libstdc++/59656] weak_ptr::lock function crashes when compiling with -fno-exceptions flag

2014-01-22 Thread ppluzhnikov at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59656

--- Comment #7 from Paul Pluzhnikov ppluzhnikov at google dot com ---
Created attachment 31924
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31924action=edit
Alternate fix from Kyle Lippincott

Alternate patch, courtesy Kyle Lippincott spect...@google.com.

AFAIU, Kyle's patch uses roughly the same idea as Jonathan's,
but no #ifdef's.

Should we take these patches to gcc-patches list?


[Bug sanitizer/59029] ICE with builtin function and -fsanitize=address

2014-01-22 Thread reichelt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59029

Volker Reichelt reichelt at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #8 from Volker Reichelt reichelt at gcc dot gnu.org ---
Fixed on trunk by Yury's patch.


[Bug rtl-optimization/59477] [4.8/4.9 Regression] ICE: in assign_by_spills, at lra-assigns.c:1281 with -O

2014-01-22 Thread vmakarov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59477

--- Comment #8 from Vladimir Makarov vmakarov at gcc dot gnu.org ---
Author: vmakarov
Date: Wed Jan 22 19:38:47 2014
New Revision: 206938

URL: http://gcc.gnu.org/viewcvs?rev=206938root=gccview=rev
Log:
2014-01-22  Vladimir Makarov  vmaka...@redhat.com

PR rtl-optimization/59477
* lra-constraints.c (inherit_in_ebb): Process call for living hard
regs.  Update reloads_num and potential_reload_hard_regs for all
insns.

2014-01-22  Vladimir Makarov  vmaka...@redhat.com

PR rtl-optimization/59477
* g++.dg/pr59477.C: New.


Added:
trunk/gcc/testsuite/g++.dg/pr59477.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/lra-constraints.c
trunk/gcc/testsuite/ChangeLog


[Bug libstdc++/58764] [4.9 Regression] [lwg/2193] error: converting to ‘const std::vectorstd::basic_stringchar ’ from initializer list would use explicit constructor

2014-01-22 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58764

--- Comment #9 from Jonathan Wakely redi at gcc dot gnu.org ---
Author: redi
Date: Wed Jan 22 19:46:44 2014
New Revision: 206939

URL: http://gcc.gnu.org/viewcvs?rev=206939root=gccview=rev
Log:
PR libstdc++/58764
* include/bits/stl_deque.h (deque::deque(const allocator_type):
Split into separate default constructor and constructor taking
allocator.
* include/bits/stl_list.h (list::list(const allocator_type): Likewise.
* include/bits/stl_vector.h (vector::vector(const allocator_type):
Likewise.
* include/debug/deque (deque::deque(const allocator_type)): Likewise.
* include/debug/list (list::list(const _Allocator)): Likewise.
* include/debug/map.h (map::map(const _Compare, const _Allocator)):
Likewise.
* include/debug/multimap.h
(multimap::multimap(const _Compare, const _Allocator)): Likewise.
* include/debug/set.h (set::set(const _Compare, const _Allocator)):
Likewise.
* include/debug/multiset.h
(multiset::multiset(const _Compare, const _Allocator)): Likewise.
* include/debug/vector (vector::vector(const allocator_type)):
Likewise.
* include/profile/deque (deque::deque(const _Allocator)): Likewise.
* include/profile/list (list::list(const _Allocator)): Likewise.
* include/profile/map.h
(map::map(const _Compare, const _Allocator)): Likewise.
* include/profile/multimap.h
(multimap::multimap(const _Compare, const _Allocator)): Likewise.
* include/profile/set.h
(set::set(const _Compare, const _Allocator)): Likewise.
* include/profile/multiset.h
(multiset::multiset(const _Compare, const _Allocator)): Likewise.
* include/profile/vector (vector::vector(const _Allocator)):
Likewise.
* testsuite/23_containers/deque/58764.cc: New.
* testsuite/23_containers/list/58764.cc: New.
* testsuite/23_containers/map/58764.cc: New.
* testsuite/23_containers/multimap/58764.cc: New.
* testsuite/23_containers/set/58764.cc: New.
* testsuite/23_containers/multiset/58764.cc: New.
* testsuite/23_containers/vector/58764.cc: New.
* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
Adjust dg-error line number.
* testsuite/23_containers/deque/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.

Added:
trunk/libstdc++-v3/testsuite/23_containers/deque/58764.cc
  - copied, changed from r206938,
trunk/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc
trunk/libstdc++-v3/testsuite/23_containers/list/58764.cc
  - copied, changed from r206938,
trunk/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc
trunk/libstdc++-v3/testsuite/23_containers/map/58764.cc
  - copied, changed from r206938,
trunk/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc
trunk/libstdc++-v3/testsuite/23_containers/multimap/58764.cc
  - copied, changed from r206938,
trunk/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc
trunk/libstdc++-v3/testsuite/23_containers/multiset/58764.cc
  - copied, changed from r206938,
trunk/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc
trunk/libstdc++-v3/testsuite/23_containers/set/58764.cc
  - copied, changed from r206938,
trunk/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc
trunk/libstdc++-v3/testsuite/23_containers/vector/58764.cc
  - copied, changed from r206938,
trunk/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc
Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/bits/stl_deque.h
trunk/libstdc++-v3/include/bits/stl_list.h
trunk/libstdc++-v3/include/bits/stl_vector.h
trunk/libstdc++-v3/include/debug/deque
trunk/libstdc++-v3/include/debug/list
trunk/libstdc++-v3/include/debug/map.h
trunk/libstdc++-v3/include/debug/multimap.h
trunk/libstdc++-v3/include/debug/multiset.h
trunk/libstdc++-v3/include/debug/set.h
   

[Bug target/44107] gcc emits frame (epilogue) info incompatible with the darwin {8,9}-unwinder,10-compacter

2014-01-22 Thread iains at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44107

--- Comment #30 from Iain Sandoe iains at gcc dot gnu.org ---
(In reply to Denis Excoffier from comment #29)
 (In reply to Iain Sandoe from comment #28)
  Well, there is a fix - which is to update
  /usr/lib/libgcc_s.dylib to a non-buggy version.
 I had understood that it was desirable not to replace libgcc_s.dylib.

so long as the system was maintained by the Vendor, then indeed it would be a
bad thing but… see below

(It's also somewhat like open-heart surgery - if you make a mistake doing the
exchange then you need to boot from a different disk to recover.  This makes it
unsuitable, without an installer, for casual users)

 Personally, i use the sed command (shown in comment #17) to create my own
 libgcc_s.1.dylib, i install it with GCC in /usr/local (or equivalent) and
 try to always link with it (and usually succeed since i don't use any
 libraries that are already linked with /usr/lib/libgcc_s.dylib). For
 security matters, that's like replacing, however.

I think replacing is the proper option in this case - the security issue is
moot for an unsupported EOL system.

 
 In any case, that bug is not NEW any more.

Well, I think we should close as WONTFIX - because we don't have resources to
find a better solution - and replacing the library is an acceptable work-around
for EOL systems (I've now done this on both my i686 and ppc darwin9 boxes).

Note: that a replacement library MUST be built FAT if you want ppc64 to work
and FAT including ppc on i686-darwin9 if you want rosetta to work.

[Bug libstdc++/58764] [4.9 Regression] [lwg/2193] error: converting to ‘const std::vectorstd::basic_stringchar ’ from initializer list would use explicit constructor

2014-01-22 Thread glisse at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58764

--- Comment #10 from Marc Glisse glisse at gcc dot gnu.org ---
   vector() _GLIBCXX_NOEXCEPT : _Base() { }
   list() _GLIBCXX_NOEXCEPT

I think that's wrong, the default construction of the allocator may throw,
hence the conditional noexcept I was suggesting in comment #3.


[Bug target/59880] ix86_avoid_lea_for_addr is buggy

2014-01-22 Thread uros at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59880

--- Comment #12 from uros at gcc dot gnu.org ---
Author: uros
Date: Wed Jan 22 19:57:30 2014
New Revision: 206940

URL: http://gcc.gnu.org/viewcvs?rev=206940root=gccview=rev
Log:
PR target/59880
* config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
for SImode_address_operand operands.  Return false
if operands[1] is a REG.


Modified:
branches/gcc-4_7-branch/gcc/ChangeLog
branches/gcc-4_7-branch/gcc/config/i386/i386.c


[Bug target/59880] ix86_avoid_lea_for_addr is buggy

2014-01-22 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59880

Uroš Bizjak ubizjak at gmail dot com changed:

   What|Removed |Added

 Target||x86
 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #13 from Uroš Bizjak ubizjak at gmail dot com ---
Fixed.

[Bug libstdc++/58764] [4.9 Regression] [lwg/2193] error: converting to ‘const std::vectorstd::basic_stringchar ’ from initializer list would use explicit constructor

2014-01-22 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58764

--- Comment #11 from Jonathan Wakely redi at gcc dot gnu.org ---
OK, I'll make the noexcept conditional, which will mean losing it in C++03
mode.


[Bug debug/59575] [4.9 regression] ICE in maybe_record_trace_start, at dwarf2cfi.c:2239

2014-01-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59575

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org,
   ||ramana at gcc dot gnu.org,
   ||rearnsha at gcc dot gnu.org

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org ---
The #c1 to #c5 comments are completely unrelated to the #c0 issue, which is
clearly a bug in the ARM backend.

When creating prologue, the ARM backend decides to save some garbage registers
(just to avoid having to decrement stack pointer separately?):
  if (optimize_size  !frame_pointer_needed
   saved_regs == offsets-saved_regs - offsets-saved_args)
{
  /* If no coprocessor registers are being pushed and we don't have
 to worry about a frame pointer then push extra registers to
 create the stack frame.  This is done is a way that does not
 alter the frame layout, so is independent of the epilogue.  */
  int n;
  int frame;
  n = 0;
  while (n  8  (live_regs_mask  (1  n)) == 0)
n++;
  frame = offsets-outgoing_args - (offsets-saved_args + saved_regs);
  if (frame  n * 4 = frame)
{
  n = frame / 4;
  live_regs_mask |= (1  n) - 1;
  saved_regs += frame;
}
}
so without -g we get:
stmfd   sp!, {r0, r1, r2, lr}
in the prologue (note, this is shrink wrapped) and
add sp, sp, #12
@ sp needed
ldr lr, [sp], #4
in the epilogue (note, r0-r2 not restored there).
This is all fine, except that the
emit_multi_reg_push/arm_emit_strd_push/thumb2_emit_strd_push all record all
those saved registers into
REG_FRAME_RELATED_EXPR, which is a very bad idea.  Only call clobbered
registers that you actually save in prologue and restore in epilogue should be
declared as saved for CFI purposes, the dwarf2cfi.c code verifies this property
and that's the reason for this ICE.

Now, I'm afraid I'm not familiar enough with the multitude of ARM ABIs, so not
sure if the best fix is just to ignore for the REG_FRAME_RELATED_EXPR in those
3 above mentioned functions all non-fixed call_used registers, just ignore
r0..r3, or if the caller should call those functions with two masks, one for
what registers should be actually saved to the stack (as right now) and another
for which registers should be in REG_FRAME_RELATED_EXPR (equal to the first or
some subset thereof).


[Bug fortran/59910] New: ICE in gfc_conv_array_initializer, at fortran/trans-array.c:5327

2014-01-22 Thread victorlei at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59910

Bug ID: 59910
   Summary: ICE in gfc_conv_array_initializer, at
fortran/trans-array.c:5327
   Product: gcc
   Version: 4.7.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: victorlei at gmail dot com

Created attachment 31925
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31925action=edit
input to reproduce the bug

lei@dilbert ~/smop/smop $ gfortran bugrep.f90 
bugrep.f90: In function ‘runcontest’:
bugrep.f90:8:0: internal compiler error: in gfc_conv_array_initializer, at
fortran/trans-array.c:5327

See file:///usr/share/doc/gcc-4.7/README.Bugs for instructions.
lei@dilbert ~/smop/smop $ gfortran --version
GNU Fortran (Ubuntu/Linaro 4.7.3-1ubuntu1) 4.7.3

[Bug target/59672] Add -m16 support for x86

2014-01-22 Thread dwmw2 at infradead dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59672

--- Comment #5 from David Woodhouse dwmw2 at infradead dot org ---
Note that LLVM/clang has a -m16 option now which does the same thing. Again,
not needing dirty hacks to ensure that asm(.code16gcc) really *is* the first
thing the assembler sees.


[Bug rtl-optimization/59477] [4.8 Regression] ICE: in assign_by_spills, at lra-assigns.c:1281 with -O

2014-01-22 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59477

Jeffrey A. Law law at redhat dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||law at redhat dot com
 Resolution|--- |FIXED

--- Comment #9 from Jeffrey A. Law law at redhat dot com ---
Fixed by Vlad's commit on the trunk.


[Bug tree-optimization/59597] [4.9 Regression] Performance degradation on Coremark after r205074

2014-01-22 Thread law at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59597

--- Comment #5 from Jeffrey A. Law law at gcc dot gnu.org ---
Author: law
Date: Wed Jan 22 21:27:38 2014
New Revision: 206941

URL: http://gcc.gnu.org/viewcvs?rev=206941root=gccview=rev
Log:
PR tree-optimization/59597
* tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
in file.  Accept new argument REGISTERING and use it to modify
dump output appropriately.
(register_jump_thread): Corresponding changes.
(mark_threaded_blocks): Reinstate code to cancel unprofitable
thread paths involving joiner blocks.  Add code to dump cancelled
jump threading paths.

PR tree-optimization/59597
* gcc.dg/tree-ssa/pr59597.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/tree-ssa/pr59597.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-threadupdate.c


[Bug tree-optimization/59597] [4.9 Regression] Performance degradation on Coremark after r205074

2014-01-22 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59597

Jeffrey A. Law law at redhat dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #6 from Jeffrey A. Law law at redhat dot com ---
Fixed by recent commit on trunk.


[Bug libstdc++/59472] Many warnings type of 'X' does not match original declaration when linking with libstdc++ static library compiled with -flto

2014-01-22 Thread glisse at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59472

Marc Glisse glisse at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-01-22
  Component|lto |libstdc++
 Ever confirmed|0   |1

--- Comment #1 from Marc Glisse glisse at gcc dot gnu.org ---
Same here (CXXFLAGS_FOR_TARGET=-O2 -g -flto -ffat-lto-objects after a trivial
fix for PR 43538):

/data/repos/gcc/trunk/libstdc++-v3/src/c++98/ios_init.cc:56:33: warning: type
of 'buf_wcerr' does not match original declaration [enabled by default]
   extern stdio_filebufwchar_t buf_wcerr;
 ^
/data/repos/gcc/trunk/libstdc++-v3/src/c++98/globals_io.cc:105:17: note:
previously declared here
   fake_wfilebuf buf_wcerr;
 ^

etc.

Reassigning to libstdc++ because the warnings seem to say the truth.


[Bug rtl-optimization/53252] Missed shrink wrapping opportunity

2014-01-22 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53252

Jeffrey A. Law law at redhat dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #2 from Jeffrey A. Law law at redhat dot com ---
This was fixed at some point, but I don't know precisely when.


[Bug target/59880] ix86_avoid_lea_for_addr is buggy

2014-01-22 Thread hjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59880

--- Comment #14 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org ---
Author: hjl
Date: Wed Jan 22 22:01:00 2014
New Revision: 206942

URL: http://gcc.gnu.org/viewcvs?rev=206942root=gccview=rev
Log:
Backport gcc.target/i386/pr59880.c

Backport from mainline
2014-01-20  Jakub Jelinek  ja...@redhat.com

PR target/59880
* gcc.target/i386/pr59880.c: New test.

Added:
branches/gcc-4_8-branch/gcc/testsuite/gcc.target/i386/pr59880.c
Modified:
branches/gcc-4_8-branch/gcc/testsuite/ChangeLog


[Bug other/59893] Use LTO for libgcc.a, libstdc++.a, etc

2014-01-22 Thread glisse at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59893

--- Comment #5 from Marc Glisse glisse at gcc dot gnu.org ---
(In reply to Marc Glisse from comment #0)
 It may be as easy as adding the flags to C(XX)FLAGS_FOR_TARGET

With a trivial fix for PR 43538, this works. However, we then hit PR 59472.
Also, if instead of gold 1.11 (which works fine) I use GNU ld 2.24, I get
warnings:
/usr/bin/ld: error in /tmp/cc5iP5Yf.ltrans2.ltrans.o(.eh_frame); no
.eh_frame_hdr table will be created.
because of crtend.o.

The path is long... At least, I tried the result, and it does help for PR 59048
and does allow removing operator delete(0).


[Bug c/59891] [4.7/4.8/4.9 Regression] ICE on invalid code (with div-by-zero) at all optimization levels on x86_64-linux-gnu

2014-01-22 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59891

--- Comment #10 from Marek Polacek mpolacek at gcc dot gnu.org ---
Author: mpolacek
Date: Wed Jan 22 22:15:12 2014
New Revision: 206944

URL: http://gcc.gnu.org/viewcvs?rev=206944root=gccview=rev
Log:
PR c/59891
c/
* c-typeck.c (build_conditional_expr): Call c_fully_fold instead
of remove_c_maybe_const_expr on op1 and op2.
testsuite/
* gcc.dg/torture/pr59891.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/torture/pr59891.c
Modified:
trunk/gcc/c/ChangeLog
trunk/gcc/c/c-typeck.c
trunk/gcc/testsuite/ChangeLog


[Bug c/59891] [4.7/4.8 Regression] ICE on invalid code (with div-by-zero) at all optimization levels on x86_64-linux-gnu

2014-01-22 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59891

--- Comment #11 from Marek Polacek mpolacek at gcc dot gnu.org ---
Author: mpolacek
Date: Wed Jan 22 22:20:14 2014
New Revision: 206945

URL: http://gcc.gnu.org/viewcvs?rev=206945root=gccview=rev
Log:
PR c/59891
c/
* c-typeck.c (build_conditional_expr): Call c_fully_fold instead
of remove_c_maybe_const_expr on op1 and op2.
testsuite/
* gcc.dg/torture/pr59891.c: New test.

Added:
branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/torture/pr59891.c
Modified:
branches/gcc-4_8-branch/gcc/c/ChangeLog
branches/gcc-4_8-branch/gcc/c/c-typeck.c
branches/gcc-4_8-branch/gcc/testsuite/ChangeLog


[Bug c/59891] [4.7 Regression] ICE on invalid code (with div-by-zero) at all optimization levels on x86_64-linux-gnu

2014-01-22 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59891

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
Summary|[4.7/4.8 Regression] ICE on |[4.7 Regression] ICE on
   |invalid code (with  |invalid code (with
   |div-by-zero) at all |div-by-zero) at all
   |optimization levels on  |optimization levels on
   |x86_64-linux-gnu|x86_64-linux-gnu

--- Comment #12 from Marek Polacek mpolacek at gcc dot gnu.org ---
Fixed.


[Bug target/59672] Add -m16 support for x86

2014-01-22 Thread hpa at zytor dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59672

--- Comment #6 from H. Peter Anvin hpa at zytor dot com ---
This could also be implemented in binutils as a --code16gcc option, in which
case gcc users would have to use -m32 -Wa,--code16gcc.  Ugly but would work.


[Bug c/59911] New: Improper warnings when expressing min int64_t as decimal literal.

2014-01-22 Thread johngro at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59911

Bug ID: 59911
   Summary: Improper warnings when expressing min int64_t as
decimal literal.
   Product: gcc
   Version: 4.8.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: johngro at google dot com

Created attachment 31926
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31926action=edit
Simple test case preproc output.

When attempting to express the minimum int64 value as a decimal literal, the
compiler generates two warning indicating that the literal is too large and is
being treated as unsigned.  The assignment is permitted, and printf shows that
the proper bit pattern is being assigned to the variable, but it is expected
that no warning should be produced given a literal value which is in range for
its data type.

EXPECTED BEHAVIOR
Code compiles with no warnings or error.

ACTUAL BEHAVIOR
The following 2 warnings are produced.
warning: integer constant is so large that it is unsigned [enabled by default]
warning: this decimal constant is unsigned only in ISO C90 [enabled by default]

BASE SOURCE CODE

#include stdio.h
#include stdint.h

int main(int argc, char** argv) {
int64_t min_int64 = -9223372036854775808ll;
int64_t not_quite_min_int64 = -9223372036854775807ll;
int32_t min_int32 = -2147483648;
printf(int32_t :: %20d 0x%x\n, min_int32, min_int32);
printf(int64_t :: %20ld 0x%lx\n, min_int64, min_int64);
printf(int64_t :: %20ld 0x%lx (not quite min)\n,
not_quite_min_int64, not_quite_min_int64);
}

(sorry about inlining the .c file into the description; I couldn't figure out
how to attach more than one file to the bug without using an archive)

COMPILER COMMAND LINE
gcc-4.8 /tmp/test_case.c  ./a.out

COMPILER OUTPUT
/tmp/test_case.c: In function ‘main’:
/tmp/test_case.c:5:26: warning: integer constant is so large that it is
unsigned [enabled by default]
 int64_t min_int64 = -9223372036854775808ll;
  ^
/tmp/test_case.c:5:5: warning: this decimal constant is unsigned only in ISO
C90 [enabled by default]
 int64_t min_int64 = -9223372036854775808ll;
 ^

PROGRAM OUTPUT
int32_t ::  -2147483648 0x8000
int64_t :: -9223372036854775808 0x8000
int64_t :: -9223372036854775807 0x8001 (not quite min)


SYSTEM/COMPILER INFO (produced with gcc-4.8 -v -save-temps=obj
/tmp/test_case.c)
Using built-in specs.
COLLECT_GCC=gcc-4.8
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu
4.8.1-2ubuntu1~12.04' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs
--enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.8 --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls
--with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin
--with-system-zlib --disable-browser-plugin --enable-java-awt=gtk
--enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre
--enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64
--with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686
--with-abi=m64 --with-multilib-list=m32,m64 --with-tune=generic
--enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu
--target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.1 (Ubuntu 4.8.1-2ubuntu1~12.04) 
COLLECT_GCC_OPTIONS='-v' '-save-temps=obj' '-mtune=generic' '-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/4.8/cc1 -E -quiet -v -imultilib . -imultiarch
x86_64-linux-gnu /tmp/test_case.c -mtune=generic -march=x86-64 -fpch-preprocess
-fstack-protector -o test_case.i
ignoring nonexistent directory /usr/local/include/x86_64-linux-gnu
ignoring nonexistent directory
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/include
#include ... search starts here:
#include ... search starts here:
 /usr/lib/gcc/x86_64-linux-gnu/4.8/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.
COLLECT_GCC_OPTIONS='-v' '-save-temps=obj' '-mtune=generic' '-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/4.8/cc1 -fpreprocessed test_case.i -quiet
-dumpbase test_case.c -mtune=generic -march=x86-64 -auxbase test_case -version
-fstack-protector -o test_case.s
GNU C (Ubuntu 4.8.1-2ubuntu1~12.04) version 4.8.1 (x86_64-linux-gnu)
compiled by GNU C version 4.8.1, GMP version 5.0.2, MPFR version

[Bug c/59911] Improper warnings when expressing min int64_t as decimal literal.

2014-01-22 Thread johngro at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59911

--- Comment #1 from John Grossman johngro at google dot com ---
Created attachment 31927
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31927action=edit
basic test case C source

ah; found out I can add the .c file as another attachment once the bug has been
created.  Sorry again for the inline.


[Bug c/59911] Improper warnings when expressing min int64_t as decimal literal.

2014-01-22 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59911

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org ---
-9223372036854775808ll is two tokens unary - and 9223372036854775808ll and the
second token does not fit into a signed long long.  The second warning is
saying C90 and C99 are different here.


[Bug c/59911] Improper warnings when expressing min int64_t as decimal literal.

2014-01-22 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59911

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 CC||mpolacek at gcc dot gnu.org

--- Comment #3 from Marek Polacek mpolacek at gcc dot gnu.org ---
To get rid of that warning, write the value using hex, that is
int64_t min_int64 = 0x8000;


[Bug c++/59912] New: [C++1y] ICE when deducing return type for specialized functions

2014-01-22 Thread n.sakisaka at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59912

Bug ID: 59912
   Summary: [C++1y] ICE when deducing return type for specialized
functions
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: n.sakisaka at gmail dot com

// normal function, OK
// auto f(int)
// {
// return 0;
// }


// specialized function, NG
templateclass T, class ReturnType
ReturnType f(T);

template
auto f(int)
{
return 0;
}


ICE error output:
prog.cc:15:1: internal compiler error: Segmentation fault
 }
 ^
0x95499f crash_signal
/home/gccbuilder/gcc/gcc/toplev.c:337
0xb2aa12 make_decl_rtl(tree_node*)
/home/gccbuilder/gcc/gcc/varasm.c:1274
0xb2b12a notice_global_symbol(tree_node*)
/home/gccbuilder/gcc/gcc/varasm.c:1548
0x6e0251 cgraph_finalize_function(tree_node*, bool)
/home/gccbuilder/gcc/gcc/cgraphunit.c:434
0x5fbd9f expand_or_defer_fn(tree_node*)
/home/gccbuilder/gcc/gcc/cp/semantics.c:3979
0x5c2c56 cp_parser_function_definition_after_declarator
/home/gccbuilder/gcc/gcc/cp/parser.c:22705
0x5c3b1c cp_parser_function_definition_from_specifiers_and_declarator
/home/gccbuilder/gcc/gcc/cp/parser.c:22609
0x5c3b1c cp_parser_init_declarator
/home/gccbuilder/gcc/gcc/cp/parser.c:16598
0x5c3e54 cp_parser_single_declaration
/home/gccbuilder/gcc/gcc/cp/parser.c:23018
0x5c467d cp_parser_explicit_specialization
/home/gccbuilder/gcc/gcc/cp/parser.c:14203
0x5cc553 cp_parser_declaration
/home/gccbuilder/gcc/gcc/cp/parser.c:10941
0x5cb168 cp_parser_declaration_seq_opt
/home/gccbuilder/gcc/gcc/cp/parser.c:10874
0x5cc9aa cp_parser_translation_unit
/home/gccbuilder/gcc/gcc/cp/parser.c:4021
0x5cc9aa c_parse_file()
/home/gccbuilder/gcc/gcc/cp/parser.c:31350
0x6758a3 c_common_parse_file()
/home/gccbuilder/gcc/gcc/c-family/c-opts.c:1060
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See http://gcc.gnu.org/bugs.html for instructions.


Working code:
http://melpon.org/wandbox/permlink/WWuXWgF9W7E6bywL


[Bug libstdc++/58764] [4.9 Regression] [lwg/2193] error: converting to ‘const std::vectorstd::basic_stringchar ’ from initializer list would use explicit constructor

2014-01-22 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58764

--- Comment #12 from Jonathan Wakely redi at gcc dot gnu.org ---
Author: redi
Date: Wed Jan 22 23:50:58 2014
New Revision: 206946

URL: http://gcc.gnu.org/viewcvs?rev=206946root=gccview=rev
Log:
PR libstdc++/58764 (again)
* include/bits/stl_list.h (list): Make default constructor's exception
specification conditional.
* include/bits/stl_vector.h (vector): Likewise.
* testsuite/util/testsuite_allocator.h (SimpleAllocator): Add noexcept
to default constructor.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Adjust dg-error line number.
* testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.

Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/bits/stl_list.h
trunk/libstdc++-v3/include/bits/stl_vector.h
   
trunk/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/assign_neg.cc
   
trunk/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc
   
trunk/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc
   
trunk/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/insert_neg.cc
   
trunk/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc
   
trunk/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc
   
trunk/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc
   
trunk/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc
trunk/libstdc++-v3/testsuite/util/testsuite_allocator.h


[Bug libstdc++/58764] [4.9 Regression] [lwg/2193] error: converting to ‘const std::vectorstd::basic_stringchar ’ from initializer list would use explicit constructor

2014-01-22 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58764

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #13 from Jonathan Wakely redi at gcc dot gnu.org ---
On trunk now we have separate (non-explicit) default constructors for deque,
list, vector, map, multimap, set and multiset. Debug and profile modes should
be consistent with normal mode.

We still have explicit default constructors for the C++11 containers,
forward_list and unordered_xxx, which I suggest revisiting when LWG 2193 is
resolved, but the regression is fixed.


[Bug other/59834] [4.9 Regression] g++.dg/cilk-plus/CK/catch_exc.cc

2014-01-22 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59834

--- Comment #3 from H.J. Lu hjl.tools at gmail dot com ---
(In reply to Balaji V. Iyer from comment #1)
 Hi H. J.,
I am not able to reproduce it in my SUSE machine. I tried both -m64 and
 -m32.
 
 Thanks,

You should see it with -m32 after r206947.


[Bug c/16351] NULL dereference warnings

2014-01-22 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16351

--- Comment #16 from Jeffrey A. Law law at redhat dot com ---
Created attachment 31928
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31928action=edit
Work-In-Progress patch


[Bug tree-optimization/46639] [4.7/4.8/4.9 Regression] Missing optimization due to function splitting and redundant conditionals

2014-01-22 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46639

Jeffrey A. Law law at redhat dot com changed:

   What|Removed |Added

 CC||law at redhat dot com

--- Comment #13 from Jeffrey A. Law law at redhat dot com ---
Another approach would be to do some minimal redundancy elimination as part of
the into-ssa pass.  Having done it before, I know it's pretty easy.


[Bug target/46716] [4.7/4.8/4.9 Regression] wrong code generated with -mno-sse2 -m64

2014-01-22 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46716

Jeffrey A. Law law at redhat dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||law at redhat dot com
 Resolution|--- |FIXED

--- Comment #13 from Jeffrey A. Law law at redhat dot com ---
Fixed on the trunk some time ago.


[Bug middle-end/48087] [4.7/4.8/4.9 Regression] -Wall -Werror adds warnings over and above those generated by -Wall

2014-01-22 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48087

Jeffrey A. Law law at redhat dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||law at redhat dot com
 Resolution|--- |FIXED

--- Comment #26 from Jeffrey A. Law law at redhat dot com ---
Fixed long ago on the trunk.


  1   2   >