[Bug c/65673] Compound literal with initializer for zero-sized array drops other initializers

2015-04-17 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65673

Marek Polacek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-04-17
 CC||mpolacek at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Marek Polacek  ---
Confirmed.  It seems weird to drop the initializer.


[Bug middle-end/65788] [6 Regression] 416.gamess in SPEC CPU 2006 failed to build

2015-04-17 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65788

Richard Biener  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2015-04-17
   Assignee|unassigned at gcc dot gnu.org  |rguenth at gcc dot 
gnu.org
   Target Milestone|--- |6.0
 Ever confirmed|0   |1

--- Comment #1 from Richard Biener  ---
Mine.


[Bug debug/65779] [5/6 Regression] undefined local symbol on powerpc [regression]

2015-04-17 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65779

--- Comment #6 from Jakub Jelinek  ---
(In reply to Alan Modra from comment #4)
> Created attachment 35342 [details]
> prototype patch
> 
> This seems to cure the testcase.  I haven't bootstrapped it, and it probably
> isn't ideal since I haven't poked at debug insns a lot..
> Still, it points out where the problem is, in move_insn_for_shrink_wrap.

Can't you use DF infrastructure for that (before actually moving the insn)?
I think pro_and_epilogue pass doesn't compute DF_DU_CHAINs, but perhaps
something along the lines of DCE reset_unmarked_insns_debug_uses?
I.e. not perform it at all if !MAY_HAVE_DEBUG_INSNS, and use DF infrastructure
to find out if the debug insn references the register.  Of course, unlike DCE,
we aren't looking at debug instructions referencing unmarked insns, but debug
instructions referencing a particular hard register.  Note that
live_edge_for_reg is called multiple times and thus could move across more than
one basic block, so perhaps you'd need to remember the sequence of basic blocks
to scan during the
  /* At this point we are committed to moving INSN, but let's try to
 move it as far as we can.  */
loop.


[Bug sanitizer/64741] Incorrect size of UBSan type descriptors

2015-04-17 Thread y.gribov at samsung dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64741

Yury Gribov  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #4 from Yury Gribov  ---
.


[Bug sanitizer/61547] Invalid sanitization of trailing byte in __builtin_strlen

2015-04-17 Thread y.gribov at samsung dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61547

Yury Gribov  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #7 from Yury Gribov  ---
.


[Bug debug/65771] [5/6 Regression] ICE (in loc_list_from_tree, at dwarf2out.c:14964) on arm-linux-gnueabihf

2015-04-17 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65771

--- Comment #10 from Jakub Jelinek  ---
Author: jakub
Date: Fri Apr 17 07:44:30 2015
New Revision: 222166

URL: https://gcc.gnu.org/viewcvs?rev=222166&root=gcc&view=rev
Log:
PR debug/65771
* dwarf2out.c (loc_list_from_tree): Return NULL
for DEBUG_EXPR_DECL.

* gcc.dg/debug/pr65771.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/debug/pr65771.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/dwarf2out.c
trunk/gcc/testsuite/ChangeLog


[Bug debug/65771] [5/6 Regression] ICE (in loc_list_from_tree, at dwarf2out.c:14964) on arm-linux-gnueabihf

2015-04-17 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65771

--- Comment #11 from Jakub Jelinek  ---
Author: jakub
Date: Fri Apr 17 07:45:46 2015
New Revision: 222167

URL: https://gcc.gnu.org/viewcvs?rev=222167&root=gcc&view=rev
Log:
PR debug/65771
* dwarf2out.c (loc_list_from_tree): Return NULL
for DEBUG_EXPR_DECL.

* gcc.dg/debug/pr65771.c: New test.

Added:
branches/gcc-5-branch/gcc/testsuite/gcc.dg/debug/pr65771.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/dwarf2out.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog


[Bug debug/65549] [4.9/5/6 Regression] crash in htab_hash_string with -flto -g

2015-04-17 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65549

--- Comment #23 from Richard Biener  ---
When doing LTO early-debug work I stumbled over one reason we can crash here
which I fixed with

Index: dwarf2out.c
===
*** dwarf2out.c (revision 222165)
--- dwarf2out.c (working copy)
*** resolve_addr (dw_die_ref die)
*** 23950,23957 
&& DECL_EXTERNAL (tdecl)
&& DECL_ABSTRACT_ORIGIN (tdecl) == NULL_TREE)
  {
!   force_decl_die (tdecl);
!   tdie = lookup_decl_die (tdecl);
  }
if (tdie)
  {
--- 23950,23964 
&& DECL_EXTERNAL (tdecl)
&& DECL_ABSTRACT_ORIGIN (tdecl) == NULL_TREE)
  {
!   /* Creating a full DIE for tdecl is overly expensive and
!  at this point (with early debug active) even wrong
!  as it can end up generating new type DIEs we didn't
!  output.  */
!   tdie = new_die (DW_TAG_subprogram, comp_unit_die (),
NULL_TREE);
!   add_AT_flag (tdie, DW_AT_external, 1);
!   add_AT_flag (tdie, DW_AT_declaration, 1);
!   add_linkage_attr (tdie, tdecl);
!   equate_decl_number_to_die (tdecl, tdie);
  }
if (tdie)
  {

change the comment to "at this point (with LTO) even wrong" and it still
applies.  The point is, if we didn't create a DIE for the external decl
it isn't a good idea to create a full DIE for it for the reference.  Just
create a DIE with enough info for the debugger (I suppose that's the
linkage name?  I really didn't check whether that's ok for the purpose
of DW_TAG_GNU_call_site - Jakub?  (not sure if we have guality checks
that cover this very case)

ISTR that for the case I ran into the call was to some builtin function.

The above patch fixes this bug.


[Bug debug/65771] ICE (in loc_list_from_tree, at dwarf2out.c:14964) on arm-linux-gnueabihf

2015-04-17 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65771

Jakub Jelinek  changed:

   What|Removed |Added

Summary|[5/6 Regression] ICE (in|ICE (in loc_list_from_tree,
   |loc_list_from_tree, at  |at dwarf2out.c:14964) on
   |dwarf2out.c:14964) on   |arm-linux-gnueabihf
   |arm-linux-gnueabihf |

--- Comment #12 from Jakub Jelinek  ---
No longer a regression, keeping this open for the #c9 fix (for trunk only).


[Bug c++/65790] compilation error : receive std::index_sequnece

2015-04-17 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65790

Jonathan Wakely  changed:

   What|Removed |Added

   Keywords||rejects-valid
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-04-17
 Ever confirmed|0   |1
  Known to fail||4.8.3, 4.9.2, 5.0, 6.0

--- Comment #1 from Jonathan Wakely  ---
Confirmed, Clang and EDG accept this:

extern "C" int printf(const char* ...);

namespace std
{
  typedef decltype(sizeof(0)) size_t;

  template
struct integer_sequence
{
  typedef _Tp value_type;
  static constexpr size_t size() { return sizeof...(_Idx); }
};

  template
using index_sequence = integer_sequence;
}

void g(std::size_t a, std::size_t b, std::size_t c)
{
  printf("%zu, %zu, %zu\n", a, b, c);
}

template 
void f(std::index_sequence)
{
  g(Seq...);
}

int main()
{
  f(std::index_sequence<0, 1, 2>());
}


[Bug middle-end/65788] [6 Regression] 416.gamess in SPEC CPU 2006 failed to build

2015-04-17 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65788

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|WAITING

--- Comment #2 from Richard Biener  ---
Can't reproduce with r222165 and -O3 -funroll-loops -ffast-math.


[Bug debug/65549] [4.9/5/6 Regression] crash in htab_hash_string with -flto -g

2015-04-17 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65549

--- Comment #24 from Richard Biener  ---
Which means that -gstrict-dwarf should be a workaround for this and the dups.


[Bug debug/65549] [4.9/5/6 Regression] crash in htab_hash_string with -flto -g

2015-04-17 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65549

Richard Biener  changed:

   What|Removed |Added

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


[Bug debug/65549] [4.9/5/6 Regression] crash in htab_hash_string with -flto -g

2015-04-17 Thread a...@cloudius-systems.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65549

--- Comment #25 from Avi Kivity  ---
It's not a latent bug for me:

lto1: internal compiler error: Segmentation fault
0xa2f1af crash_signal
../../gcc/toplev.c:383
0x1129f20 htab_hash_string
../../libiberty/hashtab.c:839
0x6d264f external_ref_hasher::hash(external_ref const*)
../../gcc/dwarf2out.c:7763
0x6d264f hash_table::find_slot(external_ref const*, insert_option)
../../gcc/hash-table.h:652
0x6d264f lookup_external_ref
../../gcc/dwarf2out.c:7791
0x6d26ed optimize_external_refs_1
../../gcc/dwarf2out.c:7829
0x6d2718 optimize_external_refs_1
../../gcc/dwarf2out.c:7833
0x6d2b56 optimize_external_refs
../../gcc/dwarf2out.c:7882
0x6d2d8d output_comp_unit
../../gcc/dwarf2out.c:9122
0x6f8c69 dwarf2out_finish
../../gcc/dwarf2out.c:24801
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.
lto-wrapper: fatal error: /home/avi/gcc5/bin/g++5 returned 1 exit status
compilation terminated.


g++5 (GCC) 6.0.0 20150417 (experimental)


[Bug debug/65549] [4.9/5/6 Regression] crash in htab_hash_string with -flto -g

2015-04-17 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65549

--- Comment #26 from Richard Biener  ---
Created attachment 35343
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35343&action=edit
patch

Patch I am testing.


[Bug debug/65549] [4.9/5/6 Regression] crash in htab_hash_string with -flto -g

2015-04-17 Thread a...@cloudius-systems.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65549

--- Comment #27 from Avi Kivity  ---
Patch fixes the problem for me (though the linker still fails)


[Bug tree-optimization/64950] postpone expanding va_arg till pass_stdarg

2015-04-17 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64950

--- Comment #5 from vries at gcc dot gnu.org ---
https://gcc.gnu.org/ml/gcc-cvs/2015-04/msg00371.html :

Author: vries
Date: Fri Apr 17 09:26:59 2015
New Revision: 222173

URL: https://gcc.gnu.org/viewcvs?rev=222173&root=gcc&view=rev
Log:
Postpone expanding va_arg until pass_stdarg

2015-04-17  Tom de Vries  
Michael Matz  

* gimple-iterator.c (update_modified_stmts): Remove static.
* gimple-iterator.h (update_modified_stmts): Declare.
* gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
(gimplify_va_arg_internal): New function.
(gimplify_va_arg_expr): Use IFN_VA_ARG.
* gimplify.h (gimplify_va_arg_internal): Declare.
* internal-fn.c (expand_VA_ARG): New unreachable function.
* internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
* tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
(expand_ifn_va_arg): New function.
(pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
(pass_stdarg::execute): Call expand_ifn_va_arg.
(pass_data_lower_vaarg): New pass_data.
(pass_lower_vaarg): New gimple_opt_pass.
(pass_lower_vaarg::gate, pass_lower_vaarg::execute)
(make_pass_lower_vaarg): New function.
* cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
properties_required field.
* passes.def (all_passes): Add pass_lower_vaarg.
* tree-pass.h (PROP_gimple_lva): Add define.
(make_pass_lower_vaarg): Declare.

* gcc.dg/tree-ssa/stdarg-2.c: Change f15 scan-tree-dump for target
x86_64-*-*.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/cfgexpand.c
trunk/gcc/gimple-iterator.c
trunk/gcc/gimple-iterator.h
trunk/gcc/gimplify.c
trunk/gcc/gimplify.h
trunk/gcc/internal-fn.c
trunk/gcc/internal-fn.def
trunk/gcc/passes.def
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/tree-ssa/stdarg-2.c
trunk/gcc/tree-pass.h
trunk/gcc/tree-stdarg.c


[Bug tree-optimization/64950] postpone expanding va_arg till pass_stdarg

2015-04-17 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64950

--- Comment #6 from vries at gcc dot gnu.org ---
https://gcc.gnu.org/ml/gcc-cvs/2015-04/msg00372.html :

Author: vries
Date: Fri Apr 17 09:27:08 2015
New Revision: 222174

URL: https://gcc.gnu.org/viewcvs?rev=222174&root=gcc&view=rev
Log:
Set PROP_gimple_lva for functions without IFN_VA_ARG

2015-04-17  Tom de Vries  

* gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
in cfun->curr_properties.
(gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
if we generate an IFN_VA_ARG.
* tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
function if PROP_gimple_lva is not set in src function.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/gimplify.c
trunk/gcc/tree-inline.c


[Bug tree-optimization/65791] New: Postpone expand_ifn_va_arg till after optimize_va_list_gpr_fpr_size

2015-04-17 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65791

Bug ID: 65791
   Summary: Postpone expand_ifn_va_arg till after
optimize_va_list_gpr_fpr_size
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vries at gcc dot gnu.org

After the fix for PR64950 - postpone expanding va_arg till pass_stdarg, there's
this TODO pass_stdarg::execute:
...
unsigned int
pass_stdarg::execute (function *fun)
{
  /* TODO: Postpone expand_ifn_va_arg till after
 optimize_va_list_gpr_fpr_size.  */
  expand_ifn_va_arg (fun);

  if (flag_stdarg_opt
  /* This optimization is only for stdarg functions.  */
  && fun->stdarg != 0)
optimize_va_list_gpr_fpr_size (fun);

  return 0;
}
...

Essentially, we want to rewrite optimize_va_list_gpr_fpr_size to work on
ifn_va_arg.


[Bug tree-optimization/64950] postpone expanding va_arg till pass_stdarg

2015-04-17 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64950

vries at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #7 from vries at gcc dot gnu.org ---
Patch series retested and committed.

Filed spinoff PR 65791 - Postpone expand_ifn_va_arg till after
optimize_va_list_gpr_fpr_size, for the TODO to rewrite
optimize_va_list_gpr_fpr_size to work on ifn_va_arg.

Marking resolved, fixed.


[Bug other/51153] OpenACC implementation

2015-04-17 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51153
Bug 51153 depends on bug 64950, which changed state.

Bug 64950 Summary: postpone expanding va_arg till pass_stdarg
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64950

   What|Removed |Added

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


[Bug tree-optimization/65791] Postpone expand_ifn_va_arg till after optimize_va_list_gpr_fpr_size

2015-04-17 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65791

vries at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-04-17
 Ever confirmed|0   |1

--- Comment #1 from vries at gcc dot gnu.org ---
https://gcc.gnu.org/ml/gcc/2015-02/msg00115.html :
...
> [ We're still expanding ifn_va_arg before the va_list_gpr/fpr_size
> optimization. ]

Yeah, and the point of the exercise was of course to change that ;)
...


[Bug debug/65549] [4.9/5/6 Regression] crash in htab_hash_string with -flto -g

2015-04-17 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65549

--- Comment #28 from Richard Biener  ---
So the context I put the stub DIE in is technically wrong.  Thus some more
analysis results.  The reason why we end up populating the limbo_die_list
from the force_decl_die path is because we refuse to put the context
(the __lambda2 type) into its context (the main function which we forced
a DIE for) because of

  /* A declaration DIE doesn't count; nested types need to go in the
 specification.  */
  if (context_die && is_declaration_die (context_die))
context_die = NULL;


[Bug tree-optimization/65460] parloops transforms offloaded functions

2015-04-17 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65460

--- Comment #4 from vries at gcc dot gnu.org ---
stage1 ping: https://gcc.gnu.org/ml/gcc-patches/2015-04/msg00861.html


[Bug c++/65186] internal compiler error: in tsubst, at cp/pt.c:11738

2015-04-17 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65186

Jonathan Wakely  changed:

   What|Removed |Added

  Known to fail||4.8.3, 4.9.2, 5.0, 6.0
   Severity|minor   |normal

--- Comment #3 from Jonathan Wakely  ---
This seems to hit the same ICE, without template aliases:

template  struct integral_constant {};

template  class> struct Sort;  

template  class Comparator>  
struct Sort
{  
template  struct less_than:
integral_constant::value> {};
};

int main() {}


[Bug c++/65186] internal compiler error: in tsubst, at cp/pt.c:11738

2015-04-17 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65186

--- Comment #4 from Jonathan Wakely  ---
In fact comment 3 doesn't even need C++11, it's valid C++03.

It came from http://stackoverflow.com/a/29696258/981959


[Bug bootstrap/62077] --with-build-config=bootstrap-lto fails

2015-04-17 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62077

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #61 from Jakub Jelinek  ---
(In reply to Richard Biener from comment #60)
> Workaround confirmed for GCC 5 (--enable-stage1-checking=release).

So, what about just use the workaround automatically for the default
--enable-stage1-checking (of course, if somebody uses something explicitly, he
is on his own)?
Like:

--- configure.ac.jj2015-03-27 18:32:41.0 +0100
+++ configure.ac2015-04-17 13:01:30.117314053 +0200
@@ -3482,7 +3482,19 @@ AC_ARG_ENABLE(stage1-checking,
 [choose additional checking for stage1 of the compiler])],
 [stage1_checking=--enable-checking=${enable_stage1_checking}],
 [if test "x$enable_checking" = xno || test "x$enable_checking" = x; then
-  stage1_checking=--enable-checking=yes,types
+  # For --disable-checking or implicit --enable-checking=release, avoid
+  # setting --enable-checking=gc in the default stage1 checking for LTO
+  # bootstraps.  See PR62077.
+  stage1_checking=--enable-checking=release,misc,gimple,rtlflag,tree,types
+  case $BUILD_CONFIG in
+*lto*)
+  if test "x$enable_checking" = x && \
+ test -d ${srcdir}/gcc && \
+ test x"`cat ${srcdir}/gcc/DEV-PHASE`" = xexperimental; then
+stage1_checking=--enable-checking=yes,types
+  fi;;
+*) stage1_checking=--enable-checking=yes,types;;
+  esac
 else
   stage1_checking=--enable-checking=$enable_checking,types
 fi])

I've so far successfully bootstrapped GCC 5 branch with
../configure --prefix=/tmp/blah --with-gnu-as --with-gnu-ld
--enable-languages=all,go --disable-multilib --disable-nls --with-arch=haswell
--with-tune=haswell --with-build-config=bootstrap-lto
--enable-stage1-checking=release,misc,gimple,rtlflag,tree,types
so it indeed is the gc checking that breaks the LTO bootstrap comparison.
release,misc,gimple,rtlflag,tree,types I believe enables everything yes,types
enables, except for gc checking.


[Bug bootstrap/62077] --with-build-config=bootstrap-lto fails

2015-04-17 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62077

--- Comment #62 from Richard Biener  ---
Works for me.  Of course we should hunt down IL differences that appear with
GC.
It's just a lurking bug that can hit the non-GC checking path as well.

But all this is exceptionally hard to track down :/


[Bug middle-end/65788] [6 Regression] 416.gamess in SPEC CPU 2006 failed to build

2015-04-17 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65788

H.J. Lu  changed:

   What|Removed |Added

 Status|WAITING |ASSIGNED

--- Comment #3 from H.J. Lu  ---
(In reply to Richard Biener from comment #2)
> Can't reproduce with r222165 and -O3 -funroll-loops -ffast-math.

But my bug report is against

-O3 -funroll-loops -ffast-math -fwhole-program -flto=jobserver
-fuse-linker-plugin

not -O3 -funroll-loops -ffast-math.  r222168 still has the same bug.


[Bug middle-end/65788] [6 Regression] 416.gamess in SPEC CPU 2006 failed to build

2015-04-17 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65788

--- Comment #4 from rguenther at suse dot de  ---
On Fri, 17 Apr 2015, hjl.tools at gmail dot com wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65788
> 
> H.J. Lu  changed:
> 
>What|Removed |Added
> 
>  Status|WAITING |ASSIGNED
> 
> --- Comment #3 from H.J. Lu  ---
> (In reply to Richard Biener from comment #2)
> > Can't reproduce with r222165 and -O3 -funroll-loops -ffast-math.
> 
> But my bug report is against
> 
> -O3 -funroll-loops -ffast-math -fwhole-program -flto=jobserver
> -fuse-linker-plugin
> 
> not -O3 -funroll-loops -ffast-math.  r222168 still has the same bug.

My bad - I uses

-O3 -funroll-loops -ffast-math -flto=jobserver 

linker-plugin gets used automatically for me and -fwhole-program
should be a no-op with linker-plugin.  I can re-double-check that
on Monday though.


[Bug c++/64527] Constructor for empty struct not called in some situations

2015-04-17 Thread ppalka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64527

--- Comment #3 from ppalka at gcc dot gnu.org ---
Author: ppalka
Date: Fri Apr 17 12:14:24 2015
New Revision: 222176

URL: https://gcc.gnu.org/viewcvs?rev=222176&root=gcc&view=rev
Log:
Fix PR c++/64527

gcc/
PR c++/64527
* gimplify.c (gimplify_init_constructor): Always emit a
side-effecting constructor.

gcc/testsuite/
PR c++/64527
* g++.dg/init/pr64527.C: New test.



Added:
trunk/gcc/testsuite/g++.dg/init/pr64527.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/gimplify.c
trunk/gcc/testsuite/ChangeLog


[Bug fortran/57965] [F03] Allocation of derived type containing an allocatable character component segfaults

2015-04-17 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57965
Bug 57965 depends on bug 55932, which changed state.

Bug 55932 Summary: [F03] ICE for structure constructor with scalar allocatable 
component
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55932

   What|Removed |Added

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


[Bug fortran/55932] [F03] ICE for structure constructor with scalar allocatable component

2015-04-17 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55932

Dominique d'Humieres  changed:

   What|Removed |Added

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

--- Comment #11 from Dominique d'Humieres  ---
This is fixed on 5.0.1 and trunk (6.0). Closing.


[Bug fortran/65792] New: allocation of scalar elemental function with structure constructor fails

2015-04-17 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65792

Bug ID: 65792
   Summary: allocation of scalar elemental function with structure
constructor fails
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: dominiq at lps dot ens.fr

The following test (extracted from the extended test in pr61831 comment 41)

program main
  implicit none

  integer, parameter :: n = 2

  type :: string_t
 character(LEN=1), dimension(:), allocatable :: chars
  end type string_t

  type :: string_container_t
 type(string_t) :: comp
  end type string_container_t

  type(string_t) :: prt_in, tmp, tmpa(n)
  type(string_container_t) :: tmpc, tmpca(n)
  integer :: i, j, k

  do i=1,16

 ! scalar elemental function with structure constructor
 prt_in = string_t(["D"])
 tmpc = new_prt_spec2 (string_container_t(prt_in))
 deallocate (prt_in%chars)
 deallocate(tmpc%comp%chars)

  end do

contains

  impure elemental function new_prt_spec2 (name) result (prt_spec)
type(string_container_t), intent(in) :: name
type(string_container_t) :: prt_spec
prt_spec = name
  end function new_prt_spec2

end program main

fails at run time with

a.out(88248,0x7fff7a4fc300) malloc: *** mach_vm_map(size=18446603339116310528)
failed (error code=3)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug

Program received signal SIGSEGV: Segmentation fault - invalid memory reference.

For 4.6 up to 4.9.0, the failure is of the kind

a.out(45086) malloc: *** error for object 0x100201010: pointer being freed was
not allocated
*** set a breakpoint in malloc_error_break to debug


[Bug libstdc++/65793] New: Libstdc++ docs on _GLIBCXX_CONCEPT_CHECKS are duplicated

2015-04-17 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65793

Bug ID: 65793
   Summary: Libstdc++ docs on _GLIBCXX_CONCEPT_CHECKS are
duplicated
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Keywords: documentation
  Severity: minor
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: redi at gcc dot gnu.org

The docs at
https://gcc.gnu.org/onlinedocs/libstdc++/manual/ext_compile_checks.html and
https://gcc.gnu.org/onlinedocs/libstdc++/manual/concept_checking.html seem to
have started life identically and diverged.

They should be de-duplicated, maybe with a cross-reference.

The link at https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_macros.html
might require updating afterwards.


[Bug libstdc++/65793] Libstdc++ docs on _GLIBCXX_CONCEPT_CHECKS are duplicated

2015-04-17 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65793

Jonathan Wakely  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-04-17
 Ever confirmed|0   |1


[Bug fortran/61275] Invalid initialization expression for ALLOCATABLE component in structure constructor at (1)

2015-04-17 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61275

Dominique d'Humieres  changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution|--- |FIXED

--- Comment #9 from Dominique d'Humieres  ---
> If nobody objects, I'll close the PR as FIXED again.

No objection after almost a month. Closing.


[Bug go/64999] s390x libgo test failure in TestMemoryProfiler

2015-04-17 Thread boger at us dot ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64999

--- Comment #55 from boger at us dot ibm.com ---
Created attachment 35344
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35344&action=edit
Increment the pc in the callback routine for backtrace_full

Always increment the pc in the callback, knowing that it was decremented during
the unwind function to find the line number number of the call instruction. 
This leaves the pc with the correct value for the call stack.  If a signal had
occurred, and it wasn't a call instruction, the pc will get incremented when it
hadn't been decremented during unwind but that is OK for this fix.


[Bug c++/64527] Constructor for empty struct not called in some situations

2015-04-17 Thread ppalka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64527

ppalka at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #4 from ppalka at gcc dot gnu.org ---
Fixed. Thanks for the comprehensive test case.


[Bug other/65794] New: Building crossback fails: No rule to make target `auto-build.h', needed by `build/genmddeps.o'

2015-04-17 Thread gjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65794

Bug ID: 65794
   Summary: Building crossback fails: No rule to make target
`auto-build.h', needed by `build/genmddeps.o'
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Keywords: build
  Severity: normal
  Priority: P3
 Component: other
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gjl at gcc dot gnu.org
  Host: i386-mingw32
Target: x86_64-linux-gnu
 Build: x86_64-linux-gnu

GCC configured as:

../../gcc.gnu.org/trunk/configure --build=x86_64-linux-gnu --host=i386-mingw32
--enable-languages=c,c++ --target=x86_64-linux-gnu
--prefix=/home/georg/gnu/install/gcc-64-32-cross

with empty build and empty install directory.

Building the compiler aborts:

...
/usr/bin/msgfmt --statistics -o po/zh_TW.gmo
../../../gcc.gnu.org/trunk/gcc/po/zh_TW.po
3519 translated messages, 6759 fuzzy translations, 904 untranslated messages.
TARGET_CPU_DEFAULT="" \
HEADERS="auto-host.h ansidecl.h config/i386/xm-mingw32.h" DEFINES="" \
/bin/bash ../../../gcc.gnu.org/trunk/gcc/mkconfig.sh config.h
TARGET_CPU_DEFAULT="" \
HEADERS="options.h insn-constants.h config/vxworks-dummy.h
config/i386/biarch64.h config/i386/i386.h config/i386/unix.h config/i386/att.h
config/dbxelf.h config/elfos.h config/gnu-user.h config/glibc-stdint.h
config/i386/x86-64.h config/i386/gnu-user-common.h config/i386/gnu-user64.h
config/linux.h config/linux-android.h config/i386/linux-common.h
config/i386/linux64.h config/initfini-array.h defaults.h" DEFINES="LIBC_GLIBC=1
LIBC_UCLIBC=2 LIBC_BIONIC=3 DEFAULT_LIBC=LIBC_GLIBC ANDROID_DEFAULT=0" \
/bin/bash ../../../gcc.gnu.org/trunk/gcc/mkconfig.sh tm.h
TARGET_CPU_DEFAULT="" \
HEADERS="config/i386/i386-protos.h config/linux-protos.h tm-preds.h"
DEFINES="" \
/bin/bash ../../../gcc.gnu.org/trunk/gcc/mkconfig.sh tm_p.h
TARGET_CPU_DEFAULT="" \
HEADERS="auto-build.h ansidecl.h" DEFINES="" \
/bin/bash ../../../gcc.gnu.org/trunk/gcc/mkconfig.sh bconfig.h
make[2]: *** No rule to make target `auto-build.h', needed by
`build/genmddeps.o'.  Stop.
make[2]: Leaving directory `/data/home/georg/gnu/build/gcc-64-32-cross/gcc'
make[1]: *** [all-gcc] Error 2
make[1]: Leaving directory `/data/home/georg/gnu/build/gcc-64-32-cross'
make: *** [all] Error 2

The system has a i386-mingw32 toolchain installed, but presumably the above
problem occurs also with other crossback configuration with 

build = target != host


[Bug tree-optimization/64950] postpone expanding va_arg till pass_stdarg

2015-04-17 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64950

--- Comment #8 from Uroš Bizjak  ---
(In reply to vries from comment #7)

> Marking resolved, fixed.

So, can PR41089 hack [1] finally be reverted?

[1] https://gcc.gnu.org/ml/gcc-patches/2010-08/msg00072.html

[Bug debug/65549] [4.9/5/6 Regression] crash in htab_hash_string with -flto -g

2015-04-17 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65549

Jason Merrill  changed:

   What|Removed |Added

 CC||jason at gcc dot gnu.org

--- Comment #29 from Jason Merrill  ---
(In reply to Jakub Jelinek from comment #17)
> Lambda functions aren't really nested functions in the tree-nested.c sense,
> but still are so closely related to the functions they are nested in that
> IMHO it would be desirable not to split them off into separate partitions,
> not just temporarily for GCC 5 for debug info reasons.

Agreed.  decl_function_context of the lambda function should give you the
containing function.


[Bug fortran/61831] [4.9/ 5 Regression] runtime error: pointer being freed was not allocated

2015-04-17 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61831

--- Comment #46 from Dominique d'Humieres  ---
> > And I haven't looked yet at Dominique's feedback in comment #43.
>
> The test in comment #41 fails at run time when compiled with 
> -fsanitize=address.
> If I take the "complement" of the reduced test posted in comment #43,
> everything works fine, but for one builtin_free less.
>
> I did not investigated what is wrong with the test in comment #43 (will do).

The problem occurs even with a clean tree. I have filed PR65792 for it.

The test in comment 41 runs without error if compiled with -fsanitize=address
and no valgrind error if I remove/comment the lines 58 and 62:

 tmpc = new_prt_spec2 (string_container_t(prt_in))

and

 deallocate(tmpc%comp%chars)

> The patch (without the above hunk) fixes a lot of problems and makes
> the code simpler. IMO it should be submitted and the few left issues
> can be deferred (with new PRs).

I have bootstrapper 4.9.3 with the patch and I am currently regtesting
gfortran. I am planing to do that same for 5.0.1.


[Bug target/65612] Multiversioning doesn't work with DSO nor PIE

2015-04-17 Thread hjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65612

--- Comment #7 from hjl at gcc dot gnu.org  ---
Author: hjl
Date: Fri Apr 17 12:58:07 2015
New Revision: 222178

URL: https://gcc.gnu.org/viewcvs?rev=222178&root=gcc&view=rev
Log:
Hide __cpu_indicator_init/__cpu_model from linker

We shouldn't call external function, __cpu_indicator_init, while an object
is being relocated since its .got.plt section hasn't been updated.  It
works for non-PIE since no update on .got.plt section is required.  This
patch creates libgcc.so as a linker script, hides __cpu_indicator_init
and __cpu_model in libgcc.so.1 from linker, forces linker to resolve
__cpu_indicator_init and __cpu_model to their hidden definitions in
libgcc.a while providing backward binary compatibility.

gcc/testsuite/

PR target/65612
* g++.dg/ext/mv18.C: New test.
* g++.dg/ext/mv19.C: Likewise.
* g++.dg/ext/mv20.C: Likewise.
* g++.dg/ext/mv21.C: Likewise.
* g++.dg/ext/mv22.C: Likewise.
* g++.dg/ext/mv23.C: Likewise.

libgcc/

PR target/65612
* config.host (tmake_file): Add t-slibgcc-libgcc for Linux/x86.
* config/i386/cpuinfo.c (__cpu_model): Initialize.
(__cpu_indicator_init@GCC_4.8.0): New.
(__cpu_model@GCC_4.8.0): Likewise.
* config/i386/t-linux (HOST_LIBGCC2_CFLAGS): Add
-DUSE_ELF_SYMVER.

Added:
trunk/gcc/testsuite/g++.dg/ext/mv18.C
trunk/gcc/testsuite/g++.dg/ext/mv19.C
trunk/gcc/testsuite/g++.dg/ext/mv20.C
trunk/gcc/testsuite/g++.dg/ext/mv21.C
trunk/gcc/testsuite/g++.dg/ext/mv22.C
trunk/gcc/testsuite/g++.dg/ext/mv23.C
Modified:
trunk/gcc/testsuite/ChangeLog
trunk/libgcc/ChangeLog
trunk/libgcc/config.host
trunk/libgcc/config/i386/cpuinfo.c
trunk/libgcc/config/i386/t-linux


[Bug c/65673] Compound literal with initializer for zero-sized array drops other initializers

2015-04-17 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65673

--- Comment #2 from Marek Polacek  ---
What happens here is that pop_init_level returns error_mark_node because
initializing a zero-length array member with {} is discarded:

 7565   /* Silently discard empty initializations.  The parser will
 7566  already have pedwarned for empty brackets.  */
 7567   if (integer_zerop (constructor_unfilled_index))
 7568 constructor_type = NULL_TREE;

thus ret.value is NULL:

 7718   if (ret.value == 0 && constructor_stack == 0)
 7719 ret.value = error_mark_node;
 7720   return ret;

output_init_element then sees that value == error_mark_node, so it marks the
ctor as erroneous:

 8388   if (type == error_mark_node || value == error_mark_node)
 8389 {
 8390   constructor_erroneous = 1;
 8391   return;
 8392 }

And because the ctor is erroneous, we don't build a CONSTRUCTOR for it:

 7668   if (constructor_erroneous)
 7669 ret.value = error_mark_node;
 7670   else
 7671 {
 7672   ret.value = build_constructor (constructor_type,
 7673  constructor_elements);


[Bug go/64999] s390x libgo test failure in TestMemoryProfiler

2015-04-17 Thread boger at us dot ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64999

--- Comment #56 from boger at us dot ibm.com ---
Here is a bit more detail.  Now that I think I understand all the
considerations, I'm proposing this simple fix for gcc 5.  Maybe longer term a
more thorough solution could be done but not sure it is worth changing multiple
functions to add an additional argument and changing external header files in
gcc 5.

The problems to be fixed are:
- the pc in the call stack returned by runtime_callers is wrong for some
platforms, such as Power and Z and possibly others
- the pc adjustment and line number that is looked up in go/runtime/pprof.go
sometimes provides the wrong line number if based on the bad pc

The proposed fix is to increment the pc in the callback routine that is passed
to backtrace_full when trying to find the runtime_callers all the time.  During
the unwind the pc was decremented for the normal call case.  If it was a
signal, the pc would not have been decremented so it is being incremented
unnecessarily for that situation but I think that is OK since the line number
will be right and the pc will still refer to the signalling instruction.

As far as the change to the pprof code, at least in gccgo for Power and Z the
pc and the line number should be correct so no adjustment is even needed, but
my understanding from previous posts is that in the gc compiled case an
adjustment is needed and this code is common for gc and gccgo?  With the pprof
code that is there now, the pprof code is OK for Power, i.e., the line number
in the pprof testcase matches the expected line number.  For Z, I think that
the amount to decrement should be the minimum size for a call instruction (not
sure what that value is) and then the tracepc value would refer to the previous
instruction.

Note that the pprof testcase does not yet work even with this fix because there
is a new problem that fails on all platforms with gccgo described here: 
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64683.


[Bug go/64683] FAIL: runtime/pprof -- testing.go:278: The entry did not match

2015-04-17 Thread boger at us dot ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64683

boger at us dot ibm.com changed:

   What|Removed |Added

 CC||boger at us dot ibm.com

--- Comment #10 from boger at us dot ibm.com ---
I see this same failure on ppc64le & ppc64.  

I found that this particular failure started with commit id 221230.  It passes
with commit id 220481.


[Bug target/65787] [5 Regression] Miscompile due to bad vector swap optimization for little endian

2015-04-17 Thread wschmidt at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65787

--- Comment #5 from Bill Schmidt  ---
Updated patch at https://gcc.gnu.org/ml/gcc-patches/2015-04/msg00883.html.


[Bug target/65612] Multiversioning doesn't work with DSO nor PIE

2015-04-17 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65612

H.J. Lu  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |6.0

--- Comment #8 from H.J. Lu  ---
Fixed for 6.0.


[Bug target/65296] [avr] fix various issues with specs file generation

2015-04-17 Thread gjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65296

--- Comment #9 from Georg-Johann Lay  ---
Author: gjl
Date: Fri Apr 17 13:54:16 2015
New Revision: 222179

URL: https://gcc.gnu.org/viewcvs?rev=222179&root=gcc&view=rev
Log:
PR target/65296
* config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
to new AVR-LibC file layout (bug #44574).
(*avrlibc_devicelib): Same.
* config/avr/avr-mcus.def: Adjust comments.
* config/avr/avr.opt (nodevicelib): Adjust help.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/avr/avr-mcus.def
trunk/gcc/config/avr/avr.opt
trunk/gcc/config/avr/gen-avr-mmcu-specs.c


[Bug tree-optimization/64950] postpone expanding va_arg till pass_stdarg

2015-04-17 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64950

vries at gcc dot gnu.org changed:

   What|Removed |Added

 CC||rth at gcc dot gnu.org

--- Comment #9 from vries at gcc dot gnu.org ---
(In reply to Uroš Bizjak from comment #8)
> (In reply to vries from comment #7)
> 
> > Marking resolved, fixed.
> 
> So, can PR41089 hack [1] finally be reverted?
> 
> [1] https://gcc.gnu.org/ml/gcc-patches/2010-08/msg00072.html

[ Adding alpha maintainer to cc. ]

AFAIU, yes.

Thanks,
- Tom

[Bug target/65296] [avr] fix various issues with specs file generation

2015-04-17 Thread gjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65296

Georg-Johann Lay  changed:

   What|Removed |Added

   Target Milestone|--- |5.2


[Bug debug/65771] ICE (in loc_list_from_tree, at dwarf2out.c:14964) on arm-linux-gnueabihf

2015-04-17 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65771

--- Comment #13 from Jakub Jelinek  ---
Author: jakub
Date: Fri Apr 17 14:16:30 2015
New Revision: 222181

URL: https://gcc.gnu.org/viewcvs?rev=222181&root=gcc&view=rev
Log:
PR debug/65771
* dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
trying mem_loc_descriptor on XEXP (rtl, 0).

Modified:
trunk/gcc/ChangeLog
trunk/gcc/dwarf2out.c


[Bug target/65787] [5 Regression] Miscompile due to bad vector swap optimization for little endian

2015-04-17 Thread wschmidt at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65787

--- Comment #6 from Bill Schmidt  ---
Author: wschmidt
Date: Fri Apr 17 14:50:50 2015
New Revision: 222182

URL: https://gcc.gnu.org/viewcvs?rev=222182&root=gcc&view=rev
Log:
[gcc]

2015-04-17  Bill Schmidt  

PR target/65787
* config/rs6000/rs6000.c (rtx_is_swappable_p): Handle case where
vec_extract operation is wrapped in a PARALLEL with a CLOBBER.
(adjust_extract): Likewise.

[gcc/testsuite]

2015-04-17  Bill Schmidt  

PR target/65787
* gcc.target/powerpc/pr65787.c: New.


Added:
branches/gcc-5-branch/gcc/testsuite/gcc.target/powerpc/pr65787.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/config/rs6000/rs6000.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog


[Bug target/65787] [5 Regression] Miscompile due to bad vector swap optimization for little endian

2015-04-17 Thread wschmidt at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65787

--- Comment #7 from Bill Schmidt  ---
Jakub pointed out that this is actually a general problem with how I'm handling
PARALLELs elsewhere, which I had missed.  Testing a slightly different patch
now.


[Bug fortran/65795] New: Segfault (invalid write) for ALLOCATE statement involving COARRAYS

2015-04-17 Thread burnus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65795

Bug ID: 65795
   Summary: Segfault (invalid write) for ALLOCATE statement
involving COARRAYS
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: burnus at gcc dot gnu.org

Created attachment 35345
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35345&action=edit
Long test case

The program below fails with a segfault at run time. The segfault is in the
ALLOCATE line. Valgrind talks about:

 Invalid write of size 8
at 0x40075F: MAIN__ (test.f90:16)

It fails here with both -fcoarray=single and -fcoarray=lib and with GCC 4.8,
4.9 and 5. At a glance, the original dump looks okay, but I likely missed
something.

Attachment: Some longer version; the idea was to use it for testing that
reallocation is properly done for coarrays. It still needs some refinement -
after the main bug has been fixed.


! Compile with -fcoarray=single or -fcoarray=lib
use iso_c_binding, only: c_intptr_t, c_loc
implicit none

type t2
  integer, allocatable :: x
end type t2

type t3
  type(t2), allocatable :: caf[:]
end type t3

type(t3), save, target :: c, d
integer :: stat

allocate(c%caf[*], stat=stat)
end


[Bug fortran/65795] Segfault (invalid write) for ALLOCATE statement involving COARRAYS

2015-04-17 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65795

Dominique d'Humieres  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-04-17
 Ever confirmed|0   |1

--- Comment #1 from Dominique d'Humieres  ---
Confirmed also for trunk (6.0).


[Bug target/65697] __atomic memory barriers not strong enough for __sync builtins

2015-04-17 Thread torvald at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65697

--- Comment #37 from torvald at gcc dot gnu.org ---
(In reply to James Greenhalgh from comment #35)
> (In reply to torvald from comment #32)
> > (In reply to James Greenhalgh from comment #28)
> > > This also gives us an easier route to fixing any issues with the
> > > acquire/release __sync primitives (__sync_lock_test_and_set and
> > > __sync_lock_release) if we decide that these also need to be stronger than
> > > their C++11 equivalents.
> > 
> > I don't think we have another case of different __sync vs. __atomics
> > semantics in case of __sync_lock_test_and_set.  The current specification
> > makes it clear that this is an acquire barrier, and how it describes the
> > semantics (ie, loads and stores that are program-order before the acquire op
> > can move to after it) , this seems to be consistent with the effects C11
> > specifies for acquire MO (with perhaps the distinction that C11 is clear
> > that acquire needs to be paired with some release op to create an ordering
> > constraint).
> 
> I think that the question is which parts of a RMW operation with
> MEMMODEL_ACQUIRE semantics is ordered. My understanding is that in C++11
> MEMMODEL_ACQUIRE only applies to the "load" half of the operation. So an
> observer to:
> 
>   atomic_flag_test_and_set_explicit(foo, memory_order_acquire)
>   atomic_store_exlicit (bar, 1, memory_model_relaxed)

That depends on your observer.  When reasoning about C11, please let's use
complete examples (and ideally, run them through cppmem).  For example, if the
observation is done by a pair of relaxed-MO loads, bar==1 && foo==0 can be
observed:

int main() {
  atomic_int foo = 0; 
  atomic_int bar = 0; 
  {{{ {
r1 = cas_strong(foo, 0, 1);
bar.store(1, memory_order_relaxed);
  } ||| {
r2 = bar.load(memory_order_relaxed).readsvalue(1); 
r3 = foo.load(memory_order_relaxed).readsvalue(0); 
  } }}};
  return 0; }

> Is permitted to observe a write to bar before a write to foo (but not before
> the read from foo).

How does one observe a load in C11 (ie, so that "before the read from foo" is
defined)?  You can constrain the reads-from of a load, but the load itself is
not observable as an effect.

I think I get what you're trying to say regarding the "load half" but I would
phrase it differently: If there could be another release store to foo that the
CAS/TAS reads-from, then moving the store to bar before the load would risk
creating a cycle between inter-thread happens-before and
sequenced-before-created intra-thread happens-before.  (Note that the later
isn't visible to other threads though, except through additional inter-thread
synchronization.)

Perhaps one could also say that moving the store to bar before the store to foo
could result in the CAS/TAS not being atomic -- but this is just reliably
observable if the foo observation is a CAS/TAS by itself (so it's totally
ordered with the other CAS), or if there is a inter-thread happens-before
between the observation of bar and the store to bar (which means using a
release store for bar).

I'm discussing these aspects because I think it matters which observations are
actually possible in a reliable way.  It matters for C11, and it may matter for
the __sync semantics as well because while the __sync functions promise TSO, we
don't really do so for all (nonatomic) loads or stores anywhere else in the
program...

IOW, can we actually come up with reliable and correct counter-examples (either
using the C11 or __sync interfaces) for the guarantees we think ARM might not
provide?

> My reading of the Itanium ABI is that the acquire barrier applies to the
> entire operation (Andrew, I think you copied these over exactly backwards in
> comment 34 ;) ):
> 
>   "Disallows the movement of memory references to visible data from
>after the intrinsic (in program order) to before the intrinsic (this
>behavior is desirable at lock-acquire operations, hence the name)."
> 
> The definition of __sync_lock_test_and_set is:
> 
>   "Behavior:
>• Atomically store the supplied value in *ptr and return the old value
>  of *ptr. (i.e.)
>{ tmp = *ptr; *ptr = value; return tmp; }
>• Acquire barrier."

Hmm.  I don't think this list is meant to be a sequence; __sync_lock_release
has two items, first the assignment to the memory location, and *second* a
release barrier.  If this were supposed to be a sequence, it wouldn't be
correct for lock releases.  It rather seems that, somehow, the whole intrinsic
is supposed to be a barrier, and be atomic.  Similarly, the __sync RMW ops just
have a single full barrier listed under behavior.

> So by the strict letter of the specification, no memory references to
> visible data should be allowed to move from after the entire body of the
> intrinsic to before it. That is to say in:
> 
>   __sync_lock_test_and_set (foo, 1)
>   bar = 1
> 
> an observer should not be able to observe the write to bar before the write
> to f

[Bug go/65180] regression in gccgo testcase runtime/pprof on ppc64le, ppc64 following move to go 1.4 from 1.3

2015-04-17 Thread boger at us dot ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65180

--- Comment #2 from boger at us dot ibm.com ---
We've been putting most of the discussion on this in the bugzilla mentioned in
the previous comment.

However there is a simple fix for Power which I will add here:

ndex: libgo/runtime/go-callers.c
===
--- libgo/runtime/go-callers.c  (revision 222128)
+++ libgo/runtime/go-callers.c  (working copy)
@@ -83,8 +83,20 @@ callback (void *data, uintptr_t pc, const char *fi
 }

   loc = &arg->locbuf[arg->index];
-  loc->pc = pc;

+  /* On the call to backtrace_full the pc value was most likely decremented
+ if there was a normal call, since the pc referred to the instruction
+ where the call returned and not the call itself.  This was done so that
+ the line number referred to the call instruction.  To make sure
+ the actual pc from the call stack is used, it is incremented here.
+
+ In the case of a signal, the pc was not decremented by backtrace_full but
+ still incremented here.  That doesn't really hurt anything since the line
+ number is right and the pc refers to the same instruction.
+  */
+
+  loc->pc = pc+1;
+
   /* The libbacktrace library says that these strings might disappear,
  but with the current implementation they won't.  We can't easily
  allocate memory here, so for now assume that we can save a

Since 64999 was written against Z there might be an additional change needed to
make that work.


[Bug target/65697] __atomic memory barriers not strong enough for __sync builtins

2015-04-17 Thread torvald at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65697

--- Comment #38 from torvald at gcc dot gnu.org ---
(In reply to Andrew Macleod from comment #34)
> > However, I guess some people relying on data races in their programs could
> > (mis?)understand the __sync_lock_release semantics to mean that it is a
> > means to get the equivalent of a C11 release *fence* -- which it is not
> > because the fence would apply to the (erroneously non-atomic) store after
> > the barrier, which could one lead to believe that if one observes the store
> > after the barrier, the fence must also be in effect.  Thoughts?
> 
> before we get too carried away, maybe we should return to what we *think*
> __sync are suppose to do. It represents a specific definition by intel..
> From the original documentation for __sync "back in the day", and all legacy
> uses of sync should expect this behaviour:

The problem I see with that is that I don't think that just looking at the
psABI gives you enough information to really reason about what you are allowed
to do or not.  Strictly speaking, the psABI doesn't give you guarantees about
normal memory accesses that are not data-race-free (through use of the __sync
builtins).  Nonetheless, legacy code does use them in a combination with the
__sync builtins.

Also, if you look at the IA-64 __sync_lock_release vs. GCC docs'
__sync_lock_release, the latter is like x86/TSO.  Do you have any info on which
other semantics __sync was supposed to adhere to?

One potential way to solve it would be to just require code that uses __sync to
more or less implement an IA-64 or x86 memory model, modulo allowing
compiler-reordering and optimization between adjacent non-__sync memory
accesses.  This could be inefficient on ARM (see James' examples) and perhaps
Power too (or not -- see Jakub's comments).


[Bug fortran/58754] [4.8/4.9/5/6 Regression] ICE on allocating character array with source

2015-04-17 Thread pault at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58754

--- Comment #7 from Paul Thomas  ---
(In reply to Dominique d'Humieres from comment #6)
> > This fixes the problem. 
> 
> Confirmed.
> 
> > However, it will produce multiple evaluations of function results
> > and expressions. I will introduce a temporary to cover those cases.
> 
> Is it obvious?
> 
> > PS It's a pity I did not clock this before the RC!
> 
> No RC yet!

What, really?

Paul


[Bug fortran/58754] [4.8/4.9/5/6 Regression] ICE on allocating character array with source

2015-04-17 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58754

--- Comment #8 from Dominique d'Humieres  ---
> > No RC yet!
>
> What, really?

Now yes. 5.1 should be available in the middle of next week.


[Bug target/65780] [5/6 Regression] Uninitialized common handling in executables

2015-04-17 Thread law at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65780

--- Comment #36 from Jeffrey A. Law  ---
Patch in c#35 is approved.


[Bug fortran/65548] [5/6 Regression] gfc_conv_procedure_call

2015-04-17 Thread juergen.reuter at desy dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65548

--- Comment #17 from Jürgen Reuter  ---
I applied the patch, and did a make in the built folder. I still get the ICE.
Or do I have to change the file gcc/fortran/trans-stmt.c and do a completely
new built of the gcc/gfortran compiler suite?

[Bug target/65780] [5/6 Regression] Uninitialized common handling in executables

2015-04-17 Thread hjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65780

--- Comment #37 from hjl at gcc dot gnu.org  ---
Author: hjl
Date: Fri Apr 17 16:23:24 2015
New Revision: 222184

URL: https://gcc.gnu.org/viewcvs?rev=222184&root=gcc&view=rev
Log:
Properly handle uninitialized common symbol

Uninitialized common symbol behavior in executables is target and linker
dependent.  default_binds_local_p_3 is made public and updated to take an
argument to indicate if the linker can guarantee that an uninitialized
common symbol in the executable will still be defined (through COPY
relocation) in the executable.  If common symbol is local to executable,
default_binds_local_p_3 will treat non-external variable as defined
locally.  default_binds_local_p_2 is changed to treat common symbol as
local for non-PIE binaries.

For i386, common symbol is local only for non-PIE binaries.  For x86-64,
common symbol is local only for non-PIE binaries or linker supports copy
reloc in PIE binaries.  If a target treats common symbol as local only
for non-PIE binaries, it can define TARGET_BINDS_LOCAL_P as
default_binds_local_p_2.

gcc/

PR target/65780
* output.h (default_binds_local_p_3): New.
* varasm.c (default_binds_local_p_3): Make it public.  Take an
argument to indicate if common symbol may be local.  If common
symbol may be local, treat non-external variable as defined
locally.
(default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
(default_binds_local_p_1): Pass false to default_binds_local_p_3.
* config/i386/i386.c (ix86_binds_local_p): New.
(TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
ix86_binds_local_p.

gcc/testsuite/

PR target/65780
* gcc.dg/pr65780-1.c: New test.
* gcc.dg/pr65780-2.c: Likewise.
* gcc.target/i386/pr32219-9.c: Likewise.
* gcc.target/i386/pr32219-1.c (xxx): Make it initialized common
symbol.
* gcc.target/i386/pr64317.c (c): Initialize.

Added:
trunk/gcc/testsuite/gcc.dg/pr65780-1.c
trunk/gcc/testsuite/gcc.dg/pr65780-2.c
trunk/gcc/testsuite/gcc.target/i386/pr32219-9.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.c
trunk/gcc/output.h
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.target/i386/pr32219-1.c
trunk/gcc/testsuite/gcc.target/i386/pr64317.c
trunk/gcc/varasm.c


[Bug target/65780] [5 Regression] Uninitialized common handling in executables

2015-04-17 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65780

H.J. Lu  changed:

   What|Removed |Added

Summary|[5/6 Regression]|[5 Regression]
   |Uninitialized common|Uninitialized common
   |handling in executables |handling in executables

--- Comment #38 from H.J. Lu  ---
Fixed on trunk so far.


[Bug target/65780] [5 Regression] Uninitialized common handling in executables

2015-04-17 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65780

--- Comment #39 from Jakub Jelinek  ---
Please commit it to the branch too, I'll do another RC tomorrow.


[Bug fortran/65548] [5/6 Regression] gfc_conv_procedure_call

2015-04-17 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65548

--- Comment #18 from Dominique d'Humieres  ---
> I applied the patch, and did a make in the built folder. I still get the ICE.

Did you do "make install"?

> Or do I have to change the file gcc/fortran/trans-stmt.c and do a completely
> new built of the gcc/gfortran compiler suite?

It is always safer to do a clean bootstrap, but it should not be necessary.
When patching gfortran I usually doe "touch gcc/fortran/*" which forces to
rebuild fortran at all stages and rebuild libgfortran.


[Bug target/65780] [5 Regression] Uninitialized common handling in executables

2015-04-17 Thread hjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65780

--- Comment #40 from hjl at gcc dot gnu.org  ---
Author: hjl
Date: Fri Apr 17 16:36:22 2015
New Revision: 222185

URL: https://gcc.gnu.org/viewcvs?rev=222185&root=gcc&view=rev
Log:
Properly handle uninitialized common symbol

Uninitialized common symbol behavior in executables is target and linker
dependent.  default_binds_local_p_3 is made public and updated to take an
argument to indicate if the linker can guarantee that an uninitialized
common symbol in the executable will still be defined (through COPY
relocation) in the executable.  If common symbol is local to executable,
default_binds_local_p_3 will treat non-external variable as defined
locally.  default_binds_local_p_2 is changed to treat common symbol as
local for non-PIE binaries.

For i386, common symbol is local only for non-PIE binaries.  For x86-64,
common symbol is local only for non-PIE binaries or linker supports copy
reloc in PIE binaries.  If a target treats common symbol as local only
for non-PIE binaries, it can define TARGET_BINDS_LOCAL_P as
default_binds_local_p_2.

gcc/

PR target/65780
* output.h (default_binds_local_p_3): New.
* varasm.c (default_binds_local_p_3): Make it public.  Take an
argument to indicate if common symbol may be local.  If common
symbol may be local, treat non-external variable as defined
locally.
(default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
(default_binds_local_p_1): Pass false to default_binds_local_p_3.
* config/i386/i386.c (ix86_binds_local_p): New.
(TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
ix86_binds_local_p.

gcc/testsuite/

PR target/65780
* gcc.dg/pr65780-1.c: New test.
* gcc.dg/pr65780-2.c: Likewise.
* gcc.target/i386/pr32219-9.c: Likewise.
* gcc.target/i386/pr32219-1.c (xxx): Make it initialized common
symbol.
* gcc.target/i386/pr64317.c (c): Initialize.

Added:
branches/gcc-5-branch/gcc/testsuite/gcc.dg/pr65780-1.c
branches/gcc-5-branch/gcc/testsuite/gcc.dg/pr65780-2.c
branches/gcc-5-branch/gcc/testsuite/gcc.target/i386/pr32219-9.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/config/i386/i386.c
branches/gcc-5-branch/gcc/output.h
branches/gcc-5-branch/gcc/testsuite/ChangeLog
branches/gcc-5-branch/gcc/testsuite/gcc.target/i386/pr32219-1.c
branches/gcc-5-branch/gcc/testsuite/gcc.target/i386/pr64317.c
branches/gcc-5-branch/gcc/varasm.c


[Bug target/65780] [5 Regression] Uninitialized common handling in executables

2015-04-17 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65780

H.J. Lu  changed:

   What|Removed |Added

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

--- Comment #41 from H.J. Lu  ---
Fixed for 5.1.


[Bug target/65689] [5/6 Regression][AArch64] S constraint fails for inline asm at -O0

2015-04-17 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65689

--- Comment #9 from Jakub Jelinek  ---
Author: jakub
Date: Fri Apr 17 16:43:28 2015
New Revision: 222186

URL: https://gcc.gnu.org/viewcvs?rev=222186&root=gcc&view=rev
Log:
PR target/65689
* genpreds.c (struct constraint_data): Add maybe_allows_reg and
maybe_allows_mem bitfields.
(maybe_allows_none_start, maybe_allows_none_end,
maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
maybe_allows_mem_end): New variables.
(compute_maybe_allows): New function.
(add_constraint): Use it to initialize maybe_allows_reg and
maybe_allows_mem fields.
(choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
is_address constraints such that those that allow neither mem nor
reg come first, then those that only allow reg but not mem, then
those that only allow mem but not reg, then the rest.
(write_allows_reg_mem_function): New function.
(write_tm_preds_h): Call it.
* stmt.c (parse_output_constraint, parse_input_constraint): Use
the generated insn_extra_constraint_allows_reg_mem function
instead of always setting *allows_reg = true; *allows_mem = true;
for unknown extra constraints.

* gcc.target/aarch64/c-output-template-4.c: New test.

Added:
trunk/gcc/testsuite/gcc.target/aarch64/c-output-template-4.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/genpreds.c
trunk/gcc/stmt.c
trunk/gcc/testsuite/ChangeLog


[Bug middle-end/65796] New: unnecessary stack spills during complex numbers function calls

2015-04-17 Thread jtaylor.debian at googlemail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65796

Bug ID: 65796
   Summary: unnecessary stack spills during complex numbers
function calls
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jtaylor.debian at googlemail dot com

following function calling cabsf exhibits poor performance when compiled with
gcc:

#include 
using namespace std;
void __attribute__((noinline)) v(int nCor, complex * inp, complex
* out)
{
for (int icorr = 0; icorr < nCor; icorr++) {
float amp = abs(inp[icorr]);
if (amp > 0.f) {
out[icorr] = amp * inp[icorr];
}   
else {
out[icorr] = 0.; 
}   
}

with gcc 4.9 and 5 (20150208) on x86_64 produces:
g++- test.cc -O2  -c -S

.L15:
movss4(%rsp), %xmm2
addq$8, %rbx
addq$8, %rbp
movss(%rsp), %xmm1
mulss%xmm0, %xmm2
mulss%xmm0, %xmm1
movss%xmm2, -8(%rbx)
movss%xmm1, -4(%rbx)
cmpq%r12, %rbx
je.L14
.L7:
movss0(%rbp), %xmm2
movss4(%rbp), %xmm1
movss%xmm2, 8(%rsp)
movss%xmm1, 12(%rsp)
movq8(%rsp), %xmm0
movss%xmm2, 4(%rsp)
movss%xmm1, (%rsp)
callcabsf
pxor%xmm3, %xmm3
ucomiss%xmm3, %xmm0
ja.L15


note the spills of xmm[12] onto the stack and reloading it into xmm0
instead of spilling to the stack one could use unpcklps to prepare xmm0

with a simple benchmark on 5000 floats this would speed up the function by
about 30% on an intel core2 and an i5 which is quite significant given the
expensive cabs call that is also done in it.


[Bug target/65689] [5 Regression][AArch64] S constraint fails for inline asm at -O0

2015-04-17 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65689

Jakub Jelinek  changed:

   What|Removed |Added

Summary|[5/6 Regression][AArch64] S |[5 Regression][AArch64] S
   |constraint fails for inline |constraint fails for inline
   |asm at -O0  |asm at -O0

--- Comment #10 from Jakub Jelinek  ---
Should be fixed on the trunk now, queued for 5.2 if it is fine on the trunk.


[Bug bootstrap/62077] --with-build-config=bootstrap-lto fails

2015-04-17 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62077

--- Comment #63 from Jakub Jelinek  ---
Author: jakub
Date: Fri Apr 17 17:09:20 2015
New Revision: 222187

URL: https://gcc.gnu.org/viewcvs?rev=222187&root=gcc&view=rev
Log:
PR bootstrap/62077
* configure.ac (--enable-stage1-checking): Default to
release,misc,gimple,rtlflag,tree,types if --disable-checking
or --enable-checking is not specified and DEV-PHASE is not
experimental.
* configure: Regenerated.

Modified:
trunk/ChangeLog
trunk/configure
trunk/configure.ac


[Bug bootstrap/62077] --with-build-config=bootstrap-lto fails

2015-04-17 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62077

--- Comment #64 from Jakub Jelinek  ---
Author: jakub
Date: Fri Apr 17 17:10:27 2015
New Revision: 222189

URL: https://gcc.gnu.org/viewcvs?rev=222189&root=gcc&view=rev
Log:
PR bootstrap/62077
* configure.ac (--enable-stage1-checking): Default to
release,misc,gimple,rtlflag,tree,types if --disable-checking
or --enable-checking is not specified and DEV-PHASE is not
experimental.
* configure: Regenerated.

Modified:
branches/gcc-5-branch/ChangeLog
branches/gcc-5-branch/configure
branches/gcc-5-branch/configure.ac


[Bug fortran/57354] Wrong run-time assignment of allocatable array of derived type with allocatable component

2015-04-17 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57354

--- Comment #6 from Dominique d'Humieres  ---
AFAICT this PR is fixed at 4.9.2. Any reason why it is not closed?


[Bug fortran/58754] [4.8/4.9/5/6 Regression] ICE on allocating character array with source

2015-04-17 Thread paul.richard.thomas at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58754

--- Comment #9 from paul.richard.thomas at gmail dot com  ---
Ah that's a pity. I thought that 5.0 had closed when Tobias was
panicking about his co-array patch. I didn't think to check.

Cheers

Paul

On 17 April 2015 at 18:03, dominiq at lps dot ens.fr
 wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58754
>
> --- Comment #8 from Dominique d'Humieres  ---
>> > No RC yet!
>>
>> What, really?
>
> Now yes. 5.1 should be available in the middle of next week.
>
> --
> You are receiving this mail because:
> You are on the CC list for the bug.
> You are the assignee for the bug.


[Bug fortran/42112] overloaded function with allocatable result problem

2015-04-17 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=42112

--- Comment #9 from Dominique d'Humieres  ---
This seems to have been fixed at least for 4.8.4.


[Bug target/65535] powerpc64-freebsd build failure

2015-04-17 Thread andreast at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65535

--- Comment #6 from Andreas Tobler  ---
Author: andreast
Date: Fri Apr 17 17:50:46 2015
New Revision: 222192

URL: https://gcc.gnu.org/viewcvs?rev=222192&root=gcc&view=rev
Log:
PR target/65535
* config.gcc: Exit with a comment when we do not have a major version
number for the FreeBSD target.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config.gcc


[Bug target/65697] __atomic memory barriers not strong enough for __sync builtins

2015-04-17 Thread amacleod at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65697

--- Comment #39 from Andrew Macleod  ---
(In reply to torvald from comment #38)
> (In reply to Andrew Macleod from comment #34)
> > > However, I guess some people relying on data races in their programs could
> > > (mis?)understand the __sync_lock_release semantics to mean that it is a
> > > means to get the equivalent of a C11 release *fence* -- which it is not
> > > because the fence would apply to the (erroneously non-atomic) store after
> > > the barrier, which could one lead to believe that if one observes the 
> > > store
> > > after the barrier, the fence must also be in effect.  Thoughts?
> > 
> > before we get too carried away, maybe we should return to what we *think*
> > __sync are suppose to do. It represents a specific definition by intel..
> > From the original documentation for __sync "back in the day", and all legacy
> > uses of sync should expect this behaviour:
> 
> The problem I see with that is that I don't think that just looking at the
> psABI gives you enough information to really reason about what you are
> allowed to do or not.  Strictly speaking, the psABI doesn't give you
> guarantees about normal memory accesses that are not data-race-free (through
> use of the __sync builtins).  Nonetheless, legacy code does use them in a
> combination with the __sync builtins.
> 
> Also, if you look at the IA-64 __sync_lock_release vs. GCC docs'
> __sync_lock_release, the latter is like x86/TSO.  Do you have any info on
> which other semantics __sync was supposed to adhere to?
>

no, __sync was simply an implementation of psABI back when it was new... I'm
not aware of any additions, enhancements or guarantees that were added when it
was ported to other arch's.  

Terminology was much looser 14 years ago :-)  That's one of the reasons we want
to migrate to __atomic... it is supposedly more precisely defined, whereas
__sync had some hand-waving.  We're now experiencing some different
interpretations of that.Regardless of the documentation, we didn't think
we'd be supporting something stronger than SEQ_CST since they were suppose to
be equivalent... 

when rth gets back he may have some opinion as well.



> One potential way to solve it would be to just require code that uses __sync
> to more or less implement an IA-64 or x86 memory model, modulo allowing
> compiler-reordering and optimization between adjacent non-__sync memory
> accesses.  This could be inefficient on ARM (see James' examples) and
> perhaps Power too (or not -- see Jakub's comments).


[Bug go/65755] incorrect reflection of struct fields with gccgo

2015-04-17 Thread ian at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65755

--- Comment #3 from ian at gcc dot gnu.org  ---
Author: ian
Date: Fri Apr 17 18:19:44 2015
New Revision: 222194

URL: https://gcc.gnu.org/viewcvs?rev=222194&root=gcc&view=rev
Log:
PR go/65755
compiler, runtime, reflect: Use reflection string for type comparisons.

Change the runtime and reflect libraries to always use only
the type reflection string to determine whether two types are
equal.  It previously used the PkgPath and Name values for a
type name, but that required a PkgPath that did not match the
gc compiler.

Change the compiler to use the same PkgPath value as the gc
compiler in all cases.

Change the compiler to put the receiver type in the reflection
string for a type defined inside a method.

Modified:
trunk/gcc/go/gofrontend/types.cc
trunk/libgo/go/reflect/type.go
trunk/libgo/runtime/go-typedesc-equal.c


[Bug go/65755] incorrect reflection of struct fields with gccgo

2015-04-17 Thread ian at airs dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65755

Ian Lance Taylor  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #4 from Ian Lance Taylor  ---
Fixed on mainline and GCC 5 branch.


[Bug tree-optimization/47679] [4.8/4.9/5/6 Regression] Strange uninitialized warning after SRA

2015-04-17 Thread law at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47679

--- Comment #19 from Jeffrey A. Law  ---
Author: law
Date: Fri Apr 17 19:24:17 2015
New Revision: 222195

URL: https://gcc.gnu.org/viewcvs?rev=222195&root=gcc&view=rev
Log:
PR tree-optimization/47679
* Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
* tree-ssa-scopedtables.c: New file.
* tree-ssa-scopedtables.h: New file.
* tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
(const_and_copies): Change name/type.
(record_const_or_copy): Move into tree-ssa-scopedtables.c
(record_const_or_copy_1): Similarly.
(restore_vars_to_original_value): Similarly.
(pass_dominator::execute): Create and destroy const_and_copies table.
(thread_across_edge): Update passing of const_and_copies.
(record_temporary_equivalence): Use method calls rather than
manipulating const_and_copies directly.
(record_equality, cprop_into_successor_phis): Similarly.
(dom_opt_dom_walker::before_dom_children): Similarly.
(dom_opt_dom_walker::after_dom_children): Similarly.
(eliminate_redundant_computations): Similarly.
* tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
(record_temporary_equivalence): Likewise.
(invalidate_equivalences): Likewise.
(record_temporary_equivalences_from_phis): Update due to type
change of const_and_copies.  Use method calls rather than
manipulating the stack directly.
(record_temporary_equivalences_from_stmts_at_dest): Likewise.
(thread_through_normal_block, thread_across_edge): Likewise.
(thread_across_edge): Likewise.
* tree-ssa-threadedge.h (thread_across_edge): Update prototype.
* tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
of equiv_stack.
(identify_jump_threads): Update due to type change of equiv_stack.
(finalize_jump_threads): Delete the equiv_stack when complete.

Added:
trunk/gcc/tree-ssa-scopedtables.c
trunk/gcc/tree-ssa-scopedtables.h
Modified:
trunk/gcc/ChangeLog
trunk/gcc/Makefile.in
trunk/gcc/tree-ssa-dom.c
trunk/gcc/tree-ssa-loop-ch.c
trunk/gcc/tree-ssa-threadedge.c
trunk/gcc/tree-ssa-threadedge.h
trunk/gcc/tree-vrp.c


[Bug go/64999] s390x libgo test failure in TestMemoryProfiler

2015-04-17 Thread ian at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64999

--- Comment #57 from ian at gcc dot gnu.org  ---
Author: ian
Date: Fri Apr 17 19:29:28 2015
New Revision: 222196

URL: https://gcc.gnu.org/viewcvs?rev=222196&root=gcc&view=rev
Log:
PR go/64999
PR go/65180
runtime: Adjust libbacktrace PC value to what runtime.Callers expects.

>From Lynn Boger.

Modified:
trunk/libgo/runtime/go-callers.c


[Bug go/65180] regression in gccgo testcase runtime/pprof on ppc64le, ppc64 following move to go 1.4 from 1.3

2015-04-17 Thread ian at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65180

--- Comment #4 from ian at gcc dot gnu.org  ---
Author: ian
Date: Fri Apr 17 19:29:43 2015
New Revision: 222197

URL: https://gcc.gnu.org/viewcvs?rev=222197&root=gcc&view=rev
Log:
PR go/64999
PR go/65180
runtime: Adjust libbacktrace PC value to what runtime.Callers expects.

>From Lynn Boger.

Modified:
branches/gcc-5-branch/libgo/runtime/go-callers.c


[Bug go/65180] regression in gccgo testcase runtime/pprof on ppc64le, ppc64 following move to go 1.4 from 1.3

2015-04-17 Thread ian at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65180

--- Comment #3 from ian at gcc dot gnu.org  ---
Author: ian
Date: Fri Apr 17 19:29:28 2015
New Revision: 222196

URL: https://gcc.gnu.org/viewcvs?rev=222196&root=gcc&view=rev
Log:
PR go/64999
PR go/65180
runtime: Adjust libbacktrace PC value to what runtime.Callers expects.

>From Lynn Boger.

Modified:
trunk/libgo/runtime/go-callers.c


[Bug go/64999] s390x libgo test failure in TestMemoryProfiler

2015-04-17 Thread ian at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64999

--- Comment #58 from ian at gcc dot gnu.org  ---
Author: ian
Date: Fri Apr 17 19:29:43 2015
New Revision: 222197

URL: https://gcc.gnu.org/viewcvs?rev=222197&root=gcc&view=rev
Log:
PR go/64999
PR go/65180
runtime: Adjust libbacktrace PC value to what runtime.Callers expects.

>From Lynn Boger.

Modified:
branches/gcc-5-branch/libgo/runtime/go-callers.c


[Bug fortran/65792] allocation of scalar elemental function with structure constructor fails

2015-04-17 Thread mikael at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65792

Mikael Morin  changed:

   What|Removed |Added

 CC||mikael at gcc dot gnu.org

--- Comment #1 from Mikael Morin  ---
The problem is the initialization of string_container_t.6.comp in the dump.
The array itself (the data component) is properly initialized, but not the
array bounds.


[Bug go/65180] regression in gccgo testcase runtime/pprof on ppc64le, ppc64 following move to go 1.4 from 1.3

2015-04-17 Thread ian at airs dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65180

Ian Lance Taylor  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #5 from Ian Lance Taylor  ---
This aspect of the problem should be fixed, I think.


[Bug fortran/65792] allocation of scalar elemental function with structure constructor fails

2015-04-17 Thread mikael at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65792

--- Comment #2 from Mikael Morin  ---
Created attachment 35346
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35346&action=edit
draft patch, untested


[Bug target/65535] powerpc64-freebsd build failure

2015-04-17 Thread andreast at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65535

Andreas Tobler  changed:

   What|Removed |Added

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

--- Comment #7 from Andreas Tobler  ---
Fixed.


[Bug target/65787] [5 Regression] Miscompile due to bad vector swap optimization for little endian

2015-04-17 Thread wschmidt at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65787

--- Comment #8 from Bill Schmidt  ---
Author: wschmidt
Date: Fri Apr 17 20:35:59 2015
New Revision: 222198

URL: https://gcc.gnu.org/viewcvs?rev=222198&root=gcc&view=rev
Log:
2015-04-17  Bill Schmidt  

PR target/65787
* config/rs6000/rs6000.c (rtx_is_swappable_p): Remove previous
fix; ensure that a subsequent SH_NONE operand does not overwrite
an existing *special value.


Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/config/rs6000/rs6000.c


[Bug tree-optimization/65797] New: [5.0 regression] IPA ICF causes function to be emitted with no debug line info

2015-04-17 Thread ian at airs dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65797

Bug ID: 65797
   Summary: [5.0 regression] IPA ICF causes function to be emitted
with no debug line info
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: hubicka at ucw dot cz
  Reporter: ian at airs dot com

This stand alone test case is boiled down from libgo/runtime/go-make-slice.c.


typedef unsigned int uintptr_t __attribute__ ((mode (pointer)));
typedef unsigned int uint64_t __attribute__ ((mode (DI)));

extern int f1 (char *, uintptr_t, uintptr_t);

int
f2 (char *p, uintptr_t s)
{
  return f1 (p, s, s);
}

int
f4 (char *p, uint64_t s1, uint64_t s2)
{
  uintptr_t t1, t2;

  t1 = (uintptr_t) s1;
  if ((uint64_t) t1 != s1)
return 0;

  t2 = (uintptr_t) s2;
  if ((uint64_t) t2 != s2)
return 0;

  return f1 (p, t1, t2);
}

int
f3 (char *p, uint64_t s)
{
  return f4 (p, s, s);
}


When I compile this -g -O2 -fno-optimize-sibling-calls on x86_64 f2 is
converted into a function that does nothing but call f3.  From the standpoint
of execution that is fine.  What is not fine is that f2 is emitted with no
debug line information.  When compiling for x86_64, the .s output is:

.p2align 4,,15
.globl  f2
.type   f2, @function
f2:
.LFB4:
.cfi_startproc
subq$8, %rsp
.cfi_def_cfa_offset 16
callf3
addq$8, %rsp
.cfi_def_cfa_offset 8
ret
.cfi_endproc
.LFE4:
.size   f2, .-f2

Note the absence of any .loc directives.

This is causing a failure in the libgo testsuite (runtime/pprof on x86_64). 
The failure is, essentially, a failure of the stack backtrace to determine the
name of the function f2.  In the absence of line information the library is
unable to know the name of the function.


[Bug go/64683] FAIL: runtime/pprof -- testing.go:278: The entry did not match

2015-04-17 Thread ian at airs dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64683

--- Comment #11 from Ian Lance Taylor  ---
This bug may have the same symptoms but it has a completely different cause. 
Next time, please do not reopen the bug unless you are certain it has the same
cause.  Please open a new bug instead.  Thanks.

The immediate cause of this problem is PR 65797.  That bug is causing
libbacktrace to fail to determine the name of the __go_make_slice1 function,
which causes the runtime/pprof package to fail to see that the stack frame is a
Go runtime stack frame which should not be reported, which causes the test to
fail because an extra unexpected stack frame is being reported.


[Bug go/65798] New: runtime.Caller returns ok=true when return data is invalid

2015-04-17 Thread boger at us dot ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65798

Bug ID: 65798
   Summary: runtime.Caller returns ok=true when return data is
invalid
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: go
  Assignee: ian at airs dot com
  Reporter: boger at us dot ibm.com
CC: cmang at google dot com
Target: ppc64le, x86_64, s390x

Created attachment 35347
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35347&action=edit
Don't return ok=true from runtime.Caller if the pc is 0 or the filename has 0
len.

This came from a user trying to build Docker on Fedora 22 using gccgo.  The
they found when calling runtime.Caller, the return value for ok could be true
even though the other returned values could be invalid.  Because ok was true
they assumed the data was valid and tried to use those return values from
runtime.Caller to pass onto runtime.FuncForPC which then resulted in the signal
11 displayed below.

The failure occurs on every platform they tried to use with gccgo.  Here is the
original information:


Description of problem:
docker using gcc-go crashes

Version-Release number of selected component (if applicable):
gcc-5.0.1-0.1.fc22

How reproducible:
Always(reproduced on x86_64, ppc64le, s390x, but expecting ppc64 too)

Steps to Reproduce:
1.install docker from https://repos.fedorapeople.org/repos/jcajka/docker-gccgo/
(ppc64(le), s390x) or https://copr.fedoraproject.org/coprs/jcajka/docker-gccgo/
(x86_64) 
2.systemctl start docker
3.mkdir /root/dir
4.chcon -Rt svirt_sandbox_file_t /root/dir/ (just in case)
5.1 for x86: 
  docker run fedora -itv /root/dir/:/root/dir/ /bin/bash 
5.2 for ppc64(le),s390x(replace arch in docker.io/jcajka/fedora22-...):
  docker run docker.io/jcajka/fedora22-ppc64 -itv /root/dir/:/root/dir/
/bin/bash
Actual results
on ppc64le/x86:

docker run docker.io/jcajka/fedora22-ppc64le -itv /root/dir/:/root/dir/
/bin/bash
panic: runtime error: invalid memory address or nil pointer dereference
on ppc64le: [signal 0xb code=0x1 addr=0x8]
on x86_64:  [signal 0xb code=0x1 addr=0x0]

goroutine 16 [running]:
github_com_docker_libcontainer_stacktrace.NewFrame
   
/builddir/build/BUILD/docker-1dcc59a0b40f7d29ab2e0b8fdeb0adf537dbcbaf/vendor/src/github.com/docker/libcontainer/stacktrace/frame.go:12
github_com_docker_libcontainer_stacktrace.Capture
   
/builddir/build/BUILD/docker-1dcc59a0b40f7d29ab2e0b8fdeb0adf537dbcbaf/vendor/src/github.com/docker/libcontainer/stacktrace/capture.go:18
libcontainer.newSystemError
   
/builddir/build/BUILD/docker-1dcc59a0b40f7d29ab2e0b8fdeb0adf537dbcbaf/vendor/src/github.com/docker/libcontainer/generic_error.go:48
libcontainer.$nested4
   
/builddir/build/BUILD/docker-1dcc59a0b40f7d29ab2e0b8fdeb0adf537dbcbaf/vendor/src/github.com/docker/libcontainer/factory_linux.go:212
github_com_docker_libcontainer.StartInitialization.pN43_github_com_docker_libcontainer.LinuxFactory
   
/builddir/build/BUILD/docker-1dcc59a0b40f7d29ab2e0b8fdeb0adf537dbcbaf/vendor/src/github.com/docker/libcontainer/factory_linux.go:224
native.initializer
   
/builddir/build/BUILD/docker-1dcc59a0b40f7d29ab2e0b8fdeb0adf537dbcbaf/_build/src/github.com/docker/docker/daemon/execdriver/native/init.go:35
github_com_docker_docker_pkg_reexec.Init
   
/builddir/build/BUILD/docker-1dcc59a0b40f7d29ab2e0b8fdeb0adf537dbcbaf/_build/src/github.com/docker/docker/pkg/reexec/reexec.go:26
main.main
   
/builddir/build/BUILD/docker-1dcc59a0b40f7d29ab2e0b8fdeb0adf537dbcbaf/docker/docker.go:29

goroutine 18 [finalizer wait]:
created by runtime_createfing
../../../libgo/runtime/mgc0.c:2572

goroutine 19 [syscall]:
goroutine in C code; stack unavailable
created by os_signal..import
../../../libgo/go/os/signal/signal_unix.go:25

Expected results:
docker run docker.io/jcajka/fedora22-s390x -itv /root/dir/:/root/dir/ /bin/bash
FATA[] Error response from daemon: Cannot start container
fb6ed2f3efd57fa07ddf5c4d8576408d0f4cb95fe645a335063f7bed014a0654: [8] System
error: exec: "-itv": executable file not found in $PATH

Additional info:
Crash seems to be triggered by creating new Frame using invalid
pc/filename/line in libcontainer(seen this crash from time to time, but haven't
got reliable reproducer, until now). As libgo's runtime.Caller(capture.go:14)
returns seemingly invalid data(0,"",0) later used in
runtime.FuncForPC/parseFunctionName(frame.go). This could be workaround by
extending/fixing check in capture.go:15, but I think that runtime.Caller
shouldn't return ok state when returned data seems invalid. Patch in attachment
prevents this crash.

--
I'm attaching their suggested patch.


[Bug target/65780] [5 Regression] Uninitialized common handling in executables

2015-04-17 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65780

Dominique d'Humieres  changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |---

--- Comment #42 from Dominique d'Humieres  ---
Revision r222184 breaks bootstrap on x86_64-apple-darwin14:

/opt/gcc/build_w/./prev-gcc/xg++ -B/opt/gcc/build_w/./prev-gcc/
-B/opt/gcc/gcc6w/x86_64-apple-darwin14.3.0/bin/ -nostdinc++
-B/opt/gcc/build_w/prev-x86_64-apple-darwin14.3.0/libstdc++-v3/src/.libs
-B/opt/gcc/build_w/prev-x86_64-apple-darwin14.3.0/libstdc++-v3/libsupc++/.libs 
-I/opt/gcc/build_w/prev-x86_64-apple-darwin14.3.0/libstdc++-v3/include/x86_64-apple-darwin14.3.0
 -I/opt/gcc/build_w/prev-x86_64-apple-darwin14.3.0/libstdc++-v3/include 
-I/opt/gcc/work/libstdc++-v3/libsupc++
-L/opt/gcc/build_w/prev-x86_64-apple-darwin14.3.0/libstdc++-v3/src/.libs
-L/opt/gcc/build_w/prev-x86_64-apple-darwin14.3.0/libstdc++-v3/libsupc++/.libs
-c  -DIN_GCC_FRONTEND -DIN_GCC_FRONTEND -g -O2   -gtoggle -DIN_GCC   
-fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing
-Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual
-pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Werror
-fno-common  -DHAVE_CONFIG_H -I. -Icp -I../../work/gcc -I../../work/gcc/cp
-I../../work/gcc/../include -I./../intl -I../../work/gcc/../libcpp/include
-I/opt/mp-new/include  -I../../work/gcc/../libdecnumber
-I../../work/gcc/../libdecnumber/dpd -I../libdecnumber
-I../../work/gcc/../libbacktrace -I/opt/mp-new/include  -o cp/optimize.o -MT
cp/optimize.o -MMD -MP -MF cp/.deps/optimize.TPo ../../work/gcc/cp/optimize.c
../../work/gcc/config/i386/i386.c:51747:1: error: 'bool
ix86_binds_local_p(const_tree)' defined but not used [-Werror=unused-function]
 ix86_binds_local_p (const_tree exp)
 ^
cc1plus: all warnings being treated as errors
Makefile:2071: recipe for target 'i386.o' failed
make[3]: *** [i386.o] Error 1

Bootstrap is restored if I comment the block

static bool
ix86_binds_local_p (const_tree exp)
{
  return default_binds_local_p_3 (exp, flag_shlib != 0, true, true,
  (!flag_pic
   || (TARGET_64BIT
   && HAVE_LD_PIE_COPYRELOC != 0)));
}


[Bug go/64683] FAIL: runtime/pprof -- testing.go:278: The entry did not match

2015-04-17 Thread boger at us dot ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64683

--- Comment #12 from boger at us dot ibm.com ---
Sorry I did not intend to reopen a closed bugzilla, I must not have looked
carefully enough and thought it was still open.  Just wanted to document what I
found since their log output was the same.  I will be more careful.


[Bug go/64683] FAIL: runtime/pprof -- testing.go:278: The entry did not match

2015-04-17 Thread ian at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64683

--- Comment #13 from ian at gcc dot gnu.org  ---
Author: ian
Date: Fri Apr 17 21:29:08 2015
New Revision: 222199

URL: https://gcc.gnu.org/viewcvs?rev=222199&root=gcc&view=rev
Log:
PR go/64683
runtime/pprof: Assume function with no name is in runtime.

GCC PR 65797 causes some of the runtime functions to be
compiled with no name in the debug info.  This in turn causes
the runtime/pprof test to fail as reported in GCC PR 64683.

There are no good choices when a function has no name in the
debug info, but here we assume that if we see such a function
while reading the runtime functions, we assume that it is also
a runtime function.

Modified:
branches/gcc-5-branch/libgo/go/runtime/pprof/pprof.go


[Bug tree-optimization/65797] [5.0 regression] IPA ICF causes function to be emitted with no debug line info

2015-04-17 Thread ian at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65797

--- Comment #1 from ian at gcc dot gnu.org  ---
Author: ian
Date: Fri Apr 17 21:29:08 2015
New Revision: 222199

URL: https://gcc.gnu.org/viewcvs?rev=222199&root=gcc&view=rev
Log:
PR go/64683
runtime/pprof: Assume function with no name is in runtime.

GCC PR 65797 causes some of the runtime functions to be
compiled with no name in the debug info.  This in turn causes
the runtime/pprof test to fail as reported in GCC PR 64683.

There are no good choices when a function has no name in the
debug info, but here we assume that if we see such a function
while reading the runtime functions, we assume that it is also
a runtime function.

Modified:
branches/gcc-5-branch/libgo/go/runtime/pprof/pprof.go


[Bug tree-optimization/65797] [5.0 regression] IPA ICF causes function to be emitted with no debug line info

2015-04-17 Thread ian at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65797

--- Comment #2 from ian at gcc dot gnu.org  ---
Author: ian
Date: Fri Apr 17 21:29:20 2015
New Revision: 00

URL: https://gcc.gnu.org/viewcvs?rev=00&root=gcc&view=rev
Log:
PR go/64683
runtime/pprof: Assume function with no name is in runtime.

GCC PR 65797 causes some of the runtime functions to be
compiled with no name in the debug info.  This in turn causes
the runtime/pprof test to fail as reported in GCC PR 64683.

There are no good choices when a function has no name in the
debug info, but here we assume that if we see such a function
while reading the runtime functions, we assume that it is also
a runtime function.

Modified:
trunk/libgo/go/runtime/pprof/pprof.go


  1   2   >