Re: Is this a compiler bug?

2014-09-22 Thread Andrew Pinski
On Sun, Sep 21, 2014 at 7:49 PM, Ed Smith-Rowland 3dw...@verizon.net wrote:
 On 09/21/2014 09:56 PM, Steve Kargl wrote:

 + is a binary operator.  0x3ffe is a hexidecimal-constant according
 to 6.6.4.1 in n1256.pdf.  63 is, of course, a decimal-constant.

 Also, a hex floating point uses p as an exponent for this reason...
 These should just be adding integers.

 i = 0x3ffe+63; /* integral */

 i = 0x3ffp+63; /* floating point */

 Post the PR.
 I did a lot of stuff in this area for C++11 user-defined literals.
 I either caused it of I might be able to help.


6.4.8 is what matters here.  pp-number is defined as:
pp-number e sign
pp-number E sign
pp-number identifier-nondigit

And /3 says:
Preprocessing number tokens lexically include all floating and integer
constant tokens.

And /4 says:
A preprocessing number does not have type or a value; it acquires both
after a successful
conversion (as part of translation phase 7) to a floating constant
token or an integer
constant token.

So we have 0x3ffe+63 as one token (a pp-number) but it is not a
successive token to either a floating point token or an integer
constant token so it is rejected.


Thanks,
Andrew Pinski


 Ed



Re: [gomp4] openacc kernels directive support

2014-09-22 Thread Richard Biener
On Tue, 16 Sep 2014, Tom de Vries wrote:

 On 09-09-14 12:56, Richard Biener wrote:
  On Tue, 9 Sep 2014, Tom de Vries wrote:
  
   On 18-08-14 14:16, Tom de Vries wrote:
On 06-08-14 17:10, Tom de Vries wrote:
 We could insert a pass-group here that only deals with functions that
 have
 the
 kernels directive, and do the auto-par thing in a pass_oacc_kernels
 (which
 should share the majority of the infrastructure with the parloops
 pass):
 ...
 NEXT_PASS (pass_build_ealias);
 INSERT_PASSES_AFTER/WITHIN (passes_oacc_kernels)
NEXT_PASS (pass_ch);
NEXT_PASS (pass_ccp);
NEXT_PASS (pass_lim_aux);
NEXT_PASS (pass_oacc_par);
 POP_INSERT_PASSES ()
 ...
 
 Any comments, ideas or suggestions ?

I've experimented with implementing this on top of gomp-4_0-branch, and
I
ran
into PR46032.

PR46032 is about vectorization failure on a function split off by omp
parallelization. The vectorization fails due to aliasing constraints in
the
split off function, which are not present in the original code.
  
  Heh.  At least the omp-low.c parts from comment #1 should be pushed
  to trunk...
  
 
 Hi Richard,
 
 Right, but the intra_create_variable_infos part does not apply cleanly, and I
 don't know yet how to resolve that.
 
In the gomp-4_0-branch, the code marked by the openacc kernels directive
is
split off during omp_expand. The generated code has the same additional
aliasing
constraints, and in pass_oacc_par the parallelization fails.

The PR46032 contains a tentative patch by Richard Biener, which applies
cleanly
on top of 4.6 (I haven't yet reached a level of understanding of
tree-ssa-structalias.c to be able to resolve the conflict in
intra_create_variable_infos when applying on 4.7). The tentative patch
involves
running ipa-pta, which is also a pass run after the point where we write
out
the
lto stream. I'm not sure whether it makes sense to run the pta-ipa pass
as
part
of the pass_oacc_kernels pass list.
  
  No, that's not even possible I think.
  
 
 OK, thanks for confirming that.
 
I see three ways of continuing from here:
- take the tentative patch and make it work, including running pta-ipa
during
passes_oacc_kernels
- same, but try somehow to manage without running pta-ipa.
- try to postpone splitting of the function until the end of
pass_oacc_par.
  
  I don't understand the last option?  What is the actual issue you run
  into?  You split oacc kernels off and _then_ run autopar on the
  split-off function (and get additional kernels)?
  
 
 Let me try to reiterate the problem in more detail.
 
 We're trying to implement the auto-parallelization part of the oacc kernels
 directive using the existing parloops pass. The source starting point is the
 gomp-4_0-branch.  The gomp-4_0-branch has a dummy implementation of the oacc
 kernels directive, analogous to the oacc parallel directive.
 
 So the current gomp-4_0-branch does the following steps for oacc
 parallel/kernels directives:
 1. pass_lower_omp/scan_omp:
- create record type with rewrite vars (.omp_data_t).
- declare function with arg with type pointer to .omp_data_t.
 2. pass_lower_omp/lower_omp:
- rewrite region in terms of rewrite vars
- add omp_return at end
 3. pass_expand_omp:
- split off the region into a separate function
- replace region with call to GOACC_parallel/GOACC_kernels, with function
  pointer as argument
 
 I wrote an example with a single oacc kernels region containing a simple
 vector addition loop, and tried to make auto-parallelization work.

Ah, so the target OACC directive tells it to vectorize only, not to
parallelize?  And we split off the kernel only because we have to
ship it to the accelerator.

 The first problem I ran into was that the parloops pass failed to analyze the
 dependencies in an vector addition example, due to the fact that the region
 was already split off into a separate function, similar to PR46032.
 
 I looked briefly into the patches set in PR46032, but I realized that even if
 I fix it, the next problem I run into will be that the parloops pass is run
 after the lto stream read/write point. So any changes the parloops pass makes
 at that point are in the accelerator compile flow, in other words we're
 talking about launching an accelerator kernel from the accelerator. While that
 is possible with recent cuda accelerators, I guess in general we should not
 expect that to be possible.

HSA also supports that btw.

 [ I also thought of a fancy scheme where we don't split off a new function,
 but manipulate the body of the already split off function, and emit a c file
 from the accelerator compiler containing the parameters that the host compiler
 should use to 

Re: LTO testsuite - single test execution

2014-09-22 Thread Richard Biener
On Thu, Sep 18, 2014 at 11:17 PM, Martin Liška mli...@suse.cz wrote:
 Hello.

 I would to introduce a new test case for an issue (PR63270). I was looking 
 for *.exp files and I expected that another test located in: 
 ./gcc/testsuite/g++.dg/lto/pr63166_0.ii can be executed with: make check -k 
 RUNTESTFLAGS=lto.exp=pr63166*

inside gcc/ make check-g++ RUNTESTFLAGS=lto.exp=pr63166_0.C
would work for me.  Note that .exp files usually glob by extension and
.ii is surely not handled.

 But without succeed. Another interesting issue is running: 'make check-lto', 
 where I was given:
 make: *** No rule to make target `check-lto'.  Stop.

 Can you please help my with a LTO test integration?

 Thanks,
 Martin


Listing a maintainer for libcilkrts, and GCC's Cilk Plus implementation generally?

2014-09-22 Thread Thomas Schwinge
Hi!

As has been noted before,
http://news.gmane.org/find-root.php?message_id=%3Cyddhabgief1.fsf%40lokon.CeBiTec.Uni-Bielefeld.DE%3E,
GCC's MAINTAINERS file does not list a maintainer for libcilkrts, or
GCC's Cilk Plus implementation generally.  Shouldn't it?  I regularely
consult this file when reporting issues in specific parts of the GCC code
base.


Grüße,
 Thomas


pgpP58O2AB4qz.pgp
Description: PGP signature


Re: Is this a compiler bug?

2014-09-22 Thread David Malcolm
On Sun, 2014-09-21 at 22:15 -0700, Andrew Pinski wrote:
 On Sun, Sep 21, 2014 at 8:08 PM, Steve Kargl
 s...@troutmask.apl.washington.edu wrote:
  On Sun, Sep 21, 2014 at 07:57:45PM -0700, Andrew Pinski wrote:
  On Sun, Sep 21, 2014 at 6:56 PM, Steve Kargl
  s...@troutmask.apl.washington.edu wrote:
   + is a binary operator.  0x3ffe is a hexidecimal-constant according
   to 6.6.4.1 in n1256.pdf.  63 is, of course, a decimal-constant.
 
 
  This is before tokens happen and during lexing of the program.
  e+64 is exponent-part see 6.4.4.2.
 
  6.4.4.2 applies to floating point constant.
  6.4.4.1 is for integer constants.
 
 Nope again, this time from bug 3885:
 Strange as it may seem, the behavior is correct, and mandated by the C
 Standard.  0x00E-0x00A is a single preprocessor token, of type
 pp-number, and it must become a single compiler token, but it can't.
 The gotcha is the `E-' sequence, that makes it seem like the exponent
 notation of floating-point constants.
 
 Looks like this is a common misunderstood part of C.

If people tend to get this wrong, should we issue a warning for it?



Re: Is this a compiler bug?

2014-09-22 Thread Steve Kargl
On Sun, Sep 21, 2014 at 10:15:01PM -0700, Andrew Pinski wrote:
 On Sun, Sep 21, 2014 at 8:08 PM, Steve Kargl
 s...@troutmask.apl.washington.edu wrote:
  On Sun, Sep 21, 2014 at 07:57:45PM -0700, Andrew Pinski wrote:
  On Sun, Sep 21, 2014 at 6:56 PM, Steve Kargl
  s...@troutmask.apl.washington.edu wrote:
   + is a binary operator.  0x3ffe is a hexidecimal-constant according
   to 6.6.4.1 in n1256.pdf.  63 is, of course, a decimal-constant.
 
 
  This is before tokens happen and during lexing of the program.
  e+64 is exponent-part see 6.4.4.2.
 
  6.4.4.2 applies to floating point constant.
  6.4.4.1 is for integer constants.
 
 Nope again, this time from bug 3885:
 Strange as it may seem, the behavior is correct, and mandated by the C
 Standard.  0x00E-0x00A is a single preprocessor token, of type
 pp-number, and it must become a single compiler token, but it can't.
 The gotcha is the `E-' sequence, that makes it seem like the exponent
 notation of floating-point constants.
 
 Looks like this is a common misunderstood part of C.
 

Looks like a defect in the C standard.

-- 
Steve


Re: Is this a compiler bug?

2014-09-22 Thread Jakub Jelinek
On Mon, Sep 22, 2014 at 10:22:59AM -0400, David Malcolm wrote:
 On Sun, 2014-09-21 at 22:15 -0700, Andrew Pinski wrote:
  On Sun, Sep 21, 2014 at 8:08 PM, Steve Kargl
  s...@troutmask.apl.washington.edu wrote:
   On Sun, Sep 21, 2014 at 07:57:45PM -0700, Andrew Pinski wrote:
   On Sun, Sep 21, 2014 at 6:56 PM, Steve Kargl
   s...@troutmask.apl.washington.edu wrote:
+ is a binary operator.  0x3ffe is a hexidecimal-constant according
to 6.6.4.1 in n1256.pdf.  63 is, of course, a decimal-constant.
  
  
   This is before tokens happen and during lexing of the program.
   e+64 is exponent-part see 6.4.4.2.
  
   6.4.4.2 applies to floating point constant.
   6.4.4.1 is for integer constants.
  
  Nope again, this time from bug 3885:
  Strange as it may seem, the behavior is correct, and mandated by the C
  Standard.  0x00E-0x00A is a single preprocessor token, of type
  pp-number, and it must become a single compiler token, but it can't.
  The gotcha is the `E-' sequence, that makes it seem like the exponent
  notation of floating-point constants.
  
  Looks like this is a common misunderstood part of C.
 
 If people tend to get this wrong, should we issue a warning for it?

We already diagnose it, with an error actually, not warning:
error: invalid suffix +63 on integer constant
etc.
Just apparently people are surprised when the compiler diagnoses it.
So perhaps some extra note explaining it (== hint how to fix that).

Jakub


Re: Is this a compiler bug?

2014-09-22 Thread Joseph S. Myers
This aspect of pp-numbers is mentioned in the manual (trouble.texi) 
because of the confusion it causes.

-- 
Joseph S. Myers
jos...@codesourcery.com


Make name+email address cut'n'paste-able (was: Listing a maintainer for libcilkrts, and GCC's Cilk Plus implementation generally?)

2014-09-22 Thread Jan-Benedict Glaw
On Mon, 2014-09-22 16:06:21 +0200, Thomas Schwinge tho...@codesourcery.com 
wrote:
 As has been noted before,
 http://news.gmane.org/find-root.php?message_id=%3Cyddhabgief1.fsf%40lokon.CeBiTec.Uni-Bielefeld.DE%3E,
 GCC's MAINTAINERS file does not list a maintainer for libcilkrts, or
 GCC's Cilk Plus implementation generally.  Shouldn't it?  I regularely
 consult this file when reporting issues in specific parts of the GCC code
 base.

While we're at it...

  I consult that file as well, even quite often for preparing Build
Robot emails. There's another usability enhancement: I'd like to
propose to put all email addresses between '' and '', which would
quite ease cut'n'past-ability.  What's your oppinion on that? Should I
prepare a patch?

MfG, JBG

-- 
  Jan-Benedict Glaw  jbg...@lug-owl.de  +49-172-7608481
Signature of:  The course of history shows that as a government grows, liberty
the second  : decreases.  (Thomas Jefferson)


signature.asc
Description: Digital signature


Re: Implementing OpenACC's Fortran module

2014-09-22 Thread Thomas Schwinge
Hi Tobias!

On Sat, 20 Sep 2014 13:51:58 +0200, Tobias Burnus bur...@net-b.de wrote:
 On 19.09.2014 11:03, Thomas Schwinge wrote:
  Regarding linking the object file produced by Fortran openacc.f90 into 
  libgomp: (with the version that Jim already has internally checked in) 
  I find that libgomp then has undefined references to 
  _gfortran_internal_unpack and _gfortran_internal_pack.
 
 Internal pack and unpack appears when you a (potentially) noncontiguous 
 array is passed as argument to an argument which requires a contiguous 
 argument. Internal pack checks at run time whether the argument is 
 contiguous - and if not it creates a temporary and copies the data to 
 the temporary ('copy in') - internal unpack ensures for all arrays but 
 intent(in) that the data is propagated back to the original one.

Thanks for the explanation.

 I am pretty sure that copy-in will break the OpenACC functions.
 
 One possibility would be to mark the dummy arguments in openacc.f90 as 
 CONTIGUOUS. That way, no internal pack/unpack is called by openacc.f90. 
 (If one has a noncontiguous array, the caller of openacc.f90 will do the 
 copy in/out.)
 
 Thus, you could try to add , contiguous to all procedures which take 
 an assumed-rank array (..) as argument.

That works.  For avoidance of doubt: just tag to the actual
implementation (which is enough to avoid the references to
_gfortran_internal_unpack and _gfortran_internal_pack), or also the
interfaces, as detailed in the following pseudo patch:

 [openacc.f90]

 module openacc_internal
   use openacc_kinds
   implicit none
 
   interface

 subroutine acc_delete_32_h (a, len)
   use iso_c_binding, only: c_int32_t, c_size_t
   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   type(*), dimension(*) :: a
   integer(c_int32_t) len
 end subroutine
   
 subroutine acc_delete_64_h (a, len)
   use iso_c_binding, only: c_int64_t, c_size_t
   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   type(*), dimension(*) :: a
   integer(c_int64_t) len
 end subroutine
   
 subroutine acc_delete_array_h (a)
   use iso_c_binding, only: c_size_t
-  type(*), dimension(..) :: a
+  type(*), dimension(..), contiguous :: a
 end subroutine

   end interface
 
   interface

 subroutine acc_delete_l (a, len) 
 bind(C, name=acc_delete)
   use iso_c_binding, only: c_size_t
   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   type(*), dimension(*) :: a
   integer(c_size_t), value :: len
 end subroutine

   end interface
 end module
 
 module openacc
   use openacc_kinds
   use openacc_internal

   interface acc_delete
 procedure :: acc_delete_32_h
 procedure :: acc_delete_64_h
 procedure :: acc_delete_array_h
   end interface

 end module

 subroutine acc_delete_32_h (a, len)
   use iso_c_binding, only: c_int32_t, c_size_t
   use openacc_internal, only: acc_delete_l
   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   type(*), dimension(*) :: a
   integer(c_int32_t) len
   call acc_delete_l (a, int (len, kind=c_size_t))
 end subroutine
 
 subroutine acc_delete_64_h (a, len)
   use iso_c_binding, only: c_int64_t, c_size_t
   use openacc_internal, only: acc_delete_l
   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   type(*), dimension(*) :: a
   integer(c_int64_t) len
   call acc_delete_l (a, int (len, kind=c_size_t))
 end subroutine
 
 subroutine acc_delete_array_h (a)
   use iso_c_binding, only: c_size_t
   use openacc_internal, only: acc_delete_l
-  type(*), dimension(..) :: a
+  type(*), dimension(..), contiguous :: a
   call acc_delete_l (a, sizeof (a))
 end subroutine

 [openacc_lib.h]

   interface acc_delete
 subroutine acc_delete_32_h (a, len)
   use iso_c_binding, only: c_int32_t
   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   type(*), dimension(*) :: a
   integer(c_int32_t) len
 end subroutine
   
 subroutine acc_delete_64_h (a, len)
   use iso_c_binding, only: c_int64_t
   !GCC$ ATTRIBUTES NO_ARG_CHECK :: a
   type(*), dimension(*) :: a
   integer(c_int64_t) len
 end subroutine
   
 subroutine acc_delete_array_h (a)
-  class(*), dimension(..) :: a
+  class(*), dimension(..), contiguous :: a
 end subroutine
   end interface


Grüße,
 Thomas


pgpYDfNt3QQpL.pgp
Description: PGP signature


Re: [PATCH] gcc parallel make check

2014-09-22 Thread Jason Merrill

On 09/12/2014 08:04 PM, Jakub Jelinek wrote:

I've been worried about the quick cases where
parallelization is not beneficial, like make check-gcc \
RUNTESTFLAGS=dg.exp=pr60123.c or similar, but one doesn't usually pass -jN
in that case.


I have -jN in my $MAKEFLAGS, so I've been running into this with my rgt 
shell function:


rgt ()
{
( cd ~/m/$CANON/gcc/gcc;
make check-c++ ${1:+RUNTESTFLAGS=$*} )
}

If I say 'rgt dg.exp=var-templ1.C' the actual test results are lost in 
the explosion of shell verbosity.  Could we add some '@'s to more of the 
rules, perhaps?


Jason



Re: [PATCH] gcc parallel make check

2014-09-22 Thread Jakub Jelinek
On Mon, Sep 22, 2014 at 11:21:14AM -0400, Jason Merrill wrote:
 On 09/12/2014 08:04 PM, Jakub Jelinek wrote:
 I've been worried about the quick cases where
 parallelization is not beneficial, like make check-gcc \
 RUNTESTFLAGS=dg.exp=pr60123.c or similar, but one doesn't usually pass -jN
 in that case.
 
 I have -jN in my $MAKEFLAGS, so I've been running into this with my rgt
 shell function:
 
 rgt ()
 {
 ( cd ~/m/$CANON/gcc/gcc;
 make check-c++ ${1:+RUNTESTFLAGS=$*} )
 }
 
 If I say 'rgt dg.exp=var-templ1.C' the actual test results are lost in the
 explosion of shell verbosity.  Could we add some '@'s to more of the rules,
 perhaps?

I've been considering that too, but not sure what info people find valuable
and what they don't.

Jakub


Re: Implementing OpenACC's Fortran module

2014-09-22 Thread Tobias Burnus

On 22.09.2014 17:17, Thomas Schwinge wrote:

That works.  For avoidance of doubt: just tag to the actual
implementation (which is enough to avoid the references to
_gfortran_internal_unpack and _gfortran_internal_pack), or also the
interfaces, as detailed in the following pseudo patch:


Well, the standard mandates that those match, thus, I think one should 
do it.


If one passes a noncontiguous array to a CONTIGUOUS dummy argument, the 
caller ensures that the argument is truly packed by creating a temporary 
and packing it, iff it is not contiguous. (If it is known at compile 
time that the array is contiguous, no run-time test is inserted.) The 
idea is to avoid wrong code, if one passes something noncontiguous. 
Hence, the caller has to see the attribute - and if it only sees the 
interface block and not the function itself, it must be in the interface 
block.


In case of OpenACC, the OpenACC semantics require that the argument is 
contiguous. If users gets it wrong, it will be wrong either way: If the 
variable is not packed and when it is packed (and the temporary removed 
after the function call).


Tobias


Re: Implementing OpenACC's Fortran module

2014-09-22 Thread Tobias Burnus

On 22.09.2014 17:31, Tobias Burnus wrote:
In case of OpenACC, the OpenACC semantics require that the argument is 
contiguous. If users gets it wrong, it will be wrong either way: If 
the variable is not packed and when it is packed (and the temporary 
removed after the function call).


Post script: Actually, in some cases, the copy-in/copy-out using a 
temporary will actually work: Namely, if one only needs to transfer the 
memory once, such that the pointer address does not matter (e.g. only 
acc_copyin w/o later copyout or update). Thus, while copy-in/out with a 
temporary is bad, passing the unpacked array is worse as it will also 
use the wrong values in this special case. – That's another argument for 
using CONTIGUOUS also in the INTERFACE block.


Tobias


Re: [PATCH] gcc parallel make check

2014-09-22 Thread Jason Merrill

On 09/22/2014 11:26 AM, Jakub Jelinek wrote:

On Mon, Sep 22, 2014 at 11:21:14AM -0400, Jason Merrill wrote:

If I say 'rgt dg.exp=var-templ1.C' the actual test results are lost in the
explosion of shell verbosity.  Could we add some '@'s to more of the rules,
perhaps?


I've been considering that too, but not sure what info people find valuable
and what they don't.


I don't see much information in the ~128 repetitions of the 
check-parallel rules with different numbers; the actual runtest command 
is the same in all of them.  Adding @ to all of the commands of the 
check-parallel-% rule makes things much better for me:


diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 6f251a5..be4c840 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -3674,10 +3674,10 @@ $(lang_checks_parallelized): check-% : site.exp
 	fi
 
 check-parallel-% : site.exp
-	-test -d plugin || mkdir plugin
-	-test -d $(TESTSUITEDIR) || mkdir $(TESTSUITEDIR)
-	test -d $(TESTSUITEDIR)/$(check_p_subdir) || mkdir $(TESTSUITEDIR)/$(check_p_subdir)
-	-(rootme=`${PWD_COMMAND}`; export rootme; \
+	-@test -d plugin || mkdir plugin
+	-@test -d $(TESTSUITEDIR) || mkdir $(TESTSUITEDIR)
+	@test -d $(TESTSUITEDIR)/$(check_p_subdir) || mkdir $(TESTSUITEDIR)/$(check_p_subdir)
+	-@(rootme=`${PWD_COMMAND}`; export rootme; \
 	srcdir=`cd ${srcdir}; ${PWD_COMMAND}` ; export srcdir ; \
 	if [ -n $(check_p_subno) ] \
 	[ -n $$GCC_RUNTEST_PARALLELIZE_DIR ] \


Re: [PATCH] gcc parallel make check

2014-09-22 Thread Segher Boessenkool
On Mon, Sep 22, 2014 at 05:26:04PM +0200, Jakub Jelinek wrote:
 I've been considering that too, but not sure what info people find valuable
 and what they don't.

The ten million Running blablablalba.exp ... messages on a very parallel
run aren't helpful in my opinion.  There might be more but that drowns out
everything else :-)


Segher


Inserting global variable daclaration

2014-09-22 Thread Andres Tiraboschi
Hi, I was trying to insert a global variable declaration using gcc plugins.
I tried to make simple plugin example that inserts a global int variable called
_fake_var_.
The plugin code is this:

 plugin.cpp --

int plugin_is_GPL_compatible;
static tree fake_var = NULL;

static void start_unit_callback (void *gcc_data, void *user_data)
{
printf(\n--Start Unit--\n);
  fake_var = build_decl (UNKNOWN_LOCATION, VAR_DECL,
 get_identifier (_fake_var_),
 integer_type_node);
  TREE_PUBLIC (fake_var) = 1;
  DECL_ARTIFICIAL (fake_var) = 1;
  TREE_USED(fake_var) = 1;
}

int plugin_init (struct plugin_name_args *plugin_info,
 struct plugin_gcc_version *version)
{
  register_callback (start_unit, PLUGIN_START_UNIT,
start_unit_callback, NULL);
  return 0;
}
--
Then i compiled the next code(test.c) using that plugin:

 test.c --

int main(void) {
_fake_var_=2;
return 0;
}
---

But i get this message:
error: ‘_fake_var_’ was not declared in this scope _fake_var_=2;

The question is that if I'm missing something here and if there is
something wrong, because i didn't find further documentation about how
to do this.

Andrés.


Re: [PATCH] gcc parallel make check

2014-09-22 Thread Jakub Jelinek
On Mon, Sep 22, 2014 at 10:44:06AM -0500, Segher Boessenkool wrote:
 On Mon, Sep 22, 2014 at 05:26:04PM +0200, Jakub Jelinek wrote:
  I've been considering that too, but not sure what info people find valuable
  and what they don't.
 
 The ten million Running blablablalba.exp ... messages on a very parallel
 run aren't helpful in my opinion.  There might be more but that drowns out
 everything else :-)

It has some value, it shows the actual progress.  Sure, you can just watch
the *.log files as they are populated and get better picture.  I think the
Running *.exp messages go from dejagnu, not from gcc testsuite changes.

Jakub


-Wstack-usage and alloca in loops

2014-09-22 Thread Dmitry Antipov

For the following translation unit:

#include stdlib.h

int
foo (unsigned n)
{
  int *p;

  if (n  1024)
p = alloca (n * sizeof (int));
  else
p = malloc (n * sizeof (int));

  return g (p, n);
}

int
bar (unsigned n)
{
  int x, i, *p;

  for (x = 0, i = 0; i  n; i++)
{
  if (n  1024)
p = alloca (n * sizeof (int));
  else
p = malloc (n * sizeof (int));

  x += h (p, n);

  if (n = 1024)
free (p);
}

  return x;
}

compiling with -Wstack-usage=32 produces (as of 4.9.1):

test.c: In function 'foo':
test.c:14:1: warning: stack usage might be unbounded [-Wstack-usage=]
 }
 ^
test.c: In function 'bar':
test.c:35:1: warning: stack usage might be unbounded [-Wstack-usage=]
 }
 ^

1) I'm just curious why it's unbounded for foo().  It shouldn't be too
hard to find that alloca() is never requested to allocate more than
1024 * sizeof (int), and never called more than once, isn't it?

2) In bar(), stack usage is unbounded unless bar() is always inline with
a compile-time constant argument N.

IIUC good detection of 2) is much harder to implement, but is it
reasonable/possible to make -Wstack-usage more accurate in 1)?

Dmitry


Re: [PATCH] gcc parallel make check

2014-09-22 Thread Jakub Jelinek
On Mon, Sep 22, 2014 at 11:43:35AM -0400, Jason Merrill wrote:
 On 09/22/2014 11:26 AM, Jakub Jelinek wrote:
 On Mon, Sep 22, 2014 at 11:21:14AM -0400, Jason Merrill wrote:
 If I say 'rgt dg.exp=var-templ1.C' the actual test results are lost in the
 explosion of shell verbosity.  Could we add some '@'s to more of the rules,
 perhaps?
 
 I've been considering that too, but not sure what info people find valuable
 and what they don't.
 
 I don't see much information in the ~128 repetitions of the check-parallel
 rules with different numbers; the actual runtest command is the same in all
 of them.  Adding @ to all of the commands of the check-parallel-% rule makes
 things much better for me:

LGTM (though, supposedly we want similar change in
libstdc++-v3/testsuite/Makefile.am).
Or, if people would really like to see the commands, we could print them
just once, using e.g.
-$(if $(check_p_subno),@)(rootme= ...
(then e.g. check-parallel-gcc goal would print the command, but
check-parallel-gcc-1 or check-parallel-gcc-112 would not).

 --- a/gcc/Makefile.in
 +++ b/gcc/Makefile.in
 @@ -3674,10 +3674,10 @@ $(lang_checks_parallelized): check-% : site.exp
   fi
  
  check-parallel-% : site.exp
 - -test -d plugin || mkdir plugin
 - -test -d $(TESTSUITEDIR) || mkdir $(TESTSUITEDIR)
 - test -d $(TESTSUITEDIR)/$(check_p_subdir) || mkdir 
 $(TESTSUITEDIR)/$(check_p_subdir)
 - -(rootme=`${PWD_COMMAND}`; export rootme; \
 + -@test -d plugin || mkdir plugin
 + -@test -d $(TESTSUITEDIR) || mkdir $(TESTSUITEDIR)
 + @test -d $(TESTSUITEDIR)/$(check_p_subdir) || mkdir 
 $(TESTSUITEDIR)/$(check_p_subdir)
 + -@(rootme=`${PWD_COMMAND}`; export rootme; \
   srcdir=`cd ${srcdir}; ${PWD_COMMAND}` ; export srcdir ; \
   if [ -n $(check_p_subno) ] \
   [ -n $$GCC_RUNTEST_PARALLELIZE_DIR ] \


Jakub


Re: [PATCH] gcc parallel make check

2014-09-22 Thread Segher Boessenkool
On Mon, Sep 22, 2014 at 05:49:12PM +0200, Jakub Jelinek wrote:
 On Mon, Sep 22, 2014 at 10:44:06AM -0500, Segher Boessenkool wrote:
  On Mon, Sep 22, 2014 at 05:26:04PM +0200, Jakub Jelinek wrote:
   I've been considering that too, but not sure what info people find 
   valuable
   and what they don't.
  
  The ten million Running blablablalba.exp ... messages on a very parallel
  run aren't helpful in my opinion.  There might be more but that drowns out
  everything else :-)
 
 It has some value, it shows the actual progress.  Sure, you can just watch
 the *.log files as they are populated and get better picture.  I think the
 Running *.exp messages go from dejagnu, not from gcc testsuite changes.

Hrm.  Looking at the log files it seems there are not more of those messages
at all since the changes.  Maybe it just all got too fast! :-)


Segher


Re: [PATCH] gcc parallel make check

2014-09-22 Thread Jason Merrill

On 09/22/2014 11:58 AM, Jakub Jelinek wrote:

LGTM (though, supposedly we want similar change in
libstdc++-v3/testsuite/Makefile.am).
Or, if people would really like to see the commands, we could print them
just once, using e.g.
-$(if $(check_p_subno),@)(rootme= ...
(then e.g. check-parallel-gcc goal would print the command, but
check-parallel-gcc-1 or check-parallel-gcc-112 would not).


So, like this?



commit c750897381a3f936e27cabd825cfa85ce936a6a9
Author: Jason Merrill ja...@redhat.com
Date:   Mon Sep 22 11:44:00 2014 -0400

gcc/
	* Makefile.in (check-parallel-%): Add @.
libstdc++-v3/
	* testsuite/Makefile.am (%/site.exp): Add @.
	(check-DEJAGNU): Likewise.
	* testsuite/Makefile.in: Regenerate.

diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 6f251a5..97b439a 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -3674,10 +3674,10 @@ $(lang_checks_parallelized): check-% : site.exp
 	fi
 
 check-parallel-% : site.exp
-	-test -d plugin || mkdir plugin
-	-test -d $(TESTSUITEDIR) || mkdir $(TESTSUITEDIR)
-	test -d $(TESTSUITEDIR)/$(check_p_subdir) || mkdir $(TESTSUITEDIR)/$(check_p_subdir)
-	-(rootme=`${PWD_COMMAND}`; export rootme; \
+	-@test -d plugin || mkdir plugin
+	-@test -d $(TESTSUITEDIR) || mkdir $(TESTSUITEDIR)
+	@test -d $(TESTSUITEDIR)/$(check_p_subdir) || mkdir $(TESTSUITEDIR)/$(check_p_subdir)
+	-$(if $(check_p_subno),@)(rootme=`${PWD_COMMAND}`; export rootme; \
 	srcdir=`cd ${srcdir}; ${PWD_COMMAND}` ; export srcdir ; \
 	if [ -n $(check_p_subno) ] \
 	[ -n $$GCC_RUNTEST_PARALLELIZE_DIR ] \
diff --git a/libstdc++-v3/testsuite/Makefile.am b/libstdc++-v3/testsuite/Makefile.am
index e206aba..b4c9e85 100644
--- a/libstdc++-v3/testsuite/Makefile.am
+++ b/libstdc++-v3/testsuite/Makefile.am
@@ -91,9 +91,9 @@ new-abi-baseline:
 	  ${extract_symvers} ../src/.libs/libstdc++.so $${output})
 
 %/site.exp: site.exp
-	-test -d $* || mkdir $*
+	-@test -d $* || mkdir $*
 	@srcdir=`cd $(srcdir); ${PWD_COMMAND}`;
-	objdir=`${PWD_COMMAND}`/$*; \
+	@objdir=`${PWD_COMMAND}`/$*; \
 	sed -e s|^set srcdir .*$$|set srcdir $$srcdir| \
 	-e s|^set objdir .*$$|set objdir $$objdir| \
 	site.exp  $*/site.exp.tmp
@@ -115,7 +115,7 @@ $(check_DEJAGNU_normal_targets): check-DEJAGNUnormal%: normal%/site.exp
 
 # Run the testsuite in normal mode.
 check-DEJAGNU $(check_DEJAGNU_normal_targets): check-DEJAGNU%: site.exp
-	AR=$(AR); export AR; \
+	$(if $*,@)AR=$(AR); export AR; \
 	RANLIB=$(RANLIB); export RANLIB; \
 	if [ -z $* ]  [ $(filter -j, $(MFLAGS)) = -j ]; then \
 	  rm -rf normal-parallel || true; \
diff --git a/libstdc++-v3/testsuite/Makefile.in b/libstdc++-v3/testsuite/Makefile.in
index 59060b8..0fc26f4 100644
--- a/libstdc++-v3/testsuite/Makefile.in
+++ b/libstdc++-v3/testsuite/Makefile.in
@@ -553,9 +553,9 @@ new-abi-baseline:
 	  ${extract_symvers} ../src/.libs/libstdc++.so $${output})
 
 %/site.exp: site.exp
-	-test -d $* || mkdir $*
+	-@test -d $* || mkdir $*
 	@srcdir=`cd $(srcdir); ${PWD_COMMAND}`;
-	objdir=`${PWD_COMMAND}`/$*; \
+	@objdir=`${PWD_COMMAND}`/$*; \
 	sed -e s|^set srcdir .*$$|set srcdir $$srcdir| \
 	-e s|^set objdir .*$$|set objdir $$objdir| \
 	site.exp  $*/site.exp.tmp
@@ -566,7 +566,7 @@ $(check_DEJAGNU_normal_targets): check-DEJAGNUnormal%: normal%/site.exp
 
 # Run the testsuite in normal mode.
 check-DEJAGNU $(check_DEJAGNU_normal_targets): check-DEJAGNU%: site.exp
-	AR=$(AR); export AR; \
+	$(if $*,@)AR=$(AR); export AR; \
 	RANLIB=$(RANLIB); export RANLIB; \
 	if [ -z $* ]  [ $(filter -j, $(MFLAGS)) = -j ]; then \
 	  rm -rf normal-parallel || true; \


Re: [PATCH] gcc parallel make check

2014-09-22 Thread Jakub Jelinek
On Mon, Sep 22, 2014 at 12:21:08PM -0400, Jason Merrill wrote:
 On 09/22/2014 11:58 AM, Jakub Jelinek wrote:
 LGTM (though, supposedly we want similar change in
 libstdc++-v3/testsuite/Makefile.am).
 Or, if people would really like to see the commands, we could print them
 just once, using e.g.
  -$(if $(check_p_subno),@)(rootme= ...
 (then e.g. check-parallel-gcc goal would print the command, but
 check-parallel-gcc-1 or check-parallel-gcc-112 would not).
 
 So, like this?

Ok, thanks.

 commit c750897381a3f936e27cabd825cfa85ce936a6a9
 Author: Jason Merrill ja...@redhat.com
 Date:   Mon Sep 22 11:44:00 2014 -0400
 
 gcc/
   * Makefile.in (check-parallel-%): Add @.
 libstdc++-v3/
   * testsuite/Makefile.am (%/site.exp): Add @.
   (check-DEJAGNU): Likewise.
   * testsuite/Makefile.in: Regenerate.
 
 diff --git a/gcc/Makefile.in b/gcc/Makefile.in
 index 6f251a5..97b439a 100644
 --- a/gcc/Makefile.in
 +++ b/gcc/Makefile.in
 @@ -3674,10 +3674,10 @@ $(lang_checks_parallelized): check-% : site.exp
   fi
  
  check-parallel-% : site.exp
 - -test -d plugin || mkdir plugin
 - -test -d $(TESTSUITEDIR) || mkdir $(TESTSUITEDIR)
 - test -d $(TESTSUITEDIR)/$(check_p_subdir) || mkdir 
 $(TESTSUITEDIR)/$(check_p_subdir)
 - -(rootme=`${PWD_COMMAND}`; export rootme; \
 + -@test -d plugin || mkdir plugin
 + -@test -d $(TESTSUITEDIR) || mkdir $(TESTSUITEDIR)
 + @test -d $(TESTSUITEDIR)/$(check_p_subdir) || mkdir 
 $(TESTSUITEDIR)/$(check_p_subdir)
 + -$(if $(check_p_subno),@)(rootme=`${PWD_COMMAND}`; export rootme; \
   srcdir=`cd ${srcdir}; ${PWD_COMMAND}` ; export srcdir ; \
   if [ -n $(check_p_subno) ] \
   [ -n $$GCC_RUNTEST_PARALLELIZE_DIR ] \
 diff --git a/libstdc++-v3/testsuite/Makefile.am 
 b/libstdc++-v3/testsuite/Makefile.am
 index e206aba..b4c9e85 100644
 --- a/libstdc++-v3/testsuite/Makefile.am
 +++ b/libstdc++-v3/testsuite/Makefile.am
 @@ -91,9 +91,9 @@ new-abi-baseline:
 ${extract_symvers} ../src/.libs/libstdc++.so $${output})
  
  %/site.exp: site.exp
 - -test -d $* || mkdir $*
 + -@test -d $* || mkdir $*
   @srcdir=`cd $(srcdir); ${PWD_COMMAND}`;
 - objdir=`${PWD_COMMAND}`/$*; \
 + @objdir=`${PWD_COMMAND}`/$*; \
   sed -e s|^set srcdir .*$$|set srcdir $$srcdir| \
   -e s|^set objdir .*$$|set objdir $$objdir| \
   site.exp  $*/site.exp.tmp
 @@ -115,7 +115,7 @@ $(check_DEJAGNU_normal_targets): check-DEJAGNUnormal%: 
 normal%/site.exp
  
  # Run the testsuite in normal mode.
  check-DEJAGNU $(check_DEJAGNU_normal_targets): check-DEJAGNU%: site.exp
 - AR=$(AR); export AR; \
 + $(if $*,@)AR=$(AR); export AR; \
   RANLIB=$(RANLIB); export RANLIB; \
   if [ -z $* ]  [ $(filter -j, $(MFLAGS)) = -j ]; then \
 rm -rf normal-parallel || true; \
 diff --git a/libstdc++-v3/testsuite/Makefile.in 
 b/libstdc++-v3/testsuite/Makefile.in
 index 59060b8..0fc26f4 100644
 --- a/libstdc++-v3/testsuite/Makefile.in
 +++ b/libstdc++-v3/testsuite/Makefile.in
 @@ -553,9 +553,9 @@ new-abi-baseline:
 ${extract_symvers} ../src/.libs/libstdc++.so $${output})
  
  %/site.exp: site.exp
 - -test -d $* || mkdir $*
 + -@test -d $* || mkdir $*
   @srcdir=`cd $(srcdir); ${PWD_COMMAND}`;
 - objdir=`${PWD_COMMAND}`/$*; \
 + @objdir=`${PWD_COMMAND}`/$*; \
   sed -e s|^set srcdir .*$$|set srcdir $$srcdir| \
   -e s|^set objdir .*$$|set objdir $$objdir| \
   site.exp  $*/site.exp.tmp
 @@ -566,7 +566,7 @@ $(check_DEJAGNU_normal_targets): check-DEJAGNUnormal%: 
 normal%/site.exp
  
  # Run the testsuite in normal mode.
  check-DEJAGNU $(check_DEJAGNU_normal_targets): check-DEJAGNU%: site.exp
 - AR=$(AR); export AR; \
 + $(if $*,@)AR=$(AR); export AR; \
   RANLIB=$(RANLIB); export RANLIB; \
   if [ -z $* ]  [ $(filter -j, $(MFLAGS)) = -j ]; then \
 rm -rf normal-parallel || true; \


Jakub


Re: Make name+email address cut'n'paste-able

2014-09-22 Thread Jeff Law

On 09/22/14 08:35, Jan-Benedict Glaw wrote:

On Mon, 2014-09-22 16:06:21 +0200, Thomas Schwinge tho...@codesourcery.com 
wrote:

As has been noted before,
http://news.gmane.org/find-root.php?message_id=%3Cyddhabgief1.fsf%40lokon.CeBiTec.Uni-Bielefeld.DE%3E,
GCC's MAINTAINERS file does not list a maintainer for libcilkrts, or
GCC's Cilk Plus implementation generally.  Shouldn't it?  I regularely
consult this file when reporting issues in specific parts of the GCC code
base.


While we're at it...

   I consult that file as well, even quite often for preparing Build
Robot emails. There's another usability enhancement: I'd like to
propose to put all email addresses between '' and '', which would
quite ease cut'n'past-ability.  What's your oppinion on that? Should I
prepare a patch?

Sure.
Jeff



Re: Is this a compiler bug?

2014-09-22 Thread David Malcolm
On Mon, 2014-09-22 at 16:32 +0200, Jakub Jelinek wrote:
 On Mon, Sep 22, 2014 at 10:22:59AM -0400, David Malcolm wrote:
  On Sun, 2014-09-21 at 22:15 -0700, Andrew Pinski wrote:
   On Sun, Sep 21, 2014 at 8:08 PM, Steve Kargl
   s...@troutmask.apl.washington.edu wrote:
On Sun, Sep 21, 2014 at 07:57:45PM -0700, Andrew Pinski wrote:
On Sun, Sep 21, 2014 at 6:56 PM, Steve Kargl
s...@troutmask.apl.washington.edu wrote:
 + is a binary operator.  0x3ffe is a hexidecimal-constant according
 to 6.6.4.1 in n1256.pdf.  63 is, of course, a decimal-constant.
   
   
This is before tokens happen and during lexing of the program.
e+64 is exponent-part see 6.4.4.2.
   
6.4.4.2 applies to floating point constant.
6.4.4.1 is for integer constants.
   
   Nope again, this time from bug 3885:
   Strange as it may seem, the behavior is correct, and mandated by the C
   Standard.  0x00E-0x00A is a single preprocessor token, of type
   pp-number, and it must become a single compiler token, but it can't.
   The gotcha is the `E-' sequence, that makes it seem like the exponent
   notation of floating-point constants.
   
   Looks like this is a common misunderstood part of C.
  
  If people tend to get this wrong, should we issue a warning for it?
 
 We already diagnose it, with an error actually, not warning:
 error: invalid suffix +63 on integer constant
 etc.
 Just apparently people are surprised when the compiler diagnoses it.
 So perhaps some extra note explaining it (== hint how to fix that).

I've filed PR63337 with some ideas on how the error message could be
improved for this case.




Re: Listing a maintainer for libcilkrts, and GCC's Cilk Plus implementation generally?

2014-09-22 Thread Jeff Law

On 09/22/14 08:06, Thomas Schwinge wrote:

Hi!

As has been noted before,
http://news.gmane.org/find-root.php?message_id=%3Cyddhabgief1.fsf%40lokon.CeBiTec.Uni-Bielefeld.DE%3E,
GCC's MAINTAINERS file does not list a maintainer for libcilkrts, or
GCC's Cilk Plus implementation generally.  Shouldn't it?  I regularely
consult this file when reporting issues in specific parts of the GCC code
base.
The original plan was for Balaji to take on this role; however, his 
assignment within Intel has changed and thus he's not going to have time 
to work on Cilk+ anymore.


Igor Zamyatin has been doing a fair amount of Cilk+ 
maintenance/bugfixing and it might make sense for him to own it in the 
long term if he's interested.


jeff


Re: -Wstack-usage and alloca in loops

2014-09-22 Thread Jeff Law

On 09/22/14 09:56, Dmitry Antipov wrote:

For the following translation unit:

#include stdlib.h

int
foo (unsigned n)
{
   int *p;

   if (n  1024)
 p = alloca (n * sizeof (int));
   else
 p = malloc (n * sizeof (int));

   return g (p, n);
}

int
bar (unsigned n)
{
   int x, i, *p;

   for (x = 0, i = 0; i  n; i++)
 {
   if (n  1024)
 p = alloca (n * sizeof (int));
   else
 p = malloc (n * sizeof (int));

   x += h (p, n);

   if (n = 1024)
 free (p);
 }

   return x;
}

compiling with -Wstack-usage=32 produces (as of 4.9.1):

test.c: In function 'foo':
test.c:14:1: warning: stack usage might be unbounded [-Wstack-usage=]
  }
  ^
test.c: In function 'bar':
test.c:35:1: warning: stack usage might be unbounded [-Wstack-usage=]
  }
  ^

1) I'm just curious why it's unbounded for foo().  It shouldn't be too
hard to find that alloca() is never requested to allocate more than
1024 * sizeof (int), and never called more than once, isn't it?

2) In bar(), stack usage is unbounded unless bar() is always inline with
a compile-time constant argument N.

IIUC good detection of 2) is much harder to implement, but is it
reasonable/possible to make -Wstack-usage more accurate in 1)?
The implementation of -Wstack-usage is a bit lame in that it does not do 
any flow analysis or tie into the range information computed by VRP.


In  the first example it sees an dynamic alloca and considers the 
allocation potentially unbounded -- even though range information would 
indicate that n  1024 and thus the total allocation is  1024 * sizeof 
(int).


Moving the stack usage computation into its own analysis phase which has 
access to VRP bounds and such would be a a significant improvement and 
one which I think would be quite useful.


Jeff


Re: -Wstack-usage and alloca in loops

2014-09-22 Thread Eric Botcazou
 The implementation of -Wstack-usage is a bit lame in that it does not do
 any flow analysis or tie into the range information computed by VRP.

Right, that was by design in order to be conservatively correct.  May I remind 
you of where we came from with -Wframe-larger-than? :-)

 Moving the stack usage computation into its own analysis phase which has
 access to VRP bounds and such would be a a significant improvement and
 one which I think would be quite useful.

Yes, provided the outcome is still guaranteed to be conservatively correct.

-- 
Eric Botcazou


[Bug rtl-optimization/63325] [5.0 regression] ICE fold check: original tree changed by fold

2014-09-22 Thread dimhen at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63325

Dmitry G. Dyachenko dimhen at gmail dot com changed:

   What|Removed |Added

 CC||hubicka at gcc dot gnu.org

--- Comment #1 from Dmitry G. Dyachenko dimhen at gmail dot com ---
start FAIL r215409


[Bug c/63326] New: pragma GCC causes wrong code generation

2014-09-22 Thread dietmar.schind...@manroland-web.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63326

Bug ID: 63326
   Summary: pragma GCC causes wrong code generation
   Product: gcc
   Version: 4.9.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: dietmar.schind...@manroland-web.com

Created attachment 33530
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33530action=edit
preprocessed file

The following command generates wrong code, returning 1 instead of 0 (as if the
pragma line ended the statement in which it is placed).

raeksrv1:~/bin/so/c /tmp/usr/local/bin/gcc -v -save-temps bug.c -o bug 
Using built-in specs.
COLLECT_GCC=/tmp/usr/local/bin/gcc
COLLECT_LTO_WRAPPER=/tmp/usr/local/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.9.1/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.9.1/configure --enable-plugin --disable-libsanitizer
: (reconfigured) ../gcc-4.9.1/configure --enable-plugin --enable-languages=c
--disable-libsanitizer : (reconfigured) ../gcc-4.9.1/configure --enable-plugin
--enable-languages=c --disable-libsanitizer --disable-libcilkrts
Thread model: posix
gcc version 4.9.1 (GCC) 
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-o' 'bug' '-mtune=generic'
'-march=x86-64'
 /tmp/usr/local/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.9.1/cc1 -E -quiet
-v -iprefix /tmp/usr/local/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.9.1/ bug.c
-mtune=generic -march=x86-64 -fpch-preprocess -o bug.i
ignoring nonexistent directory
/tmp/usr/local/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../x86_64-unknown-linux-gnu/include
ignoring duplicate directory
/tmp/usr/local/bin/../lib/gcc/../../lib/gcc/x86_64-unknown-linux-gnu/4.9.1/include
ignoring duplicate directory
/tmp/usr/local/bin/../lib/gcc/../../lib/gcc/x86_64-unknown-linux-gnu/4.9.1/include-fixed
ignoring nonexistent directory
/tmp/usr/local/bin/../lib/gcc/../../lib/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../x86_64-unknown-linux-gnu/include
#include ... search starts here:
#include ... search starts here:
 /tmp/usr/local/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.9.1/include
 /tmp/usr/local/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.9.1/include-fixed
 /usr/local/include
 /usr/include
End of search list.
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-o' 'bug' '-mtune=generic'
'-march=x86-64'
 /tmp/usr/local/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.9.1/cc1
-fpreprocessed bug.i -quiet -dumpbase bug.c -mtune=generic -march=x86-64
-auxbase bug -version -o bug.s
GNU C (GCC) version 4.9.1 (x86_64-unknown-linux-gnu)
compiled by GNU C version 4.9.1, GMP version 4.3.2, MPFR version 2.4.2,
MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU C (GCC) version 4.9.1 (x86_64-unknown-linux-gnu)
compiled by GNU C version 4.9.1, GMP version 4.3.2, MPFR version 2.4.2,
MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: aa505e323dbffe0cb500ba62f983d917
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-o' 'bug' '-mtune=generic'
'-march=x86-64'
 as -v --64 -o bug.o bug.s
GNU assembler version 2.20.1 (i486-linux-gnu) using BFD version (GNU Binutils
for Debian) 2.20.1-system.20100303
COMPILER_PATH=/tmp/usr/local/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.9.1/:/tmp/usr/local/bin/../libexec/gcc/
LIBRARY_PATH=/tmp/usr/local/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.9.1/:/tmp/usr/local/bin/../lib/gcc/:/tmp/usr/local/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/tmp/usr/local/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-o' 'bug' '-mtune=generic'
'-march=x86-64'
 /tmp/usr/local/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.9.1/collect2
--eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o bug
/usr/lib/../lib64/crt1.o /usr/lib/../lib64/crti.o
/tmp/usr/local/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.9.1/crtbegin.o
-L/tmp/usr/local/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.9.1
-L/tmp/usr/local/bin/../lib/gcc
-L/tmp/usr/local/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../lib64
-L/lib/../lib64 -L/usr/lib/../lib64
-L/tmp/usr/local/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.9.1/../../.. bug.o
-lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s
--no-as-needed
/tmp/usr/local/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.9.1/crtend.o
/usr/lib/../lib64/crtn.o


[Bug c/63326] pragma GCC causes wrong code generation

2014-09-22 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63326

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org ---
#pragma are considered statements.


[Bug debug/63300] 'const volatile' sometimes stripped in debug info

2014-09-22 Thread mark at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63300

Mark Wielaard mark at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #3 from Mark Wielaard mark at gcc dot gnu.org ---
Proposed fix: https://gcc.gnu.org/ml/gcc-patches/2014-09/msg01723.html


[Bug fortran/44882] Bogus types in references with mismatched commons

2014-09-22 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44882

--- Comment #15 from rguenther at suse dot de rguenther at suse dot de ---
On Fri, 19 Sep 2014, dominiq at lps dot ens.fr wrote:

 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44882
 
 Dominique d'Humieres dominiq at lps dot ens.fr changed:
 
What|Removed |Added
 
  Status|NEW |WAITING
 
 --- Comment #14 from Dominique d'Humieres dominiq at lps dot ens.fr ---
 I dont see any ICE for the test in comment 12 on powerpc-apple-darwin9 (from
 4.4.7 to r214282). Any reason why this PR is still open?

See comment #5/6, the Fortran frontend still produces wrong-code or
silently accepts invalid input.


[Bug c/63303] Pointer subtraction is broken when using -fsanitize=undefined

2014-09-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63303

--- Comment #10 from Richard Biener rguenth at gcc dot gnu.org ---
To support the standards definition of p1 - p2 we'd need a POINTER_DIFF_EXPR
that also embeds the exact division by the array element size.

Btw, while C and C++ share pointer_int_sum they have differing implementations
for computing pointer differences.

The safe variant would be indeed to compute the pointer difference using an
unsigned type and I can't see what optimizations we lose when doing that.
Note that you'd still need to convert the result to a signed type before
doing the exact division by the element size.


[Bug fortran/63327] New: Poor caret location in error mesage

2014-09-22 Thread Joost.VandeVondele at mat dot ethz.ch
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63327

Bug ID: 63327
   Summary: Poor caret location in error mesage
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: Joost.VandeVondele at mat dot ethz.ch

Example code showing somewhat confusing lines and caret info

 cat test.f90
  SUBROUTINE S1(d)
INTEGER :: i,d(*)
!$OMP PARALLEL DO 
!$OMP   DEFAULT(NONE) SHARED(d) PRIVATE(i)
DO i=1,100
   c= c + 
  d(i)
   d(i)=c*c
ENDDO
  END SUBROUTINE S1

 gfortran -fopenmp test.f90
test.f90: In function ‘s1’:
test.f90:7:0: error: ‘c’ not specified in enclosing parallel
   d(i)
 ^
test.f90:4:0: error: enclosing parallel
 !$OMP   DEFAULT(NONE) SHARED(d) PRIVATE(i)
 ^

[Bug sanitizer/63316] [5.0 Regression] False asan positive

2014-09-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63316

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org ---
MALLOC_ABI_ALIGNMENT is BITS_PER_WORD (too small for Linux actually, glibc
guarantees 2 * BITS_PER_WORD).
So, this IMNSHO is a libsanitizer bug, in that it doesn't provide the Linux ABI
guaranteed alignments.  On 32-bit Linux targets, malloc even for 1-7 bytes (and
0 if it doesn't return NULL for that) allocations should return 8 byte aligned
memory, and for 64-bit Linux targets, malloc even for 1-15 bytes long
allocations should return 16 byte aligned memory.
Kostya, can you please fix sanitizer_common?


[Bug c++/63323] confused by earlier errors, bailing out with no other errors

2014-09-22 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63323

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-09-22
  Known to work||5.0
 Ever confirmed|0   |1
  Known to fail||4.9.0, 4.9.1

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org ---
Confirmed. Trunk prints the full error though.


[Bug c++/63323] confused by earlier errors, bailing out with no other errors

2014-09-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63323

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org,
   ||mpolacek at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org ---
This is a dup of PR61272 , Marek, can you please apply your PR61272 patch to
4.9 branch too?  Thanks.


[Bug c++/63323] confused by earlier errors, bailing out with no other errors

2014-09-22 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63323

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
   Target Milestone|--- |4.9.2

--- Comment #3 from Marek Polacek mpolacek at gcc dot gnu.org ---
On it.


[Bug debug/55641] debug info for the type of a reference declared with a typedef has spurious 'const'

2014-09-22 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55641

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 CC||mpolacek at gcc dot gnu.org

--- Comment #10 from Marek Polacek mpolacek at gcc dot gnu.org ---
Mark recently tweaked this code, but I still see the DW_TAG_const_type in
there.


[Bug debug/60782] DWARF does not represent _Atomic

2014-09-22 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60782

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

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

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


[Bug ipa/63270] [5 Regression] internal compiler error: in odr_types_equivalent_p, at ipa-devirt.c:1075

2014-09-22 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63270

--- Comment #5 from marxin at gcc dot gnu.org ---
Author: marxin
Date: Mon Sep 22 09:39:20 2014
New Revision: 215451

URL: https://gcc.gnu.org/viewcvs?rev=215451root=gccview=rev
Log:
PR lto/63270 - new test

* g++.dg/lto/pr63270_0.C: New test.
* g++.dg/lto/pr63270_1.C: New test.


Added:
trunk/gcc/testsuite/g++.dg/lto/pr63270_0.C
trunk/gcc/testsuite/g++.dg/lto/pr63270_1.C
Modified:
trunk/gcc/testsuite/ChangeLog


[Bug fortran/63327] Poor caret location in error mesage

2014-09-22 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63327

Dominique d'Humieres dominiq at lps dot ens.fr changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-09-22
 Ever confirmed|0   |1

--- Comment #1 from Dominique d'Humieres dominiq at lps dot ens.fr ---
Confirmed from 4.8.3 up to trunk (5.0). The errors are displayed without caret
with gfortran 4.7.4.


[Bug ipa/63298] [5 Regression] internal compiler error: in types_same_for_odr, at ipa-devirt.c:449 with LTO

2014-09-22 Thread mliska at suse dot cz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63298

Martin Liška mliska at suse dot cz changed:

   What|Removed |Added

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

--- Comment #5 from Martin Liška mliska at suse dot cz ---
Fixed.

[Bug debug/63328] New: c-c++-common/gomp/pr60823-3.c test fails with -fcompare-debug

2014-09-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63328

Bug ID: 63328
   Summary: c-c++-common/gomp/pr60823-3.c test fails with
-fcompare-debug
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
  Assignee: jakub at gcc dot gnu.org
  Reporter: jakub at gcc dot gnu.org

xgcc: error: /usr/src/gcc/gcc/testsuite/c-c++-common/gomp/pr60823-3.c:
-fcompare-debug failure


[Bug ipa/63298] [5 Regression] internal compiler error: in types_same_for_odr, at ipa-devirt.c:449 with LTO

2014-09-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63298

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |5.0


[Bug c++/63295] Insane memory use

2014-09-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63295

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||compile-time-hog

--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org ---
Confirmed on trunk.  It also takes much time to compile.


[Bug lto/63286] [5 Regression] FAIL: g++.dg/lto/20101014-2 cp_lto_20101014-2_0.o assemble, * after r215196

2014-09-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63286

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |5.0


[Bug tree-optimization/63288] [5 Regression] gcc.c-torture/execute/20140326-1.c FAILs with -Og -fgcse -fif-conversion2

2014-09-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63288

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |5.0


[Bug debug/63285] [4.9 Regression] -fcompare-debug scheduler related failure

2014-09-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63285

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-09-22
  Known to work||5.0
Summary|[4.9/5 Regression]  |[4.9 Regression]
   |-fcompare-debug scheduler   |-fcompare-debug scheduler
   |related failure |related failure
 Ever confirmed|0   |1
  Known to fail||4.9.1

--- Comment #4 from Richard Biener rguenth at gcc dot gnu.org ---
Fixed on trunk sofar.


[Bug pch/63319] [5 Regression] ICE: Segmentation fault building qt5 with pch

2014-09-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63319

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |5.0


[Bug sanitizer/63316] [5.0 Regression] False asan positive

2014-09-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63316

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |5.0


[Bug ipa/63313] [5 Regression] ICE in ipa-comdats.c:371

2014-09-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63313

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

Version|unknown |5.0
   Target Milestone|--- |5.0
Summary|ICE in ipa-comdats.c:371|[5 Regression] ICE in
   ||ipa-comdats.c:371


[Bug middle-end/63311] [4.9/5 Regression] -O1 optimization introduces valgrind warning

2014-09-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63311

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.9.2


[Bug middle-end/63311] [4.9/5 Regression] -O1 optimization introduces valgrind warning

2014-09-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63311

--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org ---
This is probably ifcombine at work and the target splitting the combined
condition back, but the other way around.


[Bug c/63307] [4.9/5 Regression] Cilk+ breaks -fcompare-debug bootstrap

2014-09-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63307

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.9.2


[Bug debug/63284] [4.9/5 Regression] -fcompare-debug issue due to redirection to __builtin_unreachable ()

2014-09-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63284

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #5 from Richard Biener rguenth at gcc dot gnu.org ---
Fixed.


[Bug bootstrap/63280] [5 Regression] Double free in GCC compiled with LTO and -O3.

2014-09-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63280

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||rsandifo at gcc dot gnu.org
   Target Milestone|--- |5.0
Summary|Double free in GCC compiled |[5 Regression] Double free
   |with LTO and -O3.   |in GCC compiled with LTO
   ||and -O3.


[Bug debug/63328] c-c++-common/gomp/pr60823-3.c test fails with -fcompare-debug

2014-09-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63328

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org ---
Author: jakub
Date: Mon Sep 22 10:32:09 2014
New Revision: 215454

URL: https://gcc.gnu.org/viewcvs?rev=215454root=gccview=rev
Log:
PR debug/63328
* omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
insert a debug source bind stmt setting DEBUG_EXPR_DECL
instead of a normal gimple assignment stmt.

* c-c++-common/gomp/pr63328.c: New test.

Added:
trunk/gcc/testsuite/c-c++-common/gomp/pr63328.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/omp-low.c
trunk/gcc/testsuite/ChangeLog


[Bug middle-end/63311] [4.9/5 Regression] -O1 optimization introduces valgrind warning

2014-09-22 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63311

Dominique d'Humieres dominiq at lps dot ens.fr changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-09-22
 Ever confirmed|0   |1

--- Comment #2 from Dominique d'Humieres dominiq at lps dot ens.fr ---
Confirmed.


[Bug debug/63328] c-c++-common/gomp/pr60823-3.c test fails with -fcompare-debug

2014-09-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63328

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org ---
Author: jakub
Date: Mon Sep 22 10:34:16 2014
New Revision: 215455

URL: https://gcc.gnu.org/viewcvs?rev=215455root=gccview=rev
Log:
PR debug/63328
* omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
insert a debug source bind stmt setting DEBUG_EXPR_DECL
instead of a normal gimple assignment stmt.

* c-c++-common/gomp/pr63328.c: New test.

Added:
branches/gcc-4_9-branch/gcc/testsuite/c-c++-common/gomp/pr63328.c
Modified:
branches/gcc-4_9-branch/gcc/ChangeLog
branches/gcc-4_9-branch/gcc/omp-low.c
branches/gcc-4_9-branch/gcc/testsuite/ChangeLog


[Bug debug/63328] c-c++-common/gomp/pr60823-3.c test fails with -fcompare-debug

2014-09-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63328

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org ---
Fixed.


[Bug target/63312] FAIL: gcc.dg/torture/float128-exact-underflow.c -O0 execution test

2014-09-22 Thread jsm28 at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63312

--- Comment #3 from Joseph S. Myers jsm28 at gcc dot gnu.org ---
Author: jsm28
Date: Mon Sep 22 11:08:03 2014
New Revision: 215458

URL: https://gcc.gnu.org/viewcvs?rev=215458root=gccview=rev
Log:
PR target/63312
* config/ia64/sfp-machine.h (FE_EX_ALL, FP_TRAPPING_EXCEPTIONS):
New macros.

Modified:
trunk/libgcc/ChangeLog
trunk/libgcc/config/ia64/sfp-machine.h


[Bug target/63312] FAIL: gcc.dg/torture/float128-exact-underflow.c -O0 execution test

2014-09-22 Thread jsm28 at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63312

Joseph S. Myers jsm28 at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #4 from Joseph S. Myers jsm28 at gcc dot gnu.org ---
Fixed for GCC 5.


[Bug target/63312] FAIL: gcc.dg/torture/float128-exact-underflow.c -O0 execution test

2014-09-22 Thread jsm28 at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63312

Joseph S. Myers jsm28 at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |5.0


[Bug c++/63323] confused by earlier errors, bailing out with no other errors

2014-09-22 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63323

--- Comment #4 from Marek Polacek mpolacek at gcc dot gnu.org ---
Author: mpolacek
Date: Mon Sep 22 11:27:54 2014
New Revision: 215459

URL: https://gcc.gnu.org/viewcvs?rev=215459root=gccview=rev
Log:
PR c++/63323
* ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.

* g++.dg/ubsan/pr61272.C: New test.

Added:
branches/gcc-4_9-branch/gcc/testsuite/g++.dg/ubsan/pr61272.C
Modified:
branches/gcc-4_9-branch/gcc/ChangeLog
branches/gcc-4_9-branch/gcc/testsuite/ChangeLog
branches/gcc-4_9-branch/gcc/ubsan.c


[Bug c++/63323] confused by earlier errors, bailing out with no other errors

2014-09-22 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63323

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #5 from Marek Polacek mpolacek at gcc dot gnu.org ---
Should be fixed.


[Bug libstdc++/63329] New: std::bind does not define argument_type

2014-09-22 Thread thomas.sanchz at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63329

Bug ID: 63329
   Summary: std::bind does not define argument_type
   Product: gcc
   Version: 4.9.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: thomas.sanchz at gmail dot com

Hi,

It looks like the data structure returned by bind does not contain some type
(argument_type) required by std::not1 for instance.
It works with clang + the libc++ on Mac Os X.

#include functional
#include algorithm

struct Test { bool pred() const { return true; } };
int main(int argc, char *argv[])
{
  // works
  auto f1 = std::not1(std::mem_fn(Test::pred));
  // works
  auto f2 = std::not1(std::mem_fun(Test::pred));
  // does not work: error: no type named ‘argument_type’ 
  auto f3 = std::not1(std::bind(Test::pred, std::placeholders::_1));
}


Thanks a lot.

[Bug target/63330] New: vector shuffle resembling vector shift not expanded optimally

2014-09-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63330

Bug ID: 63330
   Summary: vector shuffle resembling vector shift not expanded
optimally
   Product: gcc
   Version: 4.9.1
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: rguenth at gcc dot gnu.org
Target: x86_64-*-*, i?86-*-*

typedef int v4si __attribute__((vector_size(16)));
v4si foo (v4si x)
{
  return __builtin_shuffle (x, (v4si){ 0, 0, 0, 0 },
 (v4si){4, 3, 2, 1 });
}

and similar shuffles shifting a vector by whole-element amounts
left/right and inserting zeros are not expanded optimally (while
the target has at least a vec_shr optab which suggests sth would
be available).

With -mavx2 I get for the above

vpxor   %xmm1, %xmm1, %xmm1
vpalignr$4, %xmm0, %xmm1, %xmm0
vpshufd $27, %xmm0, %xmm0

while I expected sth like

psrldq %xmm0, $4

__builtin_shuffle (x, (v4si) { -1, -1, -1, -1 }, ... )

Arbitrary constants shifted in could be handled the same by IORing
the shifted in value after the psrldq in the appropriate elements
for the cost of an extra vector constant.


[Bug target/63330] vector shuffle resembling vector shift not expanded optimally

2014-09-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63330

--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org ---
(this is aimed at removing VEC_RSHIFT_EXPR and thus no longer using vec_shr)


[Bug lto/63226] [5 Regression] ICE with -flto-odr-type-merging

2014-09-22 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63226

Markus Trippelsdorf trippels at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 CC||trippels at gcc dot gnu.org
 Resolution|--- |FIXED

--- Comment #10 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
marxin added a testcase in r215451.


[Bug libstdc++/63329] std::bind does not define argument_type

2014-09-22 Thread thomas.sanchz at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63329

--- Comment #1 from Thomas Sanchez thomas.sanchz at gmail dot com ---
BTW, I forgot to add that the compiler is invoked with this command:
   g++ -std=c++11 test.cpp

Also, funny thing, with clang, it is the first one that do not compile :)

Thanks,


[Bug c++/61857] An init-capturing lambda is parsed incorrectly when used in a braced-init-list

2014-09-22 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61857

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com ---
In our case the issue is slightly different, the problem is in
cp_parser_initializer_list, here:

  cp_parser_parse_tentatively (parser);
  cp_lexer_consume_token (parser-lexer);
  designator = cp_parser_constant_expression (parser, true, non_const);
  cp_parser_require (parser, CPP_CLOSE_SQUARE, RT_CLOSE_SQUARE);
  cp_parser_require (parser, CPP_EQ, RT_EQ);
  if (!cp_parser_parse_definitely (parser))
designator = NULL_TREE;
  else if (non_const)
require_potential_rvalue_constant_expression (designator);

where cp_parser_constant_expression is tentatively called. I think it can be
solved by looking forward for the '=', similarly to other GNU extensions, for
example compound literals.


[Bug fortran/63331] New: Fortran -fcompare-debug issues

2014-09-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63331

Bug ID: 63331
   Summary: Fortran -fcompare-debug issues
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jakub at gcc dot gnu.org
CC: burnus at gcc dot gnu.org

In -fcompare-debug bootstrap/regtest (GCC_COMPARE_DEBUG=1 in the environment),
I'm seeing various gfortran.dg regressions compared to normal regtest:
+FAIL: gfortran.dg/coarray/alloc_comp_1.f90 -fcoarray=single  -O2  (test for
excess errors)
+UNRESOLVED: gfortran.dg/coarray/alloc_comp_1.f90 -fcoarray=single  -O2 
compilation failed to produce executable
+FAIL: gfortran.dg/coarray/alloc_comp_1.f90 -fcoarray=lib  -O2  -lcaf_single
(test for excess errors)
+UNRESOLVED: gfortran.dg/coarray/alloc_comp_1.f90 -fcoarray=lib  -O2 
-lcaf_single compilation failed to produce executable
+FAIL: gfortran.dg/coarray/alloc_comp_3.f90 -fcoarray=single  -O2  (test for
excess errors)
+FAIL: gfortran.dg/coarray/alloc_comp_3.f90 -fcoarray=lib  -O2  -lcaf_single
(test for excess errors)
+FAIL: gfortran.dg/coarray/lib_realloc_1.f90 -fcoarray=single  -O2  (test for
excess errors)
+UNRESOLVED: gfortran.dg/coarray/lib_realloc_1.f90 -fcoarray=single  -O2 
compilation failed to produce executable
+FAIL: gfortran.dg/coarray/lib_realloc_1.f90 -fcoarray=lib  -O2  -lcaf_single
(test for excess errors)
+UNRESOLVED: gfortran.dg/coarray/lib_realloc_1.f90 -fcoarray=lib  -O2 
-lcaf_single compilation failed to produce executable
+FAIL: gfortran.dg/coarray/subobject_1.f90 -fcoarray=single  -O2  (test for
excess errors)
+UNRESOLVED: gfortran.dg/coarray/subobject_1.f90 -fcoarray=single  -O2 
compilation failed to produce executable
+FAIL: gfortran.dg/coarray/subobject_1.f90 -fcoarray=lib  -O2  -lcaf_single
(test for excess errors)
+UNRESOLVED: gfortran.dg/coarray/subobject_1.f90 -fcoarray=lib  -O2 
-lcaf_single compilation failed to produce executable
+FAIL: gfortran.dg/class_optional_1.f90   -O0  (test for excess errors)
+UNRESOLVED: gfortran.dg/class_optional_1.f90   -O0  compilation failed to
produce executable
+FAIL: gfortran.dg/class_optional_1.f90   -O1  (test for excess errors)
+UNRESOLVED: gfortran.dg/class_optional_1.f90   -O1  compilation failed to
produce executable
+FAIL: gfortran.dg/class_optional_1.f90   -O2  (test for excess errors)
+UNRESOLVED: gfortran.dg/class_optional_1.f90   -O2  compilation failed to
produce executable
+FAIL: gfortran.dg/class_optional_1.f90   -O3 -fomit-frame-pointer  (test for
excess errors)
+UNRESOLVED: gfortran.dg/class_optional_1.f90   -O3 -fomit-frame-pointer 
compilation failed to produce executable
+FAIL: gfortran.dg/class_optional_1.f90   -O3 -fomit-frame-pointer
-funroll-loops  (test for excess errors)
+UNRESOLVED: gfortran.dg/class_optional_1.f90   -O3 -fomit-frame-pointer
-funroll-loops  compilation failed to produce executable
+FAIL: gfortran.dg/class_optional_1.f90   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  (test for excess errors)
+UNRESOLVED: gfortran.dg/class_optional_1.f90   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  compilation failed to produce executable
+FAIL: gfortran.dg/class_optional_1.f90   -O3 -g  (test for excess errors)
+UNRESOLVED: gfortran.dg/class_optional_1.f90   -O3 -g  compilation failed to
produce executable
+FAIL: gfortran.dg/class_optional_1.f90   -Os  (test for excess errors)
+UNRESOLVED: gfortran.dg/class_optional_1.f90   -Os  compilation failed to
produce executable
+FAIL: gfortran.dg/class_optional_2.f90   -O0  (test for excess errors)
+UNRESOLVED: gfortran.dg/class_optional_2.f90   -O0  compilation failed to
produce executable
+FAIL: gfortran.dg/class_optional_2.f90   -O1  (test for excess errors)
+UNRESOLVED: gfortran.dg/class_optional_2.f90   -O1  compilation failed to
produce executable
+FAIL: gfortran.dg/class_optional_2.f90   -O2  (test for excess errors)
+UNRESOLVED: gfortran.dg/class_optional_2.f90   -O2  compilation failed to
produce executable
+FAIL: gfortran.dg/class_optional_2.f90   -O3 -fomit-frame-pointer  (test for
excess errors)
+UNRESOLVED: gfortran.dg/class_optional_2.f90   -O3 -fomit-frame-pointer 
compilation failed to produce executable
+FAIL: gfortran.dg/class_optional_2.f90   -O3 -fomit-frame-pointer
-funroll-loops  (test for excess errors)
+UNRESOLVED: gfortran.dg/class_optional_2.f90   -O3 -fomit-frame-pointer
-funroll-loops  compilation failed to produce executable
+FAIL: gfortran.dg/class_optional_2.f90   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  (test for excess errors)
+UNRESOLVED: gfortran.dg/class_optional_2.f90   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  compilation failed to produce executable
+FAIL: gfortran.dg/class_optional_2.f90   -O3 -g  (test for excess errors)
+UNRESOLVED: gfortran.dg/class_optional_2.f90   -O3 -g  

[Bug fortran/63331] Fortran -fcompare-debug issues

2014-09-22 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63331

Dominique d'Humieres dominiq at lps dot ens.fr changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-09-22
 Ever confirmed|0   |1

--- Comment #1 from Dominique d'Humieres dominiq at lps dot ens.fr ---
Confirmed.


[Bug libstdc++/53626] [C++11] move assignment for ifstream

2014-09-22 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53626

--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org ---
Author: redi
Date: Mon Sep 22 13:34:09 2014
New Revision: 215463

URL: https://gcc.gnu.org/viewcvs?rev=215463root=gccview=rev
Log:
Make streams movable and swappable.

PR libstdc++/54316
PR libstdc++/53626
* config/abi/pre/gnu.ver: Add new exports.
* config/io/basic_file_stdio.h (__basic_file): Support moving and
swapping.
* include/bits/basic_ios.h (basic_ios::move, basic_ios::swap):
Likewise.
* include/bits/ios_base.h (ios_base::_M_move, ios_base::_M_swap):
Likewise.
* include/bits/fstream.tcc (basic_filebuf): Likewise.
* include/bits/move.h (__exchange): Define for C++11 mode.
* include/ext/stdio_filebuf.h (stdio_filebuf): Support moving and
swapping.
* include/ext/stdio_sync_filebuf.h (stdio_sync_filebuf): Likewise.
* include/std/fstream (basic_filebuf, basic_ifstream, basic_ofstream,
basic_fstream): Likewise.
* include/std/ios: Remove whitespace.
* include/std/istream (basic_istream, basic_iostream): Support moving
and swapping.
* include/std/ostream (basic_ostream): Likewise.
* include/std/sstream (basic_stringbuf, basic_istringstream,
basic_ostringstream, basic_stringstream): Likewise.
* include/std/streambuf (basic_streambuf): Do not default copy
constructor and assignment on first declaration.
* include/std/utility (exchange): Forward to __exchange.
* testsuite/27_io/basic_filebuf/cons/char/copy_neg.cc: New.
* src/c++11/Makefile.am: Add stream-related files.
* src/c++11/Makefile.in: Regenerate.
* src/c++11/ext11-inst.cc (stdio_filebuf, stdio_sync_filebuf):
New file for explicit instantiation definitions.
* src/c++11/ios.cc: Move from src/c++98 to here.
(ios_base::_M_move, ios_base::_M_swap): Define.
* src/c++11/ios-inst.cc: Move from src/c++98 to here.
* src/c++11/iostream-inst.cc: Likewise.
* src/c++11/istream-inst.cc: Likewise.
* src/c++11/ostream-inst.cc: Likewise.
* src/c++11/sstream-inst.cc: Likewise.
* src/c++11/streambuf-inst.cc: Likewise.
* src/c++98/Makefile.am: Remove stream-related files.
* src/c++98/Makefile.in: Regenerate.
* src/c++98/ext-inst.cc (stdio_filebuf): Remove explicit
instantiations.
* src/c++98/misc-inst.cc (stdio_sync_filebuf): Likewise.
* src/c++98/ios-inst.cc: Move to src/c++11/.
* src/c++98/ios.cc: Move to src/c++11/.
* src/c++98/iostream-inst.cc: Likewise.
* src/c++98/istream-inst.cc: Likewise.
* src/c++98/ostream-inst.cc: Likewise.
* src/c++98/sstream-inst.cc: Likewise.
* src/c++98/streambuf-inst.cc: Likewise.
* testsuite/27_io/basic_filebuf/cons/char/copy_neg.cc: New.
* testsuite/27_io/basic_fstream/cons/move.cc: New.
* testsuite/27_io/basic_fstream/assign/1.cc: New.
* testsuite/27_io/basic_ifstream/cons/move.cc: New.
* testsuite/27_io/basic_ifstream/assign/1.cc: New.
* testsuite/27_io/basic_istringstream/assign/1.cc: New.
* testsuite/27_io/basic_istringstream/cons/move.cc: New.
* testsuite/27_io/basic_ofstream/cons/move.cc: New.
* testsuite/27_io/basic_ofstream/assign/1.cc: New.
* testsuite/27_io/basic_ostringstream/assign/1.cc: New.
* testsuite/27_io/basic_ostringstream/cons/move.cc: New.
* testsuite/27_io/basic_stringstream/assign/1.cc: New.
* testsuite/27_io/basic_stringstream/cons/move.cc: New.

Added:
trunk/libstdc++-v3/src/c++11/ext11-inst.cc
  - copied, changed from r215458, trunk/libstdc++-v3/src/c++98/ios-inst.cc
trunk/libstdc++-v3/src/c++11/ios-inst.cc
  - copied, changed from r215458, trunk/libstdc++-v3/src/c++98/ios-inst.cc
trunk/libstdc++-v3/src/c++11/ios.cc
  - copied, changed from r215458, trunk/libstdc++-v3/src/c++98/ios.cc
trunk/libstdc++-v3/src/c++11/iostream-inst.cc
  - copied, changed from r215458,
trunk/libstdc++-v3/src/c++98/iostream-inst.cc
trunk/libstdc++-v3/src/c++11/istream-inst.cc
  - copied, changed from r215458,
trunk/libstdc++-v3/src/c++98/istream-inst.cc
trunk/libstdc++-v3/src/c++11/ostream-inst.cc
  - copied, changed from r215458,
trunk/libstdc++-v3/src/c++98/ostream-inst.cc
trunk/libstdc++-v3/src/c++11/sstream-inst.cc
  - copied, changed from r215458,
trunk/libstdc++-v3/src/c++98/sstream-inst.cc
trunk/libstdc++-v3/src/c++11/streambuf-inst.cc
  - copied, changed from r215458,
trunk/libstdc++-v3/src/c++98/streambuf-inst.cc
trunk/libstdc++-v3/testsuite/27_io/basic_filebuf/cons/char/copy_neg.cc
trunk/libstdc++-v3/testsuite/27_io/basic_fstream/assign/
trunk/libstdc++-v3/testsuite/27_io/basic_fstream/assign/1.cc
trunk/libstdc++-v3/testsuite/27_io/basic_fstream/cons/move.cc
trunk/libstdc++-v3/testsuite/27_io/basic_ifstream/assign/
trunk/libstdc++-v3/testsuite/27_io/basic_ifstream/assign/1.cc
trunk/libstdc++-v3/testsuite/27_io/basic_ifstream/cons/move.cc

[Bug libstdc++/54316] [C++11] move constructor for stringstream

2014-09-22 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54316

--- Comment #9 from Jonathan Wakely redi at gcc dot gnu.org ---
Author: redi
Date: Mon Sep 22 13:34:09 2014
New Revision: 215463

URL: https://gcc.gnu.org/viewcvs?rev=215463root=gccview=rev
Log:
Make streams movable and swappable.

PR libstdc++/54316
PR libstdc++/53626
* config/abi/pre/gnu.ver: Add new exports.
* config/io/basic_file_stdio.h (__basic_file): Support moving and
swapping.
* include/bits/basic_ios.h (basic_ios::move, basic_ios::swap):
Likewise.
* include/bits/ios_base.h (ios_base::_M_move, ios_base::_M_swap):
Likewise.
* include/bits/fstream.tcc (basic_filebuf): Likewise.
* include/bits/move.h (__exchange): Define for C++11 mode.
* include/ext/stdio_filebuf.h (stdio_filebuf): Support moving and
swapping.
* include/ext/stdio_sync_filebuf.h (stdio_sync_filebuf): Likewise.
* include/std/fstream (basic_filebuf, basic_ifstream, basic_ofstream,
basic_fstream): Likewise.
* include/std/ios: Remove whitespace.
* include/std/istream (basic_istream, basic_iostream): Support moving
and swapping.
* include/std/ostream (basic_ostream): Likewise.
* include/std/sstream (basic_stringbuf, basic_istringstream,
basic_ostringstream, basic_stringstream): Likewise.
* include/std/streambuf (basic_streambuf): Do not default copy
constructor and assignment on first declaration.
* include/std/utility (exchange): Forward to __exchange.
* testsuite/27_io/basic_filebuf/cons/char/copy_neg.cc: New.
* src/c++11/Makefile.am: Add stream-related files.
* src/c++11/Makefile.in: Regenerate.
* src/c++11/ext11-inst.cc (stdio_filebuf, stdio_sync_filebuf):
New file for explicit instantiation definitions.
* src/c++11/ios.cc: Move from src/c++98 to here.
(ios_base::_M_move, ios_base::_M_swap): Define.
* src/c++11/ios-inst.cc: Move from src/c++98 to here.
* src/c++11/iostream-inst.cc: Likewise.
* src/c++11/istream-inst.cc: Likewise.
* src/c++11/ostream-inst.cc: Likewise.
* src/c++11/sstream-inst.cc: Likewise.
* src/c++11/streambuf-inst.cc: Likewise.
* src/c++98/Makefile.am: Remove stream-related files.
* src/c++98/Makefile.in: Regenerate.
* src/c++98/ext-inst.cc (stdio_filebuf): Remove explicit
instantiations.
* src/c++98/misc-inst.cc (stdio_sync_filebuf): Likewise.
* src/c++98/ios-inst.cc: Move to src/c++11/.
* src/c++98/ios.cc: Move to src/c++11/.
* src/c++98/iostream-inst.cc: Likewise.
* src/c++98/istream-inst.cc: Likewise.
* src/c++98/ostream-inst.cc: Likewise.
* src/c++98/sstream-inst.cc: Likewise.
* src/c++98/streambuf-inst.cc: Likewise.
* testsuite/27_io/basic_filebuf/cons/char/copy_neg.cc: New.
* testsuite/27_io/basic_fstream/cons/move.cc: New.
* testsuite/27_io/basic_fstream/assign/1.cc: New.
* testsuite/27_io/basic_ifstream/cons/move.cc: New.
* testsuite/27_io/basic_ifstream/assign/1.cc: New.
* testsuite/27_io/basic_istringstream/assign/1.cc: New.
* testsuite/27_io/basic_istringstream/cons/move.cc: New.
* testsuite/27_io/basic_ofstream/cons/move.cc: New.
* testsuite/27_io/basic_ofstream/assign/1.cc: New.
* testsuite/27_io/basic_ostringstream/assign/1.cc: New.
* testsuite/27_io/basic_ostringstream/cons/move.cc: New.
* testsuite/27_io/basic_stringstream/assign/1.cc: New.
* testsuite/27_io/basic_stringstream/cons/move.cc: New.

Added:
trunk/libstdc++-v3/src/c++11/ext11-inst.cc
  - copied, changed from r215458, trunk/libstdc++-v3/src/c++98/ios-inst.cc
trunk/libstdc++-v3/src/c++11/ios-inst.cc
  - copied, changed from r215458, trunk/libstdc++-v3/src/c++98/ios-inst.cc
trunk/libstdc++-v3/src/c++11/ios.cc
  - copied, changed from r215458, trunk/libstdc++-v3/src/c++98/ios.cc
trunk/libstdc++-v3/src/c++11/iostream-inst.cc
  - copied, changed from r215458,
trunk/libstdc++-v3/src/c++98/iostream-inst.cc
trunk/libstdc++-v3/src/c++11/istream-inst.cc
  - copied, changed from r215458,
trunk/libstdc++-v3/src/c++98/istream-inst.cc
trunk/libstdc++-v3/src/c++11/ostream-inst.cc
  - copied, changed from r215458,
trunk/libstdc++-v3/src/c++98/ostream-inst.cc
trunk/libstdc++-v3/src/c++11/sstream-inst.cc
  - copied, changed from r215458,
trunk/libstdc++-v3/src/c++98/sstream-inst.cc
trunk/libstdc++-v3/src/c++11/streambuf-inst.cc
  - copied, changed from r215458,
trunk/libstdc++-v3/src/c++98/streambuf-inst.cc
trunk/libstdc++-v3/testsuite/27_io/basic_filebuf/cons/char/copy_neg.cc
trunk/libstdc++-v3/testsuite/27_io/basic_fstream/assign/
trunk/libstdc++-v3/testsuite/27_io/basic_fstream/assign/1.cc
trunk/libstdc++-v3/testsuite/27_io/basic_fstream/cons/move.cc
trunk/libstdc++-v3/testsuite/27_io/basic_ifstream/assign/
trunk/libstdc++-v3/testsuite/27_io/basic_ifstream/assign/1.cc
trunk/libstdc++-v3/testsuite/27_io/basic_ifstream/cons/move.cc

[Bug testsuite/63332] New: problem with VERIFY in ext/random/k_distribution/operators/serialize.cc execution test

2014-09-22 Thread richard at netbsd dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63332

Bug ID: 63332
   Summary: problem with VERIFY in
ext/random/k_distribution/operators/serialize.cc
execution test
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: testsuite
  Assignee: unassigned at gcc dot gnu.org
  Reporter: richard at netbsd dot org

Created attachment 33531
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33531action=edit
testsuite module updated with couts showing issue is with VERIFY

Working with gcc49 on SunOS 5.11 i386 (Omnios) and pkgsrc (32-bit trunk)
I came across the following failure:

FAIL: ext/random/k_distribution/operators/serialize.cc execution test

scratching my head a bit, I added some outputs and found that the problem is
with VERIFY and not with the functions being tested.

here is my output with the attached (modified) serialize.cc:
$ ./a.out
u: 2.0e+00 1.5e+00 3.0e+00
2.0e+00 5.0e-01 0.0e+00
1.0e+00 1 -1.08681804426135680e+00 3.0e+00
5.0e-01 0.0e+00 1.0e+00 1
1.89131873404367808e-01
v: 2.0e+00 1.5e+00 3.0e+00
2.0e+00 5.0e-01 0.0e+00
1.0e+00 1 -1.08681804426135680e+00 3.0e+00
5.0e-01 0.0e+00 1.0e+00 1
1.89131873404367808e-01
Assertion failed: u == v, file serialize.cc, line 48, function test01
Abort (core dumped)


[Bug testsuite/63332] problem with VERIFY in ext/random/k_distribution/operators/serialize.cc execution test

2014-09-22 Thread richard at netbsd dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63332

--- Comment #1 from Richard PALO richard at netbsd dot org ---
BTW, I'm curious if the problem is related to float rounding in I/O, as in
FAIL: ext/random/hypergeometric_distribution/operators/values.cc execution test


[Bug libstdc++/54316] [C++11] move constructor for stringstream

2014-09-22 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54316
Bug 54316 depends on bug 53626, which changed state.

Bug 53626 Summary: [C++11] move assignment for ifstream
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53626

   What|Removed |Added

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


[Bug libstdc++/53626] [C++11] move assignment for ifstream

2014-09-22 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53626

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #4 from Jonathan Wakely redi at gcc dot gnu.org ---
Fixed for GCC 5


[Bug libstdc++/54316] [C++11] move constructor for stringstream

2014-09-22 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54316

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #10 from Jonathan Wakely redi at gcc dot gnu.org ---
Fixed for GCC 5


[Bug libstdc++/63329] std::bind does not define argument_type

2014-09-22 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63329

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org ---
The standard does not require the typedef to be defined (libc++ apparently does
it as an extension)

See http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4076.html for a
generic replacement for std::not1 that is proposed for a future standard.


[Bug libstdc++/63329] std::bind does not define argument_type

2014-09-22 Thread thomas.sanchz at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63329

--- Comment #3 from Thomas Sanchez thomas.sanchz at gmail dot com ---
While it is not really intuitive I understand.

Thanks for your time!


[Bug c/63303] Pointer subtraction is broken when using -fsanitize=undefined

2014-09-22 Thread mikulas at artax dot karlin.mff.cuni.cz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63303

--- Comment #11 from mikulas at artax dot karlin.mff.cuni.cz ---
Richard Biener: if the middle end tells us that one pointer is greater or equal
than the other pointer, we could do unsigned subtraction and shift.

But if we don't know which pointer is greater, it gets more complicated: To do
correct short* pointer subtraction, we need to subtract pointers using
sub %edx, %eax; rcr $1, %eax --- i.e. shift the carry bit back to the topmost
bit of the result. According to Agner's tables, rcr with 1-bit count takes 1
tick on AMD and 2 ticks on Intel, so the performance penalty isn't that big. On
other architectures that lack rcr, it would be more complicated.

Another possibility is to file a defect report on the C standard and request
that program in comment 4 be considered invalid. - for example, change the
wording to this: If the result multiplied by the size of the array element is
not representable in an object of that type, the behavior is undefined. - that
would specify that that subtraction is invalid.


[Bug target/63330] vector shuffle resembling vector shift not expanded optimally

2014-09-22 Thread dje at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63330

David Edelsohn dje at gcc dot gnu.org changed:

   What|Removed |Added

 Target|x86_64-*-*, i?86-*-*|x86_64-*-*, i?86-*-*,
   ||powerpc*-*-*
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-09-22
 CC||dje at gcc dot gnu.org,
   ||wschmidt at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #2 from David Edelsohn dje at gcc dot gnu.org ---
Confirmed on PPC also.


[Bug middle-end/63197] tc-m68k.c: Wrong warning array subscript is below array bounds

2014-09-22 Thread jbg...@lug-owl.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63197

--- Comment #2 from Jan-Benedict Glaw jbg...@lug-owl.de ---
With today's binutils snapshot, there's a gas_assert in front of it, which
silences this bogus warning. That needs to be reverted to test GCC wrt. this
issue.


[Bug fortran/63331] Fortran -fcompare-debug issues

2014-09-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63331

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org ---
Created attachment 33532
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33532action=edit
gcc5-pr63331.patch

Untested patch to fix (or work around) all but the last 2 FAILs.
It seems there is no real need to have DECL_UID differences in this case, we
can just use DEBUG_EXPR_DECLs instead of VAR_DECLs for the debughook.
That said, the use of DECL_UID in lhd_set_decl_assembler_name is IMHO still
problematic, but if DECL_UID appear only after the FE is done with the stuff,
it should be less important issue.


[Bug middle-end/63197] tc-m68k.c: Wrong warning array subscript is below array bounds

2014-09-22 Thread amodra at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63197

Alan Modra amodra at gmail dot com changed:

   What|Removed |Added

 CC||amodra at gmail dot com

--- Comment #3 from Alan Modra amodra at gmail dot com ---
Created attachment 33533
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33533action=edit
reduced testcase


[Bug middle-end/63197] tc-m68k.c: Wrong warning array subscript is below array bounds

2014-09-22 Thread amodra at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63197

Alan Modra amodra at gmail dot com changed:

   What|Removed |Added

 Target||x86_64-linux
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-09-22
   Host||x86_64-linux
 Ever confirmed|0   |1
  Build||x86_64-linux


[Bug lto/63333] New: lto, 1to1 segmentation fault

2014-09-22 Thread a...@cloudius-systems.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=6

Bug ID: 6
   Summary: lto, 1to1 segmentation fault
   Product: gcc
   Version: 4.9.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: lto
  Assignee: unassigned at gcc dot gnu.org
  Reporter: a...@cloudius-systems.com

A random change (adding a new virtual function) in a program produced this.  I
realize this is not sufficient to reproduce, but maybe this can jog someone's
memory.  If not, I can try to minimize.

(gdb) bt
#0  0x7f2f900bd887 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x7f2f900bef78 in __GI_abort () at abort.c:89
#2  0x009eed13 in real_abort () at ../../gcc/diagnostic.c:1200
#3  diagnostic_action_after_output (context=context@entry=0x167a700
global_diagnostic_context, diagnostic=0x7fffb8503f60) at
../../gcc/diagnostic.c:447
#4  0x00eede6e in diagnostic_report_diagnostic(diagnostic_context*,
diagnostic_info*) () at ../../gcc/diagnostic.c:804
#5  0x009eef5f in internal_error (gmsgid=gmsgid@entry=0xf8aafe %s) at
../../gcc/diagnostic.c:1136
#6  0x00697bdc in crash_signal (signo=11) at ../../gcc/toplev.c:339
#7  signal handler called
#8  htab_hash_string (p=0x0) at ../../libiberty/hashtab.c:839
#9  0x00569f9d in hash (r=optimized out) at
../../gcc/dwarf2out.c:7501
#10 find_slot (insert=INSERT, value=0x7fffb8504650, this=0x7fffb8504648) at
../../gcc/hash-table.h:505
#11 lookup_external_ref (map=..., die=die@entry=0x7f2f897f70f0) at
../../gcc/dwarf2out.c:7529
#12 0x00569c44 in optimize_external_refs_1 (die=0x7f2f894957d0,
map=map@entry=...) at ../../gcc/dwarf2out.c:7567
#13 0x00aa0eff in optimize_external_refs_1(die_struct*,
hash_tableexternal_ref_hasher, xcallocator) () at ../../gcc/dwarf2out.c:7571
#14 0x00aa0eff in optimize_external_refs_1(die_struct*,
hash_tableexternal_ref_hasher, xcallocator) () at ../../gcc/dwarf2out.c:7571
#15 0x00e634a2 in optimize_external_refs(die_struct*) () at
../../gcc/dwarf2out.c:7621
#16 0x00e63205 in output_comp_unit(die_struct*, int) () at
../../gcc/dwarf2out.c:8807
#17 0x00561d12 in dwarf2out_finish (filename=optimized out) at
../../gcc/dwarf2out.c:24252
#18 0x00e9664e in compile_file() () at ../../gcc/toplev.c:601
#19 0x00e960e6 in do_compile () at ../../gcc/toplev.c:1917
#20 toplev_main(int, char**) () at ../../gcc/toplev.c:1995
#21 0x7f2f900a9d65 in __libc_start_main (main=0xa1a5e0 main(int, char**),
argc=25, argv=0x7fffb8504b88, init=optimized out, 
fini=optimized out, rtld_fini=optimized out, stack_end=0x7fffb8504b78)
at libc-start.c:285
#22 0x00e1365c in _start ()

In frame 9, die-die_id is zeroed.


[Bug target/63334] New: -m16 should turn off MMX, SSE, AVX as well as VEX-encoded scalar instructions

2014-09-22 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63334

Bug ID: 63334
   Summary: -m16 should turn off MMX, SSE, AVX as well as
VEX-encoded scalar instructions
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: hjl.tools at gmail dot com
CC: kirill.yukhin at intel dot com
Target: x86

MMX, SSE, AVX as well as VEX-encoded scalar instructions are supported
in 16-bit mode.  -m16 should turn them off:

[hjl@gnu-6 gcc]$ touch x.i
[hjl@gnu-6 gcc]$ ./xgcc -B./ -m16 x.i -march=native -v -S
Reading specs from ./specs
COLLECT_GCC=./xgcc
Target: x86_64-unknown-linux-gnu
Configured with: /export/gnu/import/git/gcc/configure
--enable-languages=c,c++,fortran --disable-bootstrap --prefix=/usr/gcc-5.0.0
--with-local-prefix=/usr/local --enable-gnu-indirect-function --with-fpmath=sse
Thread model: posix
gcc version 5.0.0 20140911 (experimental) (GCC) 
COLLECT_GCC_OPTIONS='-B' './' '-m16' '-march=native' '-v' '-S'
 ./cc1 -fpreprocessed x.i -march=haswell -mmmx -mno-3dnow -msse -msse2 -msse3
-mssse3 -mno-sse4a -mcx16 -msahf -mmovbe -maes -mno-sha -mpclmul -mpopcnt -mabm
-mno-lwp -mfma -mno-fma4 -mno-xop -mbmi -mbmi2 -mno-tbm -mavx -mavx2 -msse4.2
-msse4.1 -mlzcnt -mno-rtm -mno-hle -mrdrnd -mf16c -mfsgsbase -mno-rdseed
-mno-prfchw -mno-adx -mfxsr -mxsave -mxsaveopt -mno-avx512f -mno-avx512er
-mno-avx512cd -mno-avx512pf -mno-prefetchwt1 -mno-clflushopt -mno-xsavec
-mno-xsaves -mno-avx512dq -mno-avx512bw -mno-avx512vl --param l1-cache-size=32
--param l1-cache-line-size=64 --param l2-cache-size=8192 -mtune=haswell -quiet
-dumpbase x.i -m16 -auxbase x -version -o x.s
GNU C (GCC) version 5.0.0 20140911 (experimental) (x86_64-unknown-linux-gnu)
compiled by GNU C version 4.8.3 20140624 (Red Hat 4.8.3-1), GMP version
5.1.2, MPFR version 3.1.2, MPC version 1.0.1
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
GNU C (GCC) version 5.0.0 20140911 (experimental) (x86_64-unknown-linux-gnu)
compiled by GNU C version 4.8.3 20140624 (Red Hat 4.8.3-1), GMP version
5.1.2, MPFR version 3.1.2, MPC version 1.0.1
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: 86d44baffb9b5e3d04fa82fe0af72a3d
COMPILER_PATH=./
LIBRARY_PATH=./:/lib/../lib64/:/usr/lib/../lib64/:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-B' './' '-m16' '-march=native' '-v' '-S'
[hjl@gnu-6 gcc]$


[Bug libgcc/63335] New: GCC:failures for vector double on calls to bif vec_[all|any]_[nge|nle]

2014-09-22 Thread lei at ca dot ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63335

Bug ID: 63335
   Summary: GCC:failures for vector double on calls to bif
vec_[all|any]_[nge|nle]
   Product: gcc
   Version: 4.9.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libgcc
  Assignee: unassigned at gcc dot gnu.org
  Reporter: lei at ca dot ibm.com

Calls to the following vector bifs fails with gcc with type vector double. 
Passes for vector float.

The same failures are on both BE and LE machines.

vec_all_nge
vec_any_nge
vec_all_nle
vec_any_nle

-

RELEASE LEVEL INFO: 

Fails on both gcc 4.8.2 and 4.9.2

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/powerpc64le-linux-gnu/4.8/lto-wrapper
Target: powerpc64le-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.2-19ubuntu1'
--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 --disable-libmudflap
--disable-libsanitizer --disable-libquadmath --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-ppc64el/jre --enable-java-home
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-ppc64el
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-ppc64el
--with-arch-directory=ppc64el --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--enable-objc-gc --enable-secureplt --with-cpu=power7 --with-tune=power8
--disable-multilib --enable-multiarch --disable-werror --with-long-double-128
--enable-checking=release --build=powerpc64le-linux-gnu
--host=powerpc64le-linux-gnu --target=powerpc64le-linux-gnu
Thread model: posix
gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1)

$ /opt/at8.0/bin/gcc -v
Using built-in specs.
COLLECT_GCC=/opt/at8.0/bin/gcc
COLLECT_LTO_WRAPPER=/opt/at8.0/libexec/gcc/powerpc64le-linux-gnu/4.9.2/lto-wrapper
Target: powerpc64le-linux-gnu
Configured with:
/home/tuliom/at8.0-0/at8.0-0.ubuntu-14_ppc64le_ppc64le/sources/gcc/configure
--build=powerpc64le-linux-gnu --host=powerpc64le-linux-gnu
--target=powerpc64le-linux-gnu --with-cpu=default64 --prefix=/opt/at8.0
--with-long-double-128 --enable-secureplt --disable-multilib
--enable-threads=posix --enable-languages=c,c++,fortran,go
--enable-__cxa_atexit --enable-shared --enable-checking=release --enable-lto
--enable-gnu-indirect-function --enable-initfini-array
--with-gmp-include=/opt/at8.0/include --with-gmp-lib=/opt/at8.0/lib64
--with-mpfr-include=/opt/at8.0/include --with-mpfr-lib=/opt/at8.0/lib64
--with-mpc-include=/opt/at8.0/include --with-mpc-lib=/opt/at8.0/lib64
--without-ppl --without-cloog --without-libelf
--with-host-libstdcxx='-L/opt/at8.0/lib64 -lstdc++ -lsupc++ -lgmp -lgmpxx -lm'
--with-cpu=power7 --with-tune=power8
Thread model: posix
gcc version 4.9.2 20140812 (Advance-Toolchain-at8.0) [ibm/gcc-4_9-branch,
revision: 213889 merged from gcc-4_9-branch, revision 213872] (GCC)

-

STEPS TO REPRODUCE: (Reduce the code in the README.ksh file as much as
possible)

$ gcc -m64 -fabi-version=4 -mcpu=power8 a.c
$ a.out

-

ACTUAL OUTPUT:

99.00 99.00
Actual: 1 Expected: 0
return code: 1

-

EXPECTED OUTPUT:

return code: 0

-

TESTCASE SOURCE: 

$ cat a.c
#include stdio.h
#include altivec.h

#ifdef _TEST_FLOAT
   vector float vec = (vector float ) {99.0, 99.0, 99.0, 99.0};
#else
   vector double vec = (vector double) {99.0, 99.0};
#endif

int main() {
int actual = -1;

actual = vec_all_nge(vec, vec);
if ( actual != 0) {
printf(Actual: %d Expected: 0\n, actual);
return 1;
}

return 0;
}


[Bug c/63336] New: cilkplus array notation ICE in find_rank

2014-09-22 Thread tprince at computer dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63336

Bug ID: 63336
   Summary: cilkplus array notation ICE in find_rank
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: tprince at computer dot org

Created attachment 33534
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33534action=edit
pre-processed C source with cilkplus array notation

$ gcc -std=c99  -c -fcilkplus  -v s422.i
Using built-in specs.
COLLECT_GCC=gcc
Target: x86_64-unknown-cygwin
Configured with: ../configure --prefix=/usr/local/gcc5.0 --enable-languages='c
c
++ fortran' --enable-libgomp --enable-threads=posix --disable-__cxa_atexit
--wit
h-dwarf2 --without-libiconv-prefix --without-libintl-prefix --with-system-zlib
-
-disable-werror --without-cloog --without-isl
Thread model: posix
gcc version 5.0.0 20140922 (experimental) (GCC)
COLLECT_GCC_OPTIONS='-std=c99' '-c' '-fcilkplus' '-v' '-mtune=generic'
'-march=x
86-64' '-pthread'
 /usr/local/gcc5.0/libexec/gcc/x86_64-unknown-cygwin/5.0.0/cc1.exe
-fpreprocesse
d s422.i -quiet -dumpbase s422.i -mtune=generic -march=x86-64 -auxbase s422
-std
=c99 -version -fcilkplus -o /tmp/ccCsOctk.s
GNU C (GCC) version 5.0.0 20140922 (experimental) (x86_64-unknown-cygwin)
compiled by GNU C version 5.0.0 20140922 (experimental), GMP version
6.0
.0, MPFR version 3.1.2, MPC version 1.0.2
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
GNU C (GCC) version 5.0.0 20140922 (experimental) (x86_64-unknown-cygwin)
compiled by GNU C version 5.0.0 20140922 (experimental), GMP version
6.0
.0, MPFR version 3.1.2, MPC version 1.0.2
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: 418ff77cc465e61e11d739c56dbe80c7
s422.c: In function ‘s422_’:
s422.c:86:5: internal compiler error: in find_rank, at
c-family/array-notation-c
ommon.c:231
 }
 ^
Please submit a full bug report,

[Bug c/63337] New: Hexadecimal exponent: improvements to error message

2014-09-22 Thread dmalcolm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63337

Bug ID: 63337
   Summary: Hexadecimal exponent: improvements to error message
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: dmalcolm at gcc dot gnu.org

As discussed in the thread here:
  https://gcc.gnu.org/ml/gcc/2014-09/msg00282.html
if the user mistakenly tries to use the e suffix for a exponent marker with a
hexadecimal constant, the warning could be improved.

$ cat /tmp/foo.c
float f = 0x3ffe+63;

$ gcc/cc1 /tmp/foo.c 
/tmp/foo.c:1:11: error: invalid suffix +63 on integer constant
 float f = 0x3ffe+63;
   ^

A better warning might be something like:
/tmp/foo.c:1:11: error: invalid suffix +63 on integer constant
 float f = 0x3ffe+63;
   ^
/tmp/foo.c:1:11: hint: if you meant for e to be an exponent, use p as an
exponent suffix for hexadecimal constants:
 float f = 0x3ffe+63;
^
 float f = 0x3ffp+63;
^
or somesuch; maybe even just:
/tmp/foo.c:1:11: error: use p rather than e for exponents for hexadecimal
constants
 float f = 0x3ffe+63;
^
(how far can we go down the road of actually outputting a patch?)


[Bug preprocessor/63337] Hexadecimal exponent: improvements to error message

2014-09-22 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63337

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #1 from Marek Polacek mpolacek at gcc dot gnu.org ---
That would be nice.  Another great candidate for
https://gcc.gnu.org/ml/gcc-patches/2014-08/msg02723.html


[Bug target/63334] -m16 should turn off unsupported instructions

2014-09-22 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63334

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

   What|Removed |Added

Summary|-m16 should turn off MMX,   |-m16 should turn off
   |SSE, AVX as well as |unsupported instructions
   |VEX-encoded scalar  |
   |instructions|

--- Comment #1 from H.J. Lu hjl.tools at gmail dot com ---
Only VEX/EVEX instructions aren't supported in 16-bit mode.


[Bug target/63335] GCC:failures for vector double on calls to bif vec_[all|any]_[nge|nle]

2014-09-22 Thread dje at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63335

David Edelsohn dje at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-09-22
 CC||dje at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from David Edelsohn dje at gcc dot gnu.org ---
Confirmed.


[Bug c++/61465] Bogus parameter set but not used warning in constructor initialization list

2014-09-22 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61465

--- Comment #5 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Mon Sep 22 18:47:16 2014
New Revision: 215476

URL: https://gcc.gnu.org/viewcvs?rev=215476root=gccview=rev
Log:
PR c++/61465
* call.c (convert_like_real) [ck_identity]: Call mark_rvalue_use
after pulling out an element from a CONSTRUCTOR.

Added:
branches/gcc-4_9-branch/gcc/testsuite/g++.dg/warn/Wunused-parm-6.C
Modified:
branches/gcc-4_9-branch/gcc/cp/ChangeLog
branches/gcc-4_9-branch/gcc/cp/call.c


[Bug c++/62219] [c++11] Spurious error for lambda in a friend function of a class template with a default template parameters

2014-09-22 Thread paolo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62219

--- Comment #3 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org ---
Author: paolo
Date: Mon Sep 22 19:21:20 2014
New Revision: 215477

URL: https://gcc.gnu.org/viewcvs?rev=215477root=gccview=rev
Log:
/cp
2014-09-22  Paolo Carlini  paolo.carl...@oracle.com

PR c++/62219
* pt.c (check_default_tmpl_args): Check LAMBDA_FUNCTION_P.

/testsuite
2014-09-22  Paolo Carlini  paolo.carl...@oracle.com

PR c++/62219
* g++.dg/cpp0x/lambda/lambda-template14.C: New.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template14.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/ChangeLog


  1   2   3   >