Re: Question about simple_return pattern for the GCC ARM backend.

2013-12-28 Thread Chung-Lin Tang
On 2013/12/28 09:31 AM, Yangfei (Felix) wrote:
 Hi, 
 
   I think that simple_return standard pattern is useful for the ARM. I mean 
 it should be good for target code performance.
  But seems this pattern is not there for the GCC ARM backend. Can anyone 
 explain the reason why we don’t need this?
 
 Cheers,
 Fei
 

It does use it. Search for the return_strreturn expand pattern, and
the returns code iterator in config/arm/iterators.md.

Chung-Lin



Re: Remove spam in GCC mailing list

2013-12-28 Thread Tae Wong
You want to send a mail to python-dev at python dot org.

The spam still exists in gcc-bugs mailing list:
http://gcc.gnu.org/ml/gcc-bugs/2013-08/msg00689.html
http://gcc.gnu.org/ml/gcc-bugs/2013-08/msg00759.html
http://gcc.gnu.org/ml/gcc-bugs/2013-08/msg00776.html
http://gcc.gnu.org/ml/gcc-bugs/2013-08/msg01181.html
http://gcc.gnu.org/ml/gcc-bugs/2013-08/msg01586.html
http://gcc.gnu.org/ml/gcc-bugs/2013-09/msg01513.html
http://gcc.gnu.org/ml/gcc-bugs/2013-09/msg01946.html
http://gcc.gnu.org/ml/gcc-bugs/2013-09/msg01947.html
http://gcc.gnu.org/ml/gcc-bugs/2013-09/msg02011.html

There's no reason that the gcc-bugs mailing list can post bug reports directly.

Please delete spam messages from gcc-bugs.

-- 
Tae-Wong Seo
Korea, Republic of


gcc-4.7-20131228 is now available

2013-12-28 Thread gccadmin
Snapshot gcc-4.7-20131228 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.7-20131228/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 4.7 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch 
revision 206233

You'll find:

 gcc-4.7-20131228.tar.bz2 Complete GCC

  MD5=5e96611f52dd4a9f1358bf4a5eac3349
  SHA1=3f36bfeba2695e12c1bfa5cbcb8303bd62379def

Diffs from 4.7-20131221 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.7
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.


RE: Remove spam in GCC mailing list

2013-12-28 Thread Joe Buck
Some background on the below: Google has recently changed its algorithms, and 
the presence of obvious spam mails pointing to a site now *lower* that site's 
Google rank.  So the same search engine optimization people who created the 
spams for pay in the first place are now frantically trying to get the spams 
removed, to keep their clients from suing them.  I think gcc is best served by 
just leaving the spams in the archive, as permanent punishment for the people 
who paid to wreck the Internet for their own gain.

-Original Message-
From: gcc-ow...@gcc.gnu.org [mailto:gcc-ow...@gcc.gnu.org] On Behalf Of Tae Wong
Sent: Saturday, December 28, 2013 3:40 AM
To: gcc@gcc.gnu.org
Subject: Re: Remove spam in GCC mailing list

You want to send a mail to python-dev at python dot org.

The spam still exists in gcc-bugs mailing list:
http://gcc.gnu.org/ml/gcc-bugs/2013-08/msg00689.html
http://gcc.gnu.org/ml/gcc-bugs/2013-08/msg00759.html
http://gcc.gnu.org/ml/gcc-bugs/2013-08/msg00776.html
http://gcc.gnu.org/ml/gcc-bugs/2013-08/msg01181.html
http://gcc.gnu.org/ml/gcc-bugs/2013-08/msg01586.html
http://gcc.gnu.org/ml/gcc-bugs/2013-09/msg01513.html
http://gcc.gnu.org/ml/gcc-bugs/2013-09/msg01946.html
http://gcc.gnu.org/ml/gcc-bugs/2013-09/msg01947.html
http://gcc.gnu.org/ml/gcc-bugs/2013-09/msg02011.html

There's no reason that the gcc-bugs mailing list can post bug reports directly.

Please delete spam messages from gcc-bugs.

-- 
Tae-Wong Seo
Korea, Republic of


[Bug c/59615] asm goto output or at least clobbered operands

2013-12-28 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59615

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org ---
The reason for the limitation is that any needed reload out can't be then
inserted after the asm goto, but all the other edges would need to be split and
the reload outs inserted on all the edges.

Looking at your example though, can you explain why you want to use asm goto
then?  I'd say that for addition, two conditional jumps and one comparison you
definitely don't want to use asm goto, the compiler can't see through it thus
can't optimize it.  Why isn't what GCC generates sufficient?  Do you have a
testcase?


[Bug c++/56926] Crash (without ICE) while compiling Boost.Math

2013-12-28 Thread asmwarrior at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56926

--- Comment #6 from asmwarrior asmwarrior at gmail dot com ---
It is very simple to reproduce this bug. Here is the steps I do
1, download the GCC 4.8.2 from MinGW-w64 site, I'm using
i686-4.8.2-release-posix-dwarf-rt_v3-rev1

2, download the boost source package, I'm using boost_1_55_0.7z download from
boost official site, extract its source to some folder like:
D:\mingw-builds\boost_1_55_0.  (Note, no need to build boost library, only the
boost header files are needed for testing)

3, create a simple file named pch.h, which contains following:

#ifndef pch_h
#define pch_h

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored -Wdelete-non-virtual-dtor

#include boost/asio.hpp
#include boost/iostreams/filtering_stream.hpp
#include boost/program_options.hpp
#include boost/thread.hpp

#pragma GCC diagnostic pop
#endif
 

4, create a simple test.cpp file, which contains following:

#include pch.h

int main()
{
int a;
int b;
int c;
a++;
b++;
}


5, build the pch file by running the command.

g++.exe -Wall -fexceptions  -g  -march=core2 -Wall
-ID:\mingw-builds\boost_1_55_0  -c pch.h -o pch.h.gch

6, now, you will see a file named pch.h.gch was generated, its size is bigger
than 200M.

7, compile the test.cpp file by running the command:
g++.exe -v -Wall -fexceptions  -g  -march=core2 -Wall
-ID:\mingw-builds\boost_1_55_0  -Winvalid-pch -include pch.h -c test.cpp -o
test.o

8, I see some verbose messages, but no test.o file was generated in the
working directory, also I see no crash dialog shown.

So, this is indeed a bug.

Now, if you comment out some lines in the pch.h file, e.g. only leave the first
#include directive: #include boost/asio.hpp, and comment out the later three
include directive, and run the steps again, you get a 47M pch.h.gch and a 206K
test.o file.

I try to use GDB to catch the errors, but failed.
Try use GDB, I did such thing:
gdb g++.exe [enter]
then
set args -v -Wall -fexceptions  -g  -march=core2 -Wall
-ID:\mingw-builds\boost_1_55_0  -Winvalid-pch -include pch.h -c test.cpp -o
test.o [enter]
then
r [enter]

GDB can't catch anything, just the same as I run the command in the Command
line, the last message from GDB is: [Inferior 1 (process 2000) exited with code
01]

Does exit code 01 has some special meaning?

BTW: I have test the GCC 4.9 snapshot
i686-4.9.0-snapshot-20131119-rev205009-posix-dwarf-rt_v4.7z from mingw-w64
site, it has the same bug.


[Bug debug/59170] pretty printers: end iterator invalid pointer

2013-12-28 Thread jan.kratochvil at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59170

Jan Kratochvil jan.kratochvil at redhat dot com changed:

   What|Removed |Added

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

--- Comment #2 from Jan Kratochvil jan.kratochvil at redhat dot com ---
It is fixable, only for development builds but that does not matter much IMO.
Just one has to build the executable with -D_GLIBCXX_DEBUG.

The test whether it is an end() iterator can be done by:

(gdb) whatis end
type = std::__debug::vectorint, std::allocatorint ::iterator
s/::iterator$//
(gdb) p end._M_current._M_current == ((std::__debug::vectorint,
std::allocatorint  *)end._M_sequence)._M_impl._M_finish
$29 = true

That is with -D_GLIBCXX_DEBUG each iterator contains:
/** The sequence this iterator references; may be NULL to indicate
a singular iterator. */
_Safe_sequence_base* _M_sequence;


[Bug lto/59543] [4.9 Regression] lto1: fatal error: Cgraph edge statement index out of range

2013-12-28 Thread trippels at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59543

--- Comment #3 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
It turned out to be a problem with debugging information.
Some files in libjs_static.a are build with -g, even when
Firefox is configured with --disable-debug --disable-debug-symbols.

If I add -g to the g++ invocation above, or build the object files
in libjs_static.a without -g, the issue goes away.


[Bug c/59615] asm goto output or at least clobbered operands

2013-12-28 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59615

--- Comment #2 from Uroš Bizjak ubizjak at gmail dot com ---
Looking at the assembly, you probably want:

--cut here--
int test (int a, int b, int c)
{
  unsigned r = a + b;

  if (r  (unsigned) a)
return 1;
  else if (r  c)
return 1;

  return 0;
}
--cut here--

gcc-4.8.2 -O2:

test:
addl%esi, %edi
movl$1, %eax
jc  .L2
xorl%eax, %eax
cmpl%edx, %edi
seta%al
.L2:
rep ret

Please note how the compiler is able to generate jc without compare insn.

[Bug c/59615] asm goto output or at least clobbered operands

2013-12-28 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59615

--- Comment #3 from Uroš Bizjak ubizjak at gmail dot com ---
(In reply to Uroš Bizjak from comment #2)

   if (r  (unsigned) a)

Explicit cast is not needed here, the compiler will do it for you.

[Bug fortran/59604] Constant comparisons with -fno-range-check and int(z'...')

2013-12-28 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59604

Thomas Koenig tkoenig at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2013-12-28
   Assignee|unassigned at gcc dot gnu.org  |tkoenig at gcc dot 
gnu.org
 Ever confirmed|0   |1

--- Comment #6 from Thomas Koenig tkoenig at gcc dot gnu.org ---
I have a patch.


[Bug fortran/59604] Constant comparisons with -fno-range-check and int(z'...')

2013-12-28 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59604

Thomas Koenig tkoenig at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|UNCONFIRMED
 Ever confirmed|1   |0

--- Comment #7 from Thomas Koenig tkoenig at gcc dot gnu.org ---
(In reply to Steve Kargl from comment #5)
 On Fri, Dec 27, 2013 at 07:53:00PM +, tkoenig at gcc dot gnu.org wrote:
  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59604
  
  Thomas Koenig tkoenig at gcc dot gnu.org changed:
  
 What|Removed |Added
  
   Blocks||58003
  
  --- Comment #4 from Thomas Koenig tkoenig at gcc dot gnu.org ---
  (In reply to kargl from comment #2)
   (In reply to Thomas Koenig from comment #1)
TRANSFER gets this right.
   
   It is unclear what you mean here.
  
  What I mean is that
  
  program test
if (transfer(z'',1) /= -1) call abort
  end program test
  
  does not call abort.
 
 I suspect that the above is not portable as transfer() simply copies
 bits.  z'FFF' is an integer(8) (or integer(16)) entity.  Transfer()
 is copying 32-bits from that entity.  It is clear from the 
 -fdump-tree-original that middle-end is converting the resulting
 32-bit thing into -1.  So, you're relying on twos-complement wrap
 around semantics.

As gcc supports only twos complement arithmetic, I think this is OK.


[Bug lto/59543] [4.9 Regression] lto1: fatal error: Cgraph edge statement index out of range

2013-12-28 Thread trippels at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59543

--- Comment #4 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
Created attachment 31527
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31527action=edit
testcase

Here's a small testcase:

  % cat check.sh
g++ -g -fprofile-use -fPIC -flto -fno-exceptions -O2 -std=c++11 -c uniset.ii
g++ -fPIC -flto -fno-exceptions -O2 -std=c++11 -c unistr.ii
g++ -fPIC -flto -fno-exceptions -O2 -std=c++11 -c unorm.ii
gcc -O3 -c -fPIC unorm_it.i
g++ -flto -O2 uniset.o unistr.o unorm_it.o unorm.o
  % ./check.sh
In member function ‘extractBetween’:
lto1: fatal error: Cgraph edge statement index out of range 25  50
compilation terminated.

[Bug fortran/59612] iso_fortran_env segfaults with -fdump-fortran-original

2013-12-28 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59612

janus at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-12-28
 CC||janus at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from janus at gcc dot gnu.org ---
Straightforward patch:

Index: gcc/fortran/dump-parse-tree.c
===
--- gcc/fortran/dump-parse-tree.c(revision 206176)
+++ gcc/fortran/dump-parse-tree.c(working copy)
@@ -110,7 +110,8 @@ show_typespec (gfc_typespec *ts)
   break;

 case BT_CHARACTER:
-  show_expr (ts-u.cl-length);
+  if (ts-u.cl)
+show_expr (ts-u.cl-length);
   fprintf(dumpfile,  %d, ts-kind);
   break;


[Bug fortran/59612] iso_fortran_env segfaults with -fdump-fortran-original

2013-12-28 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59612

--- Comment #2 from janus at gcc dot gnu.org ---
Note that there are two small errors in the related documentation:


Index: gcc/fortran/invoke.texi
===
--- gcc/fortran/invoke.texi(revision 206176)
+++ gcc/fortran/invoke.texi(working copy)
@@ -989,11 +989,12 @@ Output the internal parse tree after translating t
 into internal representation.  Only really useful for debugging the
 GNU Fortran compiler itself.

-@item -fdump-optimized-tree
+@item -fdump-fortran-optimized
 @opindex @code{fdump-fortran-optimized}
 Output the parse tree after front-end optimization.  Only really
 useful for debugging the GNU Fortran compiler itself.

+@item -dump-parse-tree
 @opindex @code{fdump-parse-tree}
 Output the internal parse tree after translating the source program
 into internal representation.  Only really useful for debugging the


Does -fdump-fortran-optimized actually do anything?


[Bug c++/56926] Crash (without ICE) while compiling Boost.Math

2013-12-28 Thread 1000hz.radiowave at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56926

--- Comment #7 from baltic 1000hz.radiowave at gmail dot com ---
(In reply to baltic from comment #5)
 worked fine with 4.6
This is not true anymore :) was probably working fine with previous versions of
the Qt, because headers were smaller back than. Now 4.6 version of MinGW-64
doesn't work with the PCH's full of Qt headers either.


[Bug fortran/59589] [4.9 Regression] [OOP] Memory leak when deallocating polymorphic

2013-12-28 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59589

janus at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||wrong-code
 CC||janus at gcc dot gnu.org
Summary|[4.9 Regression] Memory |[4.9 Regression] [OOP]
   |leak when deallocating  |Memory leak when
   |polymorphic |deallocating polymorphic

--- Comment #12 from janus at gcc dot gnu.org ---
I can confirm the problem on x86_64-unknown-linux-gnu with a current trunk
build. It is certainly related to finalization, which was introduced in 4.9.
The dump shows that a finalizer routine is called for 'b' upon deallocation:

b._vptr-_final (desc.7, b._vptr-_size, 0);

However, the finalizer routine apparently misses to properly deallocate the
components.


[Bug fortran/59612] iso_fortran_env segfaults with -fdump-fortran-original

2013-12-28 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59612

--- Comment #3 from janus at gcc dot gnu.org ---
Maybe it would make sense to run the testsuite with -fdump-fortran-original, in
order to check for further problems:


Index: gcc/testsuite/gfortran.dg/dg.exp
===
--- gcc/testsuite/gfortran.dg/dg.exp(revision 206231)
+++ gcc/testsuite/gfortran.dg/dg.exp(working copy)
@@ -22,7 +22,7 @@
 # If a testcase doesn't have special options, use these.
 global DEFAULT_FFLAGS
 if ![info exists DEFAULT_FFLAGS] then {
-set DEFAULT_FFLAGS  -pedantic-errors
+set DEFAULT_FFLAGS  -pedantic-errors -fdump-fortran-original
 }

 # Initialize `dg'.


[Bug fortran/59589] [4.9 Regression] [OOP] Memory leak when deallocating polymorphic

2013-12-28 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59589

janus at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #13 from janus at gcc dot gnu.org ---
I think the following is sufficient to fix it:


Index: gcc/fortran/class.c
===
--- gcc/fortran/class.c(revision 206231)
+++ gcc/fortran/class.c(working copy)
@@ -811,6 +811,7 @@ finalize_component (gfc_expr *expr, gfc_symbol *de
 return;

   if (comp-ts.type == BT_DERIVED  !comp-attr.allocatable
+   !comp-ts.u.derived-attr.alloc_comp
(comp-ts.u.derived-f2k_derived == NULL
   || comp-ts.u.derived-f2k_derived-finalizers == NULL)
!has_finalizer_component (comp-ts.u.derived))


[Bug c++/59598] very simple code using file open for read

2013-12-28 Thread denis.v.koles...@safe-mail.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

Denis Kolesnik denis.v.koles...@safe-mail.net changed:

   What|Removed |Added

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

--- Comment #14 from Denis Kolesnik denis.v.koles...@safe-mail.net ---
In the following code:



// a small text file filter.c //

#include stdio.h





main(int argc, char* argv[])

{


char c, previous_c;   

int word_begin_position[3000];


int spec_symbol[7]={0xAE,0xBB,0xAB,0xA9,0x22,0x2F,0x27};


int eof_symbol[2]={0x0D,0x0A};
int search_result;

int this_is_the_same_word;
int words_count;
int word_number;

int search_result_A_count;
int search_result_space;

FILE *stream,*stream2;


int i, j, characters_count, character_number;
int other_character_printed;


// double characters
int A_count, E_count;



characters_count=0;

stream = fopen (argv[1],r);

while ((c = fgetc(stream)) != EOF) 

{
characters_count++;

}
fclose(stream);
//printf(total characters are %i\n, characters_count); 


character_number=1;
words_count=0;
previous_c=0;


stream = fopen (argv[1],r);

while ((c = fgetc(stream)) != EOF) 

{
if(((c!=0x20)  (character_number==1)) || ((previous_c==0x20) 
(c!=0x20)  (c!=0x0A)) || ((previous_c!=0x20)  (c==0x0D)) || ((c!=0x20) 
(c!=0x0D)  (c!=0x0A)  (previous_c==0x0A)) || ((previous_c!=0x20) 
(previous_c!=0x0A)  (character_number==characters_count)  (c==0x20)))

//1. ((c!=0x20)  (character_number==1))
//2. ((previous_c==0x20)  (c!=0x20)  (c!=0x0A))
//3. ((previous_c!=0x20)  (c==0x0D))
//!((previous_c!=0x0D)  (c==0x0A))
//4. ((c!=0x20)  (c!=0x0D)  (c!=0x0A)  (previous_c==0x0A))
//5. ((previous_c!=0x20)  (previous_c!=0x0A) 
(character_number==characters_count)  (c==0x20))

this_is_the_same_word=0;
else
this_is_the_same_word=1;

if(this_is_the_same_word==0)
{
words_count++;
word_begin_position[words_count]=character_number;

//printf( the begin char is .
%i,word_begin_position[words_count]);
}

//if(character_number==characters_count)
//printf(the last character);
/*
printf( the number of words is %i\n, words_count);
printf( the current character is . %c\n, c);
if(c==0x0D)
printf( the current character is . 0x0D\n);
if(c==0x0A)
printf( the current character is . 0x0A\n);
*/
previous_c=c;
character_number++;
}
fclose(stream);



word_number=1;
character_number=1;

A_count=1;
E_count=1;

stream = fopen (argv[1],r);

//stream2 = fopen (argv[2],w);

while ((c = fgetc(stream)) != EOF) 

{

other_character_printed=0;
if((character_number = word_begin_position[word_number]) 
(character_number = word_begin_position[word_number+1]) )
{
if(((c=='a') || (c=='а') || (c=='A') || (c=='А')) )
{
if(A_count==1)
{
printf(A1);
A_count=2;
other_character_printed=1;
}
else
{
printf(A2);
A_count=1;
other_character_printed=1;
}
}
else
if((other_character_printed==0)  ((c!='е')  (c!='e') 
(c!='Е')  (c!='E')))
{
printf(%c, c);
other_character_printed=1;
}

if((c=='e') || (c=='е') || (c=='Е') || (c=='E'))
{
if(E_count==1)
{
printf(E1);
E_count=2;
other_character_printed=1;
}
else
{
printf(E2);
E_count=1;
other_character_printed=1;
}

}
else
if((other_character_printed==0)  (((c=='a')  (c=='а') 
(c=='A')  (c=='А'
{
printf(%c, c);
other_character_printed=1;
}
}
else
{
A_count=1;
E_count=1;
word_number++;

}

character_number++;
}
fclose(stream);
//printf( the number of words is %i, words_count);



return 0;

}



why other characters representing number are displayed to the screen except
0?
when the input text file is of the cintent:
ARSeNALE 2012 ARSENALE



It is a bug and nothing else! Nowhere in my code is stated to ignore 0



--

[Bug c++/59598] very simple code using file open for read

2013-12-28 Thread denis.v.koles...@safe-mail.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

--- Comment #15 from Denis Kolesnik denis.v.koles...@safe-mail.net ---
the output line is:
A1RSE1NA2LE2 212 A1
should be:
A1RSE1NA2LE2 2012 A1


[Bug fortran/59612] iso_fortran_env segfaults with -fdump-fortran-original

2013-12-28 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59612

--- Comment #4 from janus at gcc dot gnu.org ---
(In reply to janus from comment #3)
 Maybe it would make sense to run the testsuite with -fdump-fortran-original,
 in order to check for further problems:

Does not seem to yield any failures here (with the patch from comment 1
applied).


[Bug c/59615] asm goto output or at least clobbered operands

2013-12-28 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59615

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org ---
But it would warn about it with -Wsign-compare.  You want unsigned r =
(unsigned) a + b; or similar to avoid undefined behavior if there is a
possibility of signed integer overflow.  Anyway, you definitely don't want to
use inline asm in this case, if there is some code GCC doesn't optimize as good
as you'd like to, just report that.


[Bug c++/59598] very simple code using file open for read

2013-12-28 Thread sch...@linux-m68k.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

Andreas Schwab sch...@linux-m68k.org changed:

   What|Removed |Added

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

--- Comment #16 from Andreas Schwab sch...@linux-m68k.org ---
We are not going to debug your code.


[Bug c++/59598] very simple code using file open for read

2013-12-28 Thread denis.v.koles...@safe-mail.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

Denis Kolesnik denis.v.koles...@safe-mail.net changed:

   What|Removed |Added

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

--- Comment #17 from Denis Kolesnik denis.v.koles...@safe-mail.net ---
please specify the reason for your demand? I can not see anything I missed in
my code!!


[Bug c++/59598] very simple code using file open for read

2013-12-28 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #18 from Andrew Pinski pinskia at gcc dot gnu.org ---
Again this is not a place to learn c programming or get help to debug your
code.  This is a place to report bugs against GCC and I don't see a bug here.
There are other places on the internet to get c programming help.


[Bug c/59616] New: OpenMP standard conflict in parallel default clause

2013-12-28 Thread beamesleach at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59616

Bug ID: 59616
   Summary: OpenMP standard conflict in parallel default clause
   Product: gcc
   Version: 4.8.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: beamesleach at gmail dot com

Created attachment 31528
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31528action=edit
MWE exhibiting error in gcc's OMP predetermined sharing

I'm trying to get OpenMP directives to work under both GCC and Intel compilers,
but I've found a conflict, when using `default(none)` on an `omp parallel for`
directive.

I've been reading through relevant sections of the OpenMP 4.0 standard and I
haven't managed to pick out any obvious contradiction in the compilers'
behaviours, but I think the below compiler error makes the least sense and
might also be the easiest to fix:

$ gcc-4.8 test_ompmin.c -o omp -fopenmp -std=c99
test_ompmin.c:15:68: error: 'b' is predetermined 'shared' for 'shared'
 # pragma omp parallel for schedule(static) default(none) shared(a,b,c)
^

test_ompmin.c is attached - a minimal working example designed to test out this
behaviour.

What's interesting, is g++ does not raise this error, only gcc. Neither do icc
or icpc raise the error; these both exhibit the same behaviour as g++ (they
compile test_ompmin.c fine, but raise an error if `b` is omitted from the
`shared` clause). I'm inclined to surmise that this is a bug in gcc's
implementation, as there are no relevant differences between C and C++ in the
OpenMP specification.



Compile commands that succeed:-

 g++-4.8 test_ompmin.c -o omp-gxx -fopenmp
 icc test_ompmin.c -o omp-icc -openmp -std=c99
 icpc test_ompmin.c -o omp-icpc -openmp


-

GCC versions tested:

Mac OS X (Mavericks)
 gcc 4.8.2 (built with Homebrew)

Linux 2.6.35 (Fedora 14)
 gcc 4.5.1 (x86_64-redhat-linux)

-

Below are sections I copied from the OpenMP specification (v4.0.0) that look
relevant:




2.14.1.1 - Data-sharing Attribute Rules for Variables Referenced in a Construct
===

Certain variables and objects have predetermined data-sharing attributes as
follows:

C/C++
-

- Objects with dynamic storage duration are shared.

-  [ nothing specifically mentioning const variables... ]

Variables with predetermined data-sharing attributes may not be listed in
data-sharing attribute clauses, except for the cases listed below. For these
exceptions only, listing a predetermined variable in a data-sharing attribute
clause is allowed and overrides the variable's predetermined data-sharing
attributes.

- [...]

- Variables with `const`-qualified type having no mutable member may be
  listed in a `firstprivate` clause, even if they are static data members.


2.14.3 - Data-Sharing Atribute Clauses
==

2.14.3.1 - `default` clause
---

The `default` clause explicitly determines the data-sharing attributes of
variables that are referenced in a `parallel`, `task` or `teams` construct and
would otherwise be implicitly determined.

The `default(none)` clause requires that each variable that is referenced in
the
construct, and that does not have a predetermined data-sharing attribute, must
have its data-sharing attribute explicitly determined by being listed in a
data-sharing attribute clause.


2.14.3.2 - `shared` clause
--

The `shared` clause declares one or more list items to be shared by tasks
generated by a `parallel`, `task` or `teams` construct.


[Bug c++/59598] very simple code using file open for read

2013-12-28 Thread denis.v.koles...@safe-mail.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

Denis Kolesnik denis.v.koles...@safe-mail.net changed:

   What|Removed |Added

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

--- Comment #19 from Denis Kolesnik denis.v.koles...@safe-mail.net ---
I do not have errors in my core: other characters processed except '0'. This is
a bug!


[Bug c++/59598] very simple code using file open for read

2013-12-28 Thread denis.v.koles...@safe-mail.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

--- Comment #20 from Denis Kolesnik denis.v.koles...@safe-mail.net ---
'0' is not 'a' in 2 languages and not 'e' in 2 languages in both: small or
capital  variants


[Bug c++/59598] very simple code using file open for read

2013-12-28 Thread denis.v.koles...@safe-mail.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

--- Comment #21 from Denis Kolesnik denis.v.koles...@safe-mail.net ---
Even all characters, which are numeric are processed except '0'. This is a bug!
I do not violate eny C++ rules and I do not receive even any messages while
compilation. This is a bug. You can not hide the truth!


[Bug c++/59598] very simple code using file open for read

2013-12-28 Thread denis.v.koles...@safe-mail.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

--- Comment #22 from Denis Kolesnik denis.v.koles...@safe-mail.net ---
I know that this is not a place to report programming problems, but I do not
see errors in my code


[Bug tree-optimization/59617] New: [vectorizer] ICE in vectorizable_mask_load_store with AVX-512F's gathers enabled.

2013-12-28 Thread kirill.yukhin at intel dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59617

Bug ID: 59617
   Summary: [vectorizer] ICE in vectorizable_mask_load_store with
AVX-512F's gathers enabled.
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: kirill.yukhin at intel dot com

Created attachment 31529
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31529action=edit
Reproducer

Hello, I am going to check in a patch, which will
enable AVX-512F new gathers instructions.

New gathers are use mask registers (%kN), while
vectorizable_mask_load_store asserts mask type to be compatible
with operand type.

This fails 416.gamess to build with -mavx512f -Ofast.

Reproducer attached.

Reproduce:
$ gfortran -S -Ofast -mavx512f hss2a.fppized.f

Back trace:
0xbcfc27 vectorizable_mask_load_store
/export/users/kyukhin/gcc/git/gcc/gcc/tree-vect-stmts.c:1901
0xbddf6c vectorizable_call
/export/users/kyukhin/gcc/git/gcc/gcc/tree-vect-stmts.c:2172
0xbe1021 vect_transform_stmt(gimple_statement_base*, gimple_stmt_iterator*,
bool*, _slp_tree*, _slp_instance*)
/export/users/kyukhin/gcc/git/gcc/gcc/tree-vect-stmts.c:7017
0xbe4731 vect_transform_loop(_loop_vec_info*)
/export/users/kyukhin/gcc/git/gcc/gcc/tree-vect-loop.c:6046
0xc00838 vectorize_loops()
/export/users/kyukhin/gcc/git/gcc/gcc/tree-vectorizer.c:476

I'll check my patch in with disabled gathers, so to enable it -
remove `#if 0' in gcc/config/i386/i386.c


[Bug c++/59598] very simple code using file open for read

2013-12-28 Thread ktietz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

Kai Tietz ktietz at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||ktietz at gcc dot gnu.org
 Resolution|--- |INVALID

--- Comment #23 from Kai Tietz ktietz at gcc dot gnu.org ---
First, don't be so self-righteous. Your program has more then one bug ... for
sure you need to learn this language better ...  within this code there are at
least two major logical failures, and one serious array out-of-bounds access on
uninitialized data, and your coding-style is simply poor.  The C language isn't
Lisp, you don't need that much frames, neither you don't need to repeat within
on logical expression the prior expression ... it just makes code unreadable
... anyway

I won't tell you your bugs, as I am assuming your are a rooky student trying to
learn C and I don't want to destroy the sense of your teachers lesson.

So I close this bug as invalid, as it is ...


[Bug c++/59598] very simple code using file open for read

2013-12-28 Thread ktietz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

Kai Tietz ktietz at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |WONTFIX

--- Comment #27 from Kai Tietz ktietz at gcc dot gnu.org ---
.


[Bug c++/59598] very simple code using file open for read

2013-12-28 Thread ktietz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

Kai Tietz ktietz at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #25 from Kai Tietz ktietz at gcc dot gnu.org ---
It is none.


[Bug c++/59598] very simple code using file open for read

2013-12-28 Thread denis.v.koles...@safe-mail.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

Denis Kolesnik denis.v.koles...@safe-mail.net changed:

   What|Removed |Added

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

--- Comment #26 from Denis Kolesnik denis.v.koles...@safe-mail.net ---
My code has no errors. It is a bug.


[Bug c++/59598] very simple code using file open for read

2013-12-28 Thread denis.v.koles...@safe-mail.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

Denis Kolesnik denis.v.koles...@safe-mail.net changed:

   What|Removed |Added

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

--- Comment #24 from Denis Kolesnik denis.v.koles...@safe-mail.net ---
Mister,



I have had tragedies in my life, that is why I do not want to make politica
with all. It is a bug and I described why.


[Bug c++/59598] very simple code using file open for read

2013-12-28 Thread denis.v.koles...@safe-mail.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

Denis Kolesnik denis.v.koles...@safe-mail.net changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|WONTFIX |---

--- Comment #28 from Denis Kolesnik denis.v.koles...@safe-mail.net ---
commenting gives no change:



//int spec_symbol[7]={0xAE,0xBB,0xAB,0xA9,0x22,0x2F,0x27};


//int eof_symbol[2]={0x0D,0x0A};



other the only one array is declared fully correct as stated at C How to
Program H.M. Deitel Nove University Deitel and Associates P. J. Deitel Deitel
Associates


[Bug c++/59598] very simple code using file open for read

2013-12-28 Thread denis.v.koles...@safe-mail.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

--- Comment #29 from Denis Kolesnik denis.v.koles...@safe-mail.net ---
My code style has nothing to do with it. I even do not tell, that I do not
fully like the interface of this site!!


[Bug c++/59598] very simple code using file open for read

2013-12-28 Thread denis.v.koles...@safe-mail.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

--- Comment #30 from Denis Kolesnik denis.v.koles...@safe-mail.net ---
I use the elements of the array fully correct: 
int word_begin_position[3000];


[Bug c++/59598] very simple code using file open for read

2013-12-28 Thread denis.v.koles...@safe-mail.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

--- Comment #31 from Denis Kolesnik denis.v.koles...@safe-mail.net ---
Your arguments are based on what?? I argued my arguments!


[Bug c++/59598] very simple code using file open for read

2013-12-28 Thread ktietz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

Kai Tietz ktietz at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #32 from Kai Tietz ktietz at gcc dot gnu.org ---
(In reply to Denis Kolesnik from comment #29)
 My code style has nothing to do with it. I even do not tell, that I do not
 fully like the interface of this site!!

Well, you coding-style and ability is poor.  Believe me. I wasn't referring to
those none-used arrays.

Think about this if-line in your second sample.  It contains the out of bounds
access:

...
if((character_number = word_begin_position[word_number]) 
(character_number = word_begin_position[word_number+1]) )
...

What is word_begin_position[word_number+1]???  Imagine you are within the final
word in your file.  The value at this position isn't initialized and therefore
contains random number.
Btw here in this line is also one of the logical failures you made.  Why your
if-condition includes first character of next word?

So you mights see, or I fear you won't, that your program has more then one bug
and therefore this is a invalid bug-report of gcc.


[Bug c/59618] New: internal compiler error: Killed (program as)

2013-12-28 Thread andrewh at inmarket dot com.au
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59618

Bug ID: 59618
   Summary: internal compiler error: Killed (program as)
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: andrewh at inmarket dot com.au

Compiling large file:
gcc: internal compiler error: Killed (program as)
Tried with gcc-4.6 i386 (Linux Mint 13 32-bit) and then gcc-4.8 (Linux Mint 16
64-bit compile with -m32)
Same problem. Source file compiles with gcc-4.7.1 ARM and with mingw32 4.8.1
(Win32)

Zip contains:
1/ gccver.txt - the full gcc -v output
2/ i_system.i - the source file preprocessor output
3/ makeout.txt - the full command line and its output


[Bug c/59618] internal compiler error: Killed (program as)

2013-12-28 Thread andrewh at inmarket dot com.au
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59618

--- Comment #1 from inmarket andrewh at inmarket dot com.au ---
Created attachment 31530
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31530action=edit
All files except i_system.i

All files except i_system.i


[Bug c/59618] internal compiler error: Killed (program as)

2013-12-28 Thread andrewh at inmarket dot com.au
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59618

--- Comment #2 from inmarket andrewh at inmarket dot com.au ---
Created attachment 31531
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31531action=edit
Part 3 of 3 for i_system.i

Compressed with 7zip
After extraction combine parts with:
 cat i_system.i-part1 i_system.i-part2 i_system.i-part3  i_system.i


[Bug c/59618] internal compiler error: Killed (program as)

2013-12-28 Thread andrewh at inmarket dot com.au
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59618

--- Comment #3 from inmarket andrewh at inmarket dot com.au ---
Created attachment 31532
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31532action=edit
Part 2 of 3 for i_system.i

Compressed with 7zip
After extraction combine parts with:
 cat i_system.i-part1 i_system.i-part2 i_system.i-part3  i_system.i


[Bug c/59618] internal compiler error: Killed (program as)

2013-12-28 Thread andrewh at inmarket dot com.au
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59618

--- Comment #4 from inmarket andrewh at inmarket dot com.au ---
Created attachment 31533
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31533action=edit
Part 1 of 3 for i_system.i

Compressed with 7zip
After extraction combine parts with:
 cat i_system.i-part1 i_system.i-part2 i_system.i-part3  i_system.i


[Bug c/59619] New: gstaudiotestsrc.c:479:1: error: unrecognizable insn: DEFINE_SQUARE (int16, 32767.0);

2013-12-28 Thread biergaizi2009 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59619

Bug ID: 59619
   Summary: gstaudiotestsrc.c:479:1: error: unrecognizable insn:
DEFINE_SQUARE (int16, 32767.0);
   Product: gcc
   Version: 4.8.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: biergaizi2009 at gmail dot com

mips64el-unknown-linux-gnu-gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../..  
-save-temps -march=loongson2f -mplt -Wa,-mfix-loongson2f-nop -pipe
-fomit-frame-pointer -mno-branch-likely -pthread -I/usr/include/glib-2.0
-I/usr/lib32/glib-2.0/include -pthread -I/usr/include/gstreamer-0.10
-I/usr/include/glib-2.0 -I/usr/lib32/glib-2.0/include -I/usr/include/libxml2 
-DG_THREADS_MANDATORY -DG_DISABLE_CAST_CHECKS -DG_DISABLE_ASSERT -Wall
-Wdeclaration-after-statement -Wvla -Wpointer-arith -Wmissing-declarations
-Wmissing-prototypes -Wredundant-decls -Wundef -Wwrite-strings
-Wformat-nonliteral -Wformat-security -Winit-self -Wmissing-include-dirs
-Waddress -Waggregate-return -Wno-multichar -Wnested-externs   -pthread
-I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0
-I/usr/lib32/glib-2.0/include -I/usr/include/libxml2  -O2 -march=loongson2f
-mplt -Wa,-mfix-loongson2f-nop -pipe -fomit-frame-pointer -mno-branch-likely -c
-o libgstaudiotestsrc_la-gstaudiotestsrc.lo `test -f 'gstaudiotestsrc.c' ||
echo './'`gstaudiotestsrc.c
mips64el-unknown-linux-gnu-gcc: warning: -pipe ignored because -save-temps
specified
gstaudiotestsrc.c: In function ‘gst_audio_test_src_create_square_int16’:
gstaudiotestsrc.c:479:1: error: unrecognizable insn:
 DEFINE_SQUARE (int16, 32767.0);
 ^  
(insn 106 105 107 8 (set (reg:SI 284)   
(if_then_else:SI (ne:CC (reg:CC 67 $fcc0)   
(const_int 0 [0]))  
(reg:SI 249 [ iftmp.184 ])  
(reg:SI 251 [ iftmp.184 ]))) -1 
 (nil)) 
gstaudiotestsrc.c:479:1: internal compiler error: in extract_insn, at
recog.c:2154 
Please submit a full bug report,
with preprocessed source if appropriate.

[Bug c/59620] New: gstaudiotestsrc.c:479:1: error: unrecognizable insn: DEFINE_SQUARE (int16, 32767.0);

2013-12-28 Thread biergaizi2009 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59620

Bug ID: 59620
   Summary: gstaudiotestsrc.c:479:1: error: unrecognizable insn:
DEFINE_SQUARE (int16, 32767.0);
   Product: gcc
   Version: 4.8.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: biergaizi2009 at gmail dot com

mips64el-unknown-linux-gnu-gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../..  
-save-temps -march=loongson2f -mplt -Wa,-mfix-loongson2f-nop -pipe
-fomit-frame-pointer -mno-branch-likely -pthread -I/usr/include/glib-2.0
-I/usr/lib32/glib-2.0/include -pthread -I/usr/include/gstreamer-0.10
-I/usr/include/glib-2.0 -I/usr/lib32/glib-2.0/include -I/usr/include/libxml2 
-DG_THREADS_MANDATORY -DG_DISABLE_CAST_CHECKS -DG_DISABLE_ASSERT -Wall
-Wdeclaration-after-statement -Wvla -Wpointer-arith -Wmissing-declarations
-Wmissing-prototypes -Wredundant-decls -Wundef -Wwrite-strings
-Wformat-nonliteral -Wformat-security -Winit-self -Wmissing-include-dirs
-Waddress -Waggregate-return -Wno-multichar -Wnested-externs   -pthread
-I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0
-I/usr/lib32/glib-2.0/include -I/usr/include/libxml2  -O2 -march=loongson2f
-mplt -Wa,-mfix-loongson2f-nop -pipe -fomit-frame-pointer -mno-branch-likely -c
-o libgstaudiotestsrc_la-gstaudiotestsrc.lo `test -f 'gstaudiotestsrc.c' ||
echo './'`gstaudiotestsrc.c
mips64el-unknown-linux-gnu-gcc: warning: -pipe ignored because -save-temps
specified
gstaudiotestsrc.c: In function ‘gst_audio_test_src_create_square_int16’:
gstaudiotestsrc.c:479:1: error: unrecognizable insn:
 DEFINE_SQUARE (int16, 32767.0);
 ^  
(insn 106 105 107 8 (set (reg:SI 284)   
(if_then_else:SI (ne:CC (reg:CC 67 $fcc0)   
(const_int 0 [0]))  
(reg:SI 249 [ iftmp.184 ])  
(reg:SI 251 [ iftmp.184 ]))) -1 
 (nil)) 
gstaudiotestsrc.c:479:1: internal compiler error: in extract_insn, at
recog.c:2154 
Please submit a full bug report,
with preprocessed source if appropriate.

[Bug c/59620] gstaudiotestsrc.c:479:1: error: unrecognizable insn: DEFINE_SQUARE (int16, 32767.0);

2013-12-28 Thread biergaizi2009 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59620

--- Comment #1 from Tom Li biergaizi2009 at gmail dot com ---
Created attachment 31534
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31534action=edit
preprocessed source


[Bug c/59620] gstaudiotestsrc.c:479:1: error: unrecognizable insn: DEFINE_SQUARE (int16, 32767.0);

2013-12-28 Thread biergaizi2009 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59620

--- Comment #2 from Tom Li biergaizi2009 at gmail dot com ---
Using built-in specs.
COLLECT_GCC=/usr/mips64el-unknown-linux-gnu/gcc-bin/4.8.2/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/mips64el-unknown-linux-gnu/4.8.2/lto-wrapper
Target: mips64el-unknown-linux-gnu
Configured with: /var/tmp/portage/sys-devel/gcc-4.8.2/work/gcc-4.8.2/configure
--prefix=/usr --bindir=/usr/mips64el-unknown-linux-gnu/gcc-bin/4.8.2
--includedir=/usr/lib/gcc/mips64el-unknown-linux-gnu/4.8.2/include
--datadir=/usr/share/gcc-data/mips64el-unknown-linux-gnu/4.8.2
--mandir=/usr/share/gcc-data/mips64el-unknown-linux-gnu/4.8.2/man
--infodir=/usr/share/gcc-data/mips64el-unknown-linux-gnu/4.8.2/info
--with-gxx-include-dir=/usr/lib/gcc/mips64el-unknown-linux-gnu/4.8.2/include/g++-v4
--host=mips64el-unknown-linux-gnu --build=mips64el-unknown-linux-gnu
--disable-altivec --disable-fixed-point --without-cloog --disable-lto
--enable-nls --without-included-gettext --with-system-zlib --enable-obsolete
--disable-werror --enable-secureplt --enable-multilib --enable-libmudflap
--disable-libssp --disable-libgomp
--with-python-dir=/share/gcc-data/mips64el-unknown-linux-gnu/4.8.2/python
--enable-checking=release --disable-libgcj --enable-libstdcxx-time
--disable-libquadmath --with-abi=n32 --enable-languages=c,c++ --enable-shared
--enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu
--with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.8.2 p1.0,
pie-0.5.8'
Thread model: posix
gcc version 4.8.2 (Gentoo 4.8.2 p1.0, pie-0.5.8)


Adjust -fdump-ada-spec after C++ decloning patch

2013-12-28 Thread Eric Botcazou
The C++ decloning patch revealed that the -fdump-ada-spec code handling 
constructors and destructors was too fragile.  This patch revamps it.

Tested on x86_64-suse-linux, applied on the mainline.


2013-12-28  Eric Botcazou  ebotca...@adacore.com

c-family/
* c-ada-spec.c (print_constructor): New function.
(print_destructor): Retrieve the origin of the destructor.
(print_ada_declaration): Revamp handling of constructors/destructors.


-- 
Eric Botcazou
Index: c-family/c-ada-spec.c
===
--- c-family/c-ada-spec.c	(revision 206166)
+++ c-family/c-ada-spec.c	(working copy)
@@ -2521,20 +2521,34 @@ dump_nested_types (pretty_printer *buffe
   TREE_VISITED (t) = 1;
 }
 
+/* Dump in BUFFER constructor spec corresponding to T.  */
+
+static void
+print_constructor (pretty_printer *buffer, tree t)
+{
+  tree decl_name = DECL_NAME (DECL_ORIGIN (t));
+
+  pp_string (buffer, New_);
+  pp_ada_tree_identifier (buffer, decl_name, t, false);
+}
+
 /* Dump in BUFFER destructor spec corresponding to T.  */
 
 static void
 print_destructor (pretty_printer *buffer, tree t)
 {
-  const char *s = IDENTIFIER_POINTER (DECL_NAME (t));
+  tree decl_name = DECL_NAME (DECL_ORIGIN (t));
+  const char *s = IDENTIFIER_POINTER (decl_name);
 
   if (*s == '_')
-for (s += 2; *s != ' '; s++)
-  pp_character (buffer, *s);
+{
+  for (s += 2; *s != ' '; s++)
+	pp_character (buffer, *s);
+}
   else
 {
   pp_string (buffer, Delete_);
-  pp_ada_tree_identifier (buffer, DECL_NAME (t), t, false);
+  pp_ada_tree_identifier (buffer, decl_name, t, false);
 }
 }
 
@@ -2785,7 +2799,7 @@ print_ada_declaration (pretty_printer *b
 }
   else if (TREE_CODE (t) == FUNCTION_DECL)
 {
-  bool is_function = true, is_abstract_class = false;
+  bool is_function, is_abstract_class = false;
   bool is_method = TREE_CODE (TREE_TYPE (t)) == METHOD_TYPE;
   tree decl_name = DECL_NAME (t);
   int prev_in_function = in_function;
@@ -2805,24 +2819,21 @@ print_ada_declaration (pretty_printer *b
 	  is_copy_constructor = cpp_check (t, IS_COPY_CONSTRUCTOR);
 	}
 
-  /* Skip __comp_dtor destructor which is redundant with the '~class()'
-	 destructor.  */
-  if (is_destructor
-	   !strncmp (IDENTIFIER_POINTER (decl_name), __comp, 6))
-	return 0;
-
   /* Skip copy constructors: some are internal only, and those that are
 	 not cannot be called easily from Ada anyway.  */
   if (is_copy_constructor)
 	return 0;
 
-  /* If this function has an entry in the dispatch table, we cannot
-	 omit it.  */
-  if (!DECL_VINDEX (t)  *IDENTIFIER_POINTER (decl_name) == '_')
+  if (is_constructor || is_destructor)
 	{
-	  if (IDENTIFIER_POINTER (decl_name)[1] == '_')
+	  /* Only consider constructors/destructors for complete objects.  */
+	  if (strncmp (IDENTIFIER_POINTER (decl_name), __comp, 6) != 0)
 	return 0;
+	}
 
+  /* If this function has an entry in the vtable, we cannot omit it.  */
+  else if (!DECL_VINDEX (t)  *IDENTIFIER_POINTER (decl_name) == '_')
+	{
 	  INDENT (spc);
 	  pp_string (buffer, --  skipped func );
 	  pp_string (buffer, IDENTIFIER_POINTER (decl_name));
@@ -2832,19 +2843,22 @@ print_ada_declaration (pretty_printer *b
   if (need_indent)
 	INDENT (spc);
 
-  if (is_constructor)
-	pp_string (buffer, function New_);
-  else if (VOID_TYPE_P (TREE_TYPE (TREE_TYPE (t
+  if (VOID_TYPE_P (TREE_TYPE (TREE_TYPE (t)))  !is_constructor)
 	{
-	  is_function = false;
 	  pp_string (buffer, procedure );
+	  is_function = false;
 	}
   else
-	pp_string (buffer, function );
+	{
+	  pp_string (buffer, function );
+	  is_function = true;
+	}
 
   in_function = is_function;
 
-  if (is_destructor)
+  if (is_constructor)
+	print_constructor (buffer, t);
+  else if (is_destructor)
 	print_destructor (buffer, t);
   else
 	dump_ada_decl_name (buffer, t, false);
@@ -2856,16 +2870,9 @@ print_ada_declaration (pretty_printer *b
   if (is_function)
 	{
 	  pp_string (buffer,  return );
-
-	  if (is_constructor)
-	{
-	  dump_ada_decl_name (buffer, t, false);
-	}
-	  else
-	{
-	  dump_generic_ada_node
-		(buffer, TREE_TYPE (TREE_TYPE (t)), type, spc, false, true);
-	}
+	  tree ret_type
+	= is_constructor ? DECL_CONTEXT (t) : TREE_TYPE (TREE_TYPE (t));
+	  dump_generic_ada_node (buffer, ret_type, type, spc, false, true);
 	}
 
   if (is_constructor
@@ -2877,7 +2884,7 @@ print_ada_declaration (pretty_printer *b
 	  for (tmp = TYPE_METHODS (type); tmp; tmp = TREE_CHAIN (tmp))
 	if (cpp_check (tmp, IS_ABSTRACT))
 	  {
-		is_abstract_class = 1;
+		is_abstract_class = true;
 		break;
 	  }
 	}
@@ -2896,8 +2903,8 @@ print_ada_declaration (pretty_printer *b
 
   if (is_constructor)
 	{
-	  pp_string (buffer, pragma CPP_Constructor (New_);
-	  dump_ada_decl_name (buffer, t, false);
+	  pp_string (buffer, pragma 

Document -fada-spec-parent

2013-12-28 Thread Eric Botcazou
Tested on x86_64-suse-linux, applied on the mainline and 4.8 branch.


2013-12-28  Eric Botcazou  ebotca...@adacore.com

* doc/invoke.texi (output file options): Document -fada-spec-parent.


-- 
Eric Botcazou
Index: doc/invoke.texi
===
--- doc/invoke.texi	(revision 206166)
+++ doc/invoke.texi	(working copy)
@@ -161,7 +161,7 @@ in the following sections.
 -pipe  -pass-exit-codes  @gol
 -x @var{language}  -v  -###  --help@r{[}=@var{class}@r{[},@dots{}@r{]]}  --target-help  @gol
 --version -wrapper @@@var{file} -fplugin=@var{file} -fplugin-arg-@var{name}=@var{arg}  @gol
--fdump-ada-spec@r{[}-slim@r{]} -fada-spec-parent=@var{arg} -fdump-go-spec=@var{file}}
+-fdump-ada-spec@r{[}-slim@r{]} -fada-spec-parent=@var{unit} -fdump-go-spec=@var{file}}
 
 @item C Language Options
 @xref{C Dialect Options,,Options Controlling C Dialect}.
@@ -1518,10 +1518,15 @@ for the plugin called @var{name}.
 
 @item -fdump-ada-spec@r{[}-slim@r{]}
 @opindex fdump-ada-spec
-For C and C++ source and include files, generate corresponding Ada
-specs. @xref{Generating Ada Bindings for C and C++ headers,,, gnat_ugn,
+For C and C++ source and include files, generate corresponding Ada specs.
+@xref{Generating Ada Bindings for C and C++ headers,,, gnat_ugn,
 GNAT User's Guide}, which provides detailed documentation on this feature.
 
+@item -fada-spec-parent=@var{unit}
+@opindex fada-spec-parent
+In conjunction with @option{-fdump-ada-spec@r{[}-slim@r{]}} above, generate
+Ada specs as child units of parent @var{unit}.
+
 @item -fdump-go-spec=@var{file}
 @opindex fdump-go-spec
 For input files in any language, generate corresponding Go


Re: PATCH: PR target/59605: Create jump_around_label only if it doesn't exist

2013-12-28 Thread Jakub Jelinek
On Thu, Dec 26, 2013 at 06:31:10PM -0800, H.J. Lu wrote:
 2013-12-26   H.J. Lu  hongjiu...@intel.com
 
   PR target/59605
   * config/i386/i386.c (ix86_expand_set_or_movmem): Create
   jump_around_label only if it doesn't exist.
 
 gcc/testsuite/
 
 2013-12-26   H.J. Lu  hongjiu...@intel.com
 
   PR target/59605
   * gcc.dg/pr59605.c: New test.

This is ok, thanks.

Jakub


libgo patch committed: Work around Solaris oddity

2013-12-28 Thread Ian Lance Taylor
If one thread does a connect to localhost on a non-blocking socket such
that the connect fails with EINPROGRESS, and then another thread accepts
the connection and closes the accepted socket, and then the first thread
does the connect again, that connect should succeed and return a socket
whose other end is closed.  For some reason, on Solaris, the second
connect fails with an error of EINVAL, a possibility that is not
documented on the connect man page.  This case arises in some of the
libgo testsuite.  This patch works around the problem by testing for
this possibility on Solaris.  The same patch has been applied to the
master Go repository.  Bootstrapped and ran Go testsuite on
x86_64-unknown-linux-gnu, which I admit proves little for a
Solaris-specific patch.  I also tested the specific patch on
i386-pc-solaris2.11, where it fixes a testsuite failure.  Committed to
mainline and 4.8 branch.

Ian

diff -r 0d4f83bb938b src/pkg/net/fd_unix.go
--- a/src/pkg/net/fd_unix.go	Sat Dec 28 20:33:05 2013 +1100
+++ b/src/pkg/net/fd_unix.go	Sat Dec 28 09:37:28 2013 -0800
@@ -80,6 +80,16 @@
 		if err == nil || err == syscall.EISCONN {
 			break
 		}
+
+		// On Solaris we can see EINVAL if the socket has
+		// already been accepted and closed by the server.
+		// Treat this as a successful connection--writes to
+		// the socket will see EOF.  For details and a test
+		// case in C see http://golang.org/issue/6828.
+		if runtime.GOOS == solaris  err == syscall.EINVAL {
+			break
+		}
+
 		if err != syscall.EINPROGRESS  err != syscall.EALREADY  err != syscall.EINTR {
 			return err
 		}


Re: [PATCH i386 7/8] [AVX-512] Add tests.

2013-12-28 Thread Kirill Yukhin
Hello,
On 18 Dec 17:08, Uros Bizjak wrote:
 Whoa.
 
 --- a/gcc/config/i386/sse.md
 +++ b/gcc/config/i386/sse.md
 
 No, not in this patch.
Okay, moved it to 5/8 patch.

--
Thanks, K


[Patch, i386] Separate Intel processor with expanded ISA

2013-12-28 Thread Allan Sandfeld Jensen
The function dispatcher might currently choose functions declared with 
target(arch=ivybridge) on a Sandy Bridge CPU. This happens because the 
function is only detected as sandybridge when generated. The attached patch 
detects Westmere, Ivybridge and Broadwell processors based on new ISAs they 
support.

Regards
`Allan
Index: gcc/ChangeLog
===
--- gcc/ChangeLog	(revision 206233)
+++ gcc/ChangeLog	(working copy)
@@ -1,3 +1,9 @@
+2013-12-29  Allan Sandfeld Jensen  sandf...@kde.org
+
+	* config/i386/i386.c (get_builtin_code_for_version): Separate
+	Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
+	Broadwell from Haswell. 
+
 2013-12-28  Eric Botcazou  ebotca...@adacore.com
 
 	* doc/invoke.texi (output file options): Document -fada-spec-parent.
Index: gcc/config/i386/i386.c
===
--- gcc/config/i386/i386.c	(revision 206233)
+++ gcc/config/i386/i386.c	(working copy)
@@ -30030,18 +30005,27 @@
 	  priority = P_PROC_SSSE3;
 	  break;
 	case PROCESSOR_NEHALEM:
-	  /* We translate arch=corei7 and arch=nehelam to
-		 corei7 so that it will be mapped to M_INTEL_COREI7
-		 as cpu type to cover all M_INTEL_COREI7_XXXs.  */
-	  arg_str = corei7;
+	  if (new_target-x_ix86_isa_flags  OPTION_MASK_ISA_AES)
+		arg_str = westmere;
+	  else
+		/* We translate arch=corei7 and arch=nehelam to
+		   corei7 so that it will be mapped to M_INTEL_COREI7
+		   as cpu type to cover all M_INTEL_COREI7_XXXs.  */
+		arg_str = corei7;
 	  priority = P_PROC_SSE4_2;
 	  break;
 	case PROCESSOR_SANDYBRIDGE:
-	  arg_str = sandybridge;
+	  if (new_target-x_ix86_isa_flags  OPTION_MASK_ISA_F16C)
+		arg_str = ivybridge;
+	  else
+		arg_str = sandybridge;
 	  priority = P_PROC_AVX;
 	  break;
 	case PROCESSOR_HASWELL:
-	  arg_str = haswell;
+	  if (new_target-x_ix86_isa_flags  OPTION_MASK_ISA_ADX)
+		arg_str = broadwell;
+	  else
+		arg_str = haswell;
 	  priority = P_PROC_AVX2;
 	  break;
 	case PROCESSOR_BONNELL: