missing spec?

2007-10-18 Thread skaller
I built SVN gcc and installed it in the default place:

[EMAIL PROTECTED]:~$ gcc -fopenmp combined_mp.c -o comb
gcc: libgomp.spec: No such file or directory
[EMAIL PROTECTED]:~$ gcc --version
gcc (GCC) 4.3.0 20071014 (experimental)

Am i doing something wrong or is this a bug in the install script?

-- 
John Skaller skaller at users dot sf dot net
Felix, successor to C++: http://felix.sf.net


Re: gomp slowness

2007-10-18 Thread Biplab Kumar Modak

skaller wrote:


OK, attached.



Hi skaller,

I think I've wasted my money. They do not ship OpenMP headers and libs 
with Standard Edition. :(


Best Regards,

Biplab



Re: gomp slowness

2007-10-18 Thread Biplab Kumar Modak

Hi All,

I did some tests with GCC-4.2.2 (MinGW build) and the source code 
provided by skaller.


The compilation log is as follows.

-- Build: Release in Test ---
[ 50.0%] mingw32-gcc.exe -Wall -fexceptions -fopenmp  -O2 
-IC:\MinGW\include  -c C:\Projects\Test\combined_mp.c -o 
obj\Release\combined_mp.o

C:\Projects\Test\combined_mp.c: In function 'main':
C:\Projects\Test\combined_mp.c:77: warning: 'sum' is used uninitialized 
in this function
[100.0%] mingw32-g++.exe -LC:\MinGW\lib  -o bin\Release\Test.exe 
obj\Release\combined_mp.o   -s  -lgomp -lpthread

Output size is 16.50 KB
Process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 1 warnings


Here is the result of two sample runs.

C:\Projects\Test\bin\Releaseset OMP_NUM_THREADS=1

C:\Projects\Test\bin\Releasetest
e started at 0
e done at 2859
pi started at 2859
pi done at 12390
integration started at 12390
integration done at 26234
Values: e*pi = 8.539734,  integral = 9.67
Total elapsed time: 26.234 seconds

C:\Projects\Test\bin\Releaseset OMP_NUM_THREADS=2

C:\Projects\Test\bin\Releasetest
e started at 0
pi started at 0
e done at 828
integration started at 828
integration done at 8015
pi done at 8703
integration started at 8703
Values: e*pi = 9.267763,  integral = 9.67
Total elapsed time: 15.609 seconds

C:\Projects\Test\bin\Release


This indicates that GOMP is working well. :)

My system specs:

Windows XP SP2, 1GB RAM, [EMAIL PROTECTED] GHz (Core Duo)
Compiler: GCC-4.2.2 (MinGW build)


Best Regards,

Biplab

http://biplab.in



indirect memory op in SSA

2007-10-18 Thread Fran Baena
Hi!

i am trying to implement the SSA form, inspirated in GCC way. I have
found problems in processing indirect memory operations like arrays,
structures and pointers.
My questions are: are nodes STRUCT_FIELD_TAG, NAME_MEMORY_TAG,
SYMBOL_MEMORY_TAG used for that purpose? and, where i can find
documentation about their use within the translation process to SSA?

Thanks.


Re: gomp slowness

2007-10-18 Thread Jakub Jelinek
On Thu, Oct 18, 2007 at 02:47:44PM +1000, skaller wrote:
 
 On Thu, 2007-10-18 at 12:02 +0800, Biplab Kumar Modak wrote:
  skaller wrote:
   On Wed, 2007-10-17 at 18:14 +0100, Biagio Lucini wrote:
   skaller wrote:
   
   It would be interesting to try with another compiler. Do you have access 
   to another OpenMP-enabled compiler?
   
   Unfortunately no, unless MSVC++ in VS2005 has openMP.
   I have an Intel licence but they're too tied up with commerical
   vendors and it doesn't work on Ubuntu (it's built for Fedora and Suse).
   
  If possible, you can post the source code. I've a MSVC 2005 license (I 
  bought it to get OpenMP working with it).
  
  I can then give it a try. I have a dual core PC. :)
 
 OK, attached.

On LU_mp.c according to oprofile more than 95% of time is spent in the inner
loop, rather than any kind of waiting.  On quad core with OMP_NUM_THREADS=4
all 4 threads eat 99.9% of CPU and the inner loop is identical between
OMP_NUM_THREADS=1 and OMP_NUM_THREADS=4.  I believe this benchmark is highly
memory bound rather than CPU intensive, so the relative difference between
OMP_NUM_THREADS={1,2,4} is very likely not in what GCC or other OpenMP
implementation does, but in what kind of cache patterns it generates.

OMP_NUM_THREADS=1 /tmp/LU_mp; OMP_NUM_THREADS=2 GOMP_CPU_AFFINITY=0,1 
/tmp/LU_mp; \
OMP_NUM_THREADS=2 GOMP_CPU_AFFINITY=0,2 /tmp/LU_mp; OMP_NUM_THREADS=4 /tmp/LU_mp
Completed decomposition in 4.830 seconds
Completed decomposition in 5.970 seconds
Completed decomposition in 9.140 seconds
Completed decomposition in 11.480 seconds

shows this quite clearly.  This Intel quad core CPU shares 4MB L2 cache between
core 0 and 1 and between core 2 and 3.  So, if you run the two threads on
cores sharing the same L2 cache, it is only slightly slower than one thread,
while running it on cores with different L2 caches shows a huge slowdown.

So, I very much doubt you'd get much better results with other OpenMP
implementations.  I believe how the 3 arrays are layed out on the stack
is what really matters most for this case, the synchronization overhead is
in the noise.

Jakub


Re: gomp slowness

2007-10-18 Thread Tim Prince

skaller wrote:

On Thu, 2007-10-18 at 12:02 +0800, Biplab Kumar Modak wrote:
  

skaller wrote:


On Wed, 2007-10-17 at 18:14 +0100, Biagio Lucini wrote:
  

skaller wrote:

It would be interesting to try with another compiler. Do you have access 
to another OpenMP-enabled compiler?


Unfortunately no, unless MSVC++ in VS2005 has openMP.
I have an Intel licence but they're too tied up with commerical
vendors and it doesn't work on Ubuntu (it's built for Fedora and Suse).

  
If possible, you can post the source code. I've a MSVC 2005 license (I 
bought it to get OpenMP working with it).


I can then give it a try. I have a dual core PC. :)



OK, attached.

  
I don't know of any OpenMP compiler which would correct the nesting of 
parallel loops in your LU.  I have assumed that OpenMP doesn't allow 
such optimization; you have to get it right yourself.


Re: gomp slowness

2007-10-18 Thread skaller

On Thu, 2007-10-18 at 06:00 -0700, Tim Prince wrote:
 skaller wrote:

 I don't know of any OpenMP compiler which would correct the nesting of 
 parallel loops in your LU.  I have assumed that OpenMP doesn't allow 
 such optimization; you have to get it right yourself.

Can you explain? This code was taken from a *tutorial* on OpenMP:

http://kallipolis.com/openmp/2.html

-- 
John Skaller skaller at users dot sf dot net
Felix, successor to C++: http://felix.sf.net


Re: gomp slowness

2007-10-18 Thread skaller

On Thu, 2007-10-18 at 13:04 +0200, Jakub Jelinek wrote:
 On Thu, Oct 18, 2007 at 02:47:44PM +1000, skaller wrote:

 On LU_mp.c according to oprofile more than 95% of time is spent in the inner
 loop, rather than any kind of waiting.  On quad core with OMP_NUM_THREADS=4
 all 4 threads eat 99.9% of CPU and the inner loop is identical between
 OMP_NUM_THREADS=1 and OMP_NUM_THREADS=4.  I believe this benchmark is highly
 memory bound rather than CPU intensive, so the relative difference between
 OMP_NUM_THREADS={1,2,4} is very likely not in what GCC or other OpenMP
 implementation does, but in what kind of cache patterns it generates.

This does seem quite plausible. However LU is a typical
numerical routine. This seems to limit the utility of
shared memory parallelism quite significantly: seems like
you're better off copying the matrix to another computer,
just to get two memory buses, since that's the bottleneck.

Has anyone got any comparative data on the libstdc++ parallel
model STL code?


-- 
John Skaller skaller at users dot sf dot net
Felix, successor to C++: http://felix.sf.net


Re: Problem with too many virtual operands ( tree-ssa-operands.c:484)

2007-10-18 Thread Andrew MacLeod

Pranav Bhandarkar wrote:

Hi,
In the attached testcase due to an ivopts modification, while
rewriting the uses the compiler crashes in tree-ssa-operands.c because
the number of virtual operands of the modified stmt is much greater
than the thresholds controlled by OP_SIZE_{1,2,3} in
tree-ssa-operands.c.

I went through
http://gcc.gnu.org/ml/gcc-patches/2006-12/msg01269.html

and it seemed to me that these values (OP_SIZE etc) have been quite
experimentally set. I am wondering If these values should be
increased.

  
They are 'experimental', but the reason is to catch cases like this to 
examine.  MEM-SSA was suppose to eliminate excessively large numbers of 
virtual operands. I haven't had a chance to look at this yet, perhaps 
Diego will get a chance before I do since I'm traveling and tied up the 
rest of this week.


If it turns out there isn't something mem-ssa should be doing 
differently for this case to reduce the number of operands, we can 
either increase the thresholds, or add a 4th one for these excessive 
cases.  Im hoping there is a different solution since large numbers of 
virtuals cause lots of compile time issues. I believe the previous times 
we've triggered this (Its been a while), we made changes to the virtual 
operand processing to resolve it and save memory/compile time.


Andrew


Re: Static stack analysis

2007-10-18 Thread Robert Dewar

Daniel, Michael J wrote:
Hi! 


I'm interested in static stack analysis tools.
Either using someone else's or creating.

Where would I find existing tools?
Where would I find existing contracter software developers?

michael


AdaCore has a tool called gnatstack. Check with AdaCore
for details.



Re: gomp slowness

2007-10-18 Thread tim prince

skaller wrote:

On Thu, 2007-10-18 at 06:00 -0700, Tim Prince wrote:
  

skaller wrote:



  
I don't know of any OpenMP compiler which would correct the nesting of 
parallel loops in your LU.  I have assumed that OpenMP doesn't allow 
such optimization; you have to get it right yourself.



Can you explain? This code was taken from a *tutorial* on OpenMP:

http://kallipolis.com/openmp/2.html

  
Did they show your version somewhere as an example of what not to do?  
In the page you referenced, they appear to have the correct loop nesting.


RE: gomp slowness

2007-10-18 Thread Dave Korn
On 19 October 2007 02:45, tim prince wrote:

 skaller wrote:
 On Thu, 2007-10-18 at 06:00 -0700, Tim Prince wrote:
 
 skaller wrote:
 
 
 
 I don't know of any OpenMP compiler which would correct the nesting of
 parallel loops in your LU.  I have assumed that OpenMP doesn't allow
 such optimization; you have to get it right yourself.
 
 
 Can you explain? This code was taken from a *tutorial* on OpenMP:
 
 http://kallipolis.com/openmp/2.html
 
 
 Did they show your version somewhere as an example of what not to do?
 In the page you referenced, they appear to have the correct loop nesting.

  Huh?

http://kallipolis.com/openmp/2.html
Or, if you are really lazy, you can download LU_mp.c.

47: /* Here we update A by subtracting the appropriate values from row
48:and column.  Note that these adjustments to A can be done in
49:any order */
50: #pragma omp parallel for shared(A, row, col) 
51: for (i = k+1; iSIZE; i++) {
52:   for (j = k+1; jSIZE; j++) {
53: A[i][j] = A[i][j] - row[i] * col[j];
54:   }
55: }

Now instead of a parallel

http://gcc.gnu.org/ml/gcc/2007-10/msg00230.html


/* Here we update A by subtracting the appropriate values from row
   and column.  Note that these adjustments to A can be done in
   any order */
#pragma omp parallel for shared(A, row, col)
for (i = k+1; iSIZE; i++) {
  for (j = k+1; jSIZE; j++) {
A[i][j] = A[i][j] - row[i] * col[j];
  }
}
  }


cheers,
  DaveK
-- 
Can't think of a witty .sigline today



[Bug tree-optimization/33804] ICE in vect_transform_stmt, at tree-vect-transform.c:6131 with -ftree-vectorize

2007-10-18 Thread falk at debian dot org


--- Comment #2 from falk at debian dot org  2007-10-18 06:27 ---
Whoops.

void f(unsigned char *s, unsigned char *d, int n) {
int i;
for (i = 0; i  n; i += 4) {
d[i + 0] += s[i + 0];
d[i + 1] += s[i + 1];
d[i + 2] += s[i + 2];
d[i + 3] += s[i + 3];
}
}


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33804



[Bug c++/33807] New: Incorrect ambiguous overload

2007-10-18 Thread bldantes at comcast dot net
The following code fails to compile with an overload ambiguity in gcc 4.2.1. It
successfully compiles in 3.4.4, 4.0.3 and 4.1.1. In the error message, note
also the bogus display of the signature for the first candidate:

note: candidates are: bool std::operator!=(const std::allocator_CharT, const
std::allocator_T2) [with _T1 = std::_List_nodefoo, _T2 =
std::_List_nodefoo]

bug.cc
--
#include list

template class T
bool operator != (const T x, const T y) { return !(x == y); }

struct foo {};

void fnx() {
std::listfoo l1, l2;
l1 = l2;
}

EOF


% g++ -c bug.cc
/usr/local/lib/gcc/ia64-hp-hpux11.31/4.2.1/../../../../include/c++/4.2.1/bits/stl_list.h:
In member function 'void std::list_Tp,
_Alloc::_M_check_equal_allocators(std::list_Tp, _Alloc) [with _Tp = foo,
_Alloc = std::allocatorfoo]':
/usr/local/lib/gcc/ia64-hp-hpux11.31/4.2.1/../../../../include/c++/4.2.1/bits/stl_list.h:930:
  instantiated from 'void std::list_Tp,
_Alloc::splice(std::_List_iterator_Tp, std::list_Tp, _Alloc) [with _Tp =
foo, _Alloc = std::allocatorfoo]'
/usr/local/lib/gcc/ia64-hp-hpux11.31/4.2.1/../../../../include/c++/4.2.1/bits/stl_list.h:833:
  instantiated from 'void std::list_Tp,
_Alloc::insert(std::_List_iterator_Tp, _InputIterator, _InputIterator) [with
_InputIterator = std::_List_const_iteratorfoo, _Tp = foo, _Alloc =
std::allocatorfoo]'
/usr/local/lib/gcc/ia64-hp-hpux11.31/4.2.1/../../../../include/c++/4.2.1/bits/list.tcc:135:
  instantiated from 'std::list_Tp, _Alloc std::list_Tp,
_Alloc::operator=(const std::list_Tp, _Alloc) [with _Tp = foo, _Alloc =
std::allocatorfoo]'
bug.cc:9:   instantiated from here
/usr/local/lib/gcc/ia64-hp-hpux11.31/4.2.1/../../../../include/c++/4.2.1/bits/stl_list.h:1179:
error: ambiguous overload for 'operator!=' in '((std::listfoo,
std::allocatorfoo *)this)-std::listfoo, std::allocatorfoo
::anonymous.std::_List_base_Tp, _Alloc::_M_get_Node_allocator [with _Tp =
foo, _Alloc = std::allocatorfoo]() != ((std::listfoo, std::allocatorfoo
*)__x)-std::listfoo, std::allocatorfoo ::anonymous.std::_List_base_Tp,
_Alloc::_M_get_Node_allocator [with _Tp = foo, _Alloc =
std::allocatorfoo]()'
/usr/local/lib/gcc/ia64-hp-hpux11.31/4.2.1/../../../../include/c++/4.2.1/bits/allocator.h:120:
note: candidates are: bool std::operator!=(const std::allocator_CharT, const
std::allocator_T2) [with _T1 = std::_List_nodefoo, _T2 =
std::_List_nodefoo]
/usr/local/lib/gcc/ia64-hp-hpux11.31/4.2.1/../../../../include/c++/4.2.1/ext/new_allocator.h:120:
note: bool __gnu_cxx::operator!=(const
__gnu_cxx::new_allocator_Tp, const __gnu_cxx::new_allocator_Tp) [with _Tp
= std::_List_nodefoo]
bug.cc:3: note: bool operator!=(const T, const T) [with T =
std::allocatorstd::_List_nodefoo ]

Compilation exited abnormally with code 1 at Wed Oct 17 22:53:00
%


-- 
   Summary: Incorrect ambiguous overload
   Product: gcc
   Version: 4.2.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bldantes at comcast dot net


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33807



[Bug target/32961] [4.2/4.3 Regression]: Gcc has different requirements for x86 shift xmm intrinsics

2007-10-18 Thread ubizjak at gmail dot com


--- Comment #9 from ubizjak at gmail dot com  2007-10-18 06:33 ---
(In reply to comment #8)

  Icc generates:
 0:   66 0f 6e cf movd   %edi,%xmm1
 4:   66 0f f2 c1 pslld  %xmm1,%xmm0
 
 Right, that's what icc's documentation would suggest.  But that documentation
 seems inconsistent with the assembly reference guide.  It may be that the
 assembly reference guide is the one that's wrong, or that icc intentionally
 extends it.

I think we should follow icc example, because there is realy no problem to
support immediates and non-immediates for these insns. Supporting only
immediates looks like forced limitation to me, even if it is required.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32961



[Bug c++/33808] New: internal compiler error: in write_type, at cp/mangle.c:1651

2007-10-18 Thread brakiozor at caramail dot com
Hello,

I'm working on Dev-cpp this is the output :


Compiler: Default compiler
Building Makefile: C:\cygwin\tmp\Makefile.win
Executing  make...
make.exe -f C:\cygwin\tmp\Makefile.win all
g++.exe -c toto.cc -o toto.o -IC:/GTK/INCLUDE  -IC:/GTK/INCLUDE/GTK-2.0 
-IC:/GTK/INCLUDE/GLIB-2.0  -IC:/GTK/INCLUDE/PANGO-1.0 
-IC:/GTK/INCLUDE/ATK-1.0  -IC:/GTK/INCLUDE/GTKGLEXT-1.0 
-IC:/GTK/LIB/GTK-2.0/INCLUDE  -IC:/GTK/LIB/GLIB-2.0/INCLUDE 
-IC:/GTK/LIB/GTKGLEXT-1.0/INCLUDE  -IC:/GTK/INCLUDE/LIBGLADE-2.0 
-IC:/GTK/INCLUDE/LIBXML2  -v -save-temps  

Using built-in specs.
Target: mingw32
Configured with: ../gcc-4.1.2/configure --with-gcc --with-gnu-ld --with-gnu-as
--host=mingw32 --target=mingw32 --prefix=C:/MinGW --enable-threads
--disable-nls --enable-languages=c,c++ --disable-win32-registry
--disable-shared --enable-fully-dynamic-string --disable-libstdcxx-pch
Thread model: win32
gcc version 4.1.2
 c:/dev-cpp/bin/../libexec/gcc/mingw32/4.1.2/cc1plus.exe -E -quiet -v
-IC:/GTK/INCLUDE -IC:/GTK/INCLUDE/GTK-2.0 -IC:/GTK/INCLUDE/GLIB-2.0
-IC:/GTK/INCLUDE/PANGO-1.0 -IC:/GTK/INCLUDE/ATK-1.0
-IC:/GTK/INCLUDE/GTKGLEXT-1.0 -IC:/GTK/LIB/GTK-2.0/INCLUDE
-IC:/GTK/LIB/GLIB-2.0/INCLUDE -IC:/GTK/LIB/GTKGLEXT-1.0/INCLUDE
-IC:/GTK/INCLUDE/LIBGLADE-2.0 -IC:/GTK/INCLUDE/LIBXML2 -iprefix
c:\dev-cpp\bin\../lib/gcc/mingw32/4.1.2/ toto.cc -fpch-preprocess -o toto.ii

ignoring nonexistent directory
c:/dev-cpp/bin/../lib/gcc/mingw32/4.1.2/../../../../include/c++/4.1.2
ignoring nonexistent directory
c:/dev-cpp/bin/../lib/gcc/mingw32/4.1.2/../../../../include/c++/4.1.2/mingw32
ignoring nonexistent directory
c:/dev-cpp/bin/../lib/gcc/mingw32/4.1.2/../../../../include/c++/4.1.2/backward
ignoring nonexistent directory
c:/dev-cpp/bin/../lib/gcc/mingw32/4.1.2/../../../../mingw32/include
ignoring nonexistent directory
C:/MinGW/lib/gcc/mingw32/../../../include/c++/4.1.2
ignoring nonexistent directory
C:/MinGW/lib/gcc/mingw32/../../../include/c++/4.1.2/mingw32
ignoring nonexistent directory
C:/MinGW/lib/gcc/mingw32/../../../include/c++/4.1.2/backward
ignoring nonexistent directory C:/MinGW/lib/gcc/mingw32/4.1.2/include
ignoring nonexistent directory
C:/MinGW/lib/gcc/mingw32/../../../mingw32/include
#include ... search starts here:
#include ... search starts here:
 C:/GTK/INCLUDE
 C:/GTK/INCLUDE/GTK-2.0
 C:/GTK/INCLUDE/GLIB-2.0
 C:/GTK/INCLUDE/PANGO-1.0
 C:/GTK/INCLUDE/ATK-1.0
 C:/GTK/INCLUDE/GTKGLEXT-1.0
 C:/GTK/LIB/GTK-2.0/INCLUDE
 C:/GTK/LIB/GLIB-2.0/INCLUDE
 C:/GTK/LIB/GTKGLEXT-1.0/INCLUDE
 C:/GTK/INCLUDE/LIBGLADE-2.0
 C:/GTK/INCLUDE/LIBXML2
 c:/dev-cpp/bin/../lib/gcc/mingw32/4.1.2/../../../../include
 c:/dev-cpp/bin/../lib/gcc/mingw32/4.1.2/include
 C:/MinGW/lib/gcc/mingw32/../../../include
 C:/MinGW/include

 /mingw/include
End of search list.

 c:/dev-cpp/bin/../libexec/gcc/mingw32/4.1.2/cc1plus.exe -fpreprocessed toto.ii
-quiet -dumpbase toto.cc -auxbase-strip toto.o -version -o toto.s

GNU C++ version 4.1.2 (mingw32)
compiled by GNU C version 4.1.2.
GGC heuristics: --param ggc-min-expand=99 --param ggc-min-heapsize=130982
Compiler executable checksum: 669e873dd1c794b0f5ddbea8fe211782
toto.cc:54: internal compiler error: in write_type, at cp/mangle.c:1651
Please submit a full bug report,
with preprocessed source if appropriate.
See URL:http://gcc.gnu.org/bugs.html for instructions.

make.exe: *** [toto.o] Error 1

Execution terminated


the same error occurs on cygwin (v 3.4.4) and on latest ubuntu (v 4.2?)

this is the code:

#include complex

using namespace std;

template class T
class X
{
public:
X() {}
};

template class T
class Y
{
public:
template class U
Y(const XU) {}

template class U
Y operator *=(const U) { return *this; }
};

template class Tx, class Ty
Ytypeof(Tx()*Ty()) operator *(XTx x, const Ty y)
{
Ytypeof(Tx()*Ty()) res(x);
//res *= y;
return res;
}

template class Tx, class Ty
Ytypeof(Tx()*Ty()) operator *(const Tx x, XTy y)
{
Ytypeof(Tx()*Ty()) res(y);
//res *= x;
return res;
}

int main()
{
double a;
complexdouble b;
Xdouble i;
Xcomplexdouble  j;

i*a;
a*i;
i*b;
b*i;

j*a;
a*j;
j*b;
b*j;
}


It's my first bug report, How can I give you the .ii file?


-- 
   Summary: internal compiler error: in write_type, at
cp/mangle.c:1651
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: critical
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: brakiozor at caramail dot com
 GCC build triplet: x86
  GCC host triplet: x86
GCC target triplet: x86



[Bug libfortran/30694] minval/maxval with +/-Inf

2007-10-18 Thread fxcoudert at gcc dot gnu dot org


--- Comment #25 from fxcoudert at gcc dot gnu dot org  2007-10-18 07:38 
---
(In reply to comment #24)
 So maybe approach the question differently.  Which element in an array of NaNs
 is the smallest one and what is its value?  If I pick any one element, its
 value is NaN.  It does not matter which one I select, its value always
 comes out NaN.

I understand your argument, but there are other arguments that are, I think, at
least equally valid and convincing. As I said, MINVAL basically ignores NaNs,
so an array containing only NaNs is equivalent to an empty array: its MINVAL is
+Huge. Note that having MINVAL = +Huge is, in itself, a telltale sign that
something is wrong, if there is no mask present.

Now, I have another question: what happens for mixed NaNs? For example, in your
scheme, what would be the value of MAXVAL((/sNaN, qNaN/))?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30694



[Bug c++/33808] internal compiler error: in write_type, at cp/mangle.c:1651

2007-10-18 Thread brakiozor at caramail dot com


--- Comment #2 from brakiozor at caramail dot com  2007-10-18 07:56 ---
Created an attachment (id=14369)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14369action=view)
.ii file


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33808



[Bug c++/33808] internal compiler error: in write_type, at cp/mangle.c:1651

2007-10-18 Thread brakiozor at caramail dot com


--- Comment #3 from brakiozor at caramail dot com  2007-10-18 08:06 ---
I found this bug on a more complex program and I did an epurated code.


-- 

brakiozor at caramail dot com changed:

   What|Removed |Added

 CC||brakiozor at caramail dot
   ||com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33808



[Bug c++/33808] internal compiler error: in write_type, at cp/mangle.c:1651

2007-10-18 Thread brakiozor at caramail dot com


--- Comment #1 from brakiozor at caramail dot com  2007-10-18 07:55 ---
Created an attachment (id=14368)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14368action=view)
source code

I was playing a little with template


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33808



[Bug tree-optimization/33804] ICE in vect_transform_stmt, at tree-vect-transform.c:6131 with -ftree-vectorize

2007-10-18 Thread irar at il dot ibm dot com


--- Comment #3 from irar at il dot ibm dot com  2007-10-18 08:33 ---
It works fine for me (and the loop gets SLPed) on powerpc-64 and x86_64.

Could you please run it with -fdump-tree-vect-details and attach the dump file?

Ira


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33804



[Bug c++/33808] internal compiler error: in write_type, at cp/mangle.c:1651

2007-10-18 Thread pinskia at gcc dot gnu dot org


--- Comment #4 from pinskia at gcc dot gnu dot org  2007-10-18 08:49 ---
As far as I understand there is no way to encode currently typeof for
templates.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|critical|normal


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33808



[Bug target/32961] [4.2/4.3 Regression]: Gcc has different requirements for x86 shift xmm intrinsics

2007-10-18 Thread uros at gcc dot gnu dot org


--- Comment #10 from uros at gcc dot gnu dot org  2007-10-18 09:12 ---
Subject: Bug 32961

Author: uros
Date: Thu Oct 18 09:12:30 2007
New Revision: 129433

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=129433
Log:
PR target/32961
* config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLLWI128,
IX86_BUILTIN_PSLLDI128, BUILTIN_PSLLQI128, IX86_BUILTIN_PSRAWI128,
IX86_BUILTIN_PSRADI128, IX86_BUILTIN_PSRLWI128,
IX86_BUILTIN_PSRLDI128, IX86_BUILTIN_PSRLQI128]: Do not require
immediate shift value.
* config/i386/emmintrin.h (_mm_slli_epi16, _mm_slli_epi32,
_mm_slli_epi64, _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16,
_mm_srli_epi32, _mm_srli_epi64):  Enable disabled functions and
remove equivalent macro definitions.

testsuite/ChangeLog:

PR target/32961
* gcc.target/i386/pr32961.c: New testcase.


Added:
branches/gcc-4_2-branch/gcc/testsuite/gcc.target/i386/pr32961.c
Modified:
branches/gcc-4_2-branch/gcc/ChangeLog
branches/gcc-4_2-branch/gcc/config/i386/emmintrin.h
branches/gcc-4_2-branch/gcc/config/i386/i386.c
branches/gcc-4_2-branch/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32961



[Bug target/32961] [4.2/4.3 Regression]: Gcc has different requirements for x86 shift xmm intrinsics

2007-10-18 Thread ubizjak at gmail dot com


--- Comment #11 from ubizjak at gmail dot com  2007-10-18 09:14 ---
Fixed for 4.2.3 and 4.3.0.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.2.3


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32961



[Bug libstdc++/33807] Incorrect ambiguous overload

2007-10-18 Thread pcarlini at suse dot de


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pcarlini at suse dot de
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-10-18 09:35:14
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33807



[Bug c++/5645] gcc warns that pure virtual class not explicitly initialized

2007-10-18 Thread nathan at codesourcery dot com


--- Comment #5 from nathan at codesourcery dot com  2007-10-18 09:43 ---
Subject: Re:  gcc warns that pure virtual class not explicitly
 initialized

manu at gcc dot gnu dot org wrote:
 --- Comment #4 from manu at gcc dot gnu dot org  2007-10-17 11:26 ---
 Does this patch makes any sense? This needs testcases (suggestions for extra
 testcases are welcome), Changelog, bootstrap + testing and proper submission.

this patch looks reasonable.

nathan


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=5645



[Bug libstdc++/33807] Incorrect ambiguous overload

2007-10-18 Thread pcarlini at suse dot de


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

   Target Milestone|--- |4.2.3


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33807



[Bug libstdc++/33807] Incorrect ambiguous overload

2007-10-18 Thread pcarlini at suse dot de


--- Comment #1 from pcarlini at suse dot de  2007-10-18 09:55 ---
Note, the problem - trivial, the same we had in stl_iterator.h - is latent in
the older branches, dates back to the configurable allocator.h. The fix is safe
and will go in 4_2-branch too.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33807



[Bug libstdc++/33807] Incorrect ambiguous overload

2007-10-18 Thread paolo at gcc dot gnu dot org


--- Comment #2 from paolo at gcc dot gnu dot org  2007-10-18 10:00 ---
Subject: Bug 33807

Author: paolo
Date: Thu Oct 18 10:00:18 2007
New Revision: 129434

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=129434
Log:
2007-10-18  Paolo Carlini  [EMAIL PROTECTED]

PR libstdc++/33807
* include/bits/allocator.h (operator==(const allocator_Tp,
const allocator_Tp), operator!=(const allocator_Tp,
const allocator_Tp)): Add.
* testsuite/20_util/allocator/33807.cc: New.

Added:
trunk/libstdc++-v3/testsuite/20_util/allocator/33807.cc
Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/bits/allocator.h


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33807



[Bug c/33809] New: Rounding off error in GCC 4.1.2

2007-10-18 Thread satyaakam at yahoo dot co dot in
Based on our investigation and the gcc documentation , we think there is a Bug
in GCC 4.1.2

Firstly, according to the doc and our understanding, the error caused by
rounding should be small, for instance, some systems may treat 5.000 as 4.998.
However, in our case, the difference is quit big, about 40% by compare
-0.7240616609 to -0.5413411329464. I think it can't be ignored.

Secondly, -frounding-math and -fno-rounding-math are two gcc options to control
rounding. However, using -O0, for both two options, We got the same value,
-0.7240616609. But using -O3 (or -O1), We got the same value, -0.5413411329464.
This means changing rounding option doesn't affect the result.

Thirdly, in the case, function double ahdlDoFloatDiv(double a, double) is to
return the result of a/b. If I directly use a/b, instead of function, for -O3,
the result is -0.7240616609, the same as -O0. If the issue is caused by
rounding, both two ways should have the same result. But now it is different.

Finally, we simplified the c code as below and can reproduce the problem:

#include math.h
#include stdio.h
#include stdlib.h

double ahdlDoFloatDiv (double a, double b)
{
   return a/b;
}

// #define ahdlDoFloatDiv(a, b)  (a/b)

int main()
{
   double pow_tmp = 0;
   printf(%f\n,
   ahdlDoFloatDiv((2.7182818284590451)) +
(((ahdlDoFloatDiv-(((2.7182818284590451)) *
((1.e+00))) * 1.e+00))), 
pow_tmp = (2.7182818284590451)) * pow_tmp)) * (2.7182818284590451))
- (((ahdlDoFloatDiv(1.e+00, (2.7182818284590451)))
- 2.7182818284590451)) - (((ahdlDoFloatDiv-(((2.7182818284590451))
* ((1.e+00))) * 1.e+00))), 
pow_tmp = (2.7182818284590451)) * pow_tmp)) * (2.7182818284590451))
+ (((ahdlDoFloatDiv(1.e+00,
(2.7182818284590451,  pow_tmp = 2.7182818284590451)) -
(((ahdlDoFloatDiv(1.e+00, (2.7182818284590451 *
pow_tmp
   );
   return 0;
}

Please use gcc4.1.2 to compile it under Linux and you can reproduce the bug.
For -O3, the printed value is -0.541341, for -O0, it is -0.724062. If comment
the function ahdlDoFloatDiv  and uncomment the macro definition, both -O0 and
-O3 have the same result,  -0.724062.

This issue causes our problem to producing incorrect values, even lead to
convergence issue.


-- 
   Summary: Rounding off error in GCC 4.1.2
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: satyaakam at yahoo dot co dot in


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33809



[Bug c++/33810] New: gcc 4.1.2 mangles results on x86_64 in bitfield operations

2007-10-18 Thread satyaakam at yahoo dot co dot in
Run the test case on a x86_64 bit machine to see how gcc 4.1.2 mangles results
in under Linux

We have tested the test case using 3.2.3 Compiler on RHEL 3 on both 32 as well
as 64 bit OS it works well.

Compile the test case provided with the following steps

$gcc -g -I. -Wall -m64 -c bar.c
$g++ -g -I. -Wall -m64 -o foo foo.c bar.o

Actual results: once you run the program foo you will see the following result

foo: i is 3.
bar: i is 3221205968.

Expected results:

foo: i is 3.
bar: i is 3.

Additional info: Test Case follows


- bar.h -

typedef struct {

 unsigned b1:16;

 unsigned b2:16;

} foo;



#ifdef   __cplusplus

extern C

{

#endif



foo bar(unsigned);



#ifdef   __cplusplus

}

#endif




- bar.c -

#include stdio.h

#include bar.h



foo bar(unsigned i)

{

 foo myfoo;

 myfoo.b1=myfoo.b2=0;

 printf(bar: i is %u.\n,i);

 return(myfoo);

}





- foo.c -

#include stdio.h
#include bar.h

int main(void)

{

 foo myfoo;

 unsigned i = 3;

 printf(foo: i is %u.\n,i);

 myfoo = bar(i);

 return 0;

}


-- 
   Summary: gcc 4.1.2 mangles results on x86_64 in bitfield
operations
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: satyaakam at yahoo dot co dot in


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33810



[Bug tree-optimization/32921] [4.3 Regression] Revision 126326 causes 12% slowdown

2007-10-18 Thread rguenth at gcc dot gnu dot org


--- Comment #16 from rguenth at gcc dot gnu dot org  2007-10-18 11:45 
---
I have a patch.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2007-10-07 15:17:20 |2007-10-18 11:45:39
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32921



[Bug fortran/33811] New: Character assignment misses dependency

2007-10-18 Thread pault at gcc dot gnu dot org
This
$ cat assign_bug_3.f90
  character(1) :: a(3) = ['1','2','3']
  integer :: i = 1
  a(2:3)(i:i) = a(1:2)(i:i)
  print *, a
end

$ /irun/bin/gfortran assign_bug_3.f90; ./a
 111

is the wrong result (should be 112)

The problem lies in gfc_check_dependency, where the assumption about substrings
is wrong.  Fixing this exposes an ICE in
trans-array.c(gfc_trans_create_temp_array), which arises because the temporary
is an incomplete type.

These problems are related to PR31217 and arose in the course of fixing that
pr.

A fix for both will be posted tonight, as long as the regtesting completes OK.

Cheers

Paul


-- 
   Summary: Character assignment misses dependency
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: pault at gcc dot gnu dot org
ReportedBy: pault at gcc dot gnu dot org
 BugsThisDependsOn: 31217


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33811



[Bug fortran/31217] ICE using FORALL on character substrings

2007-10-18 Thread pault at gcc dot gnu dot org


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pault at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2007-03-16 15:32:12 |2007-10-18 12:03:51
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31217



[Bug c/33809] Rounding off error in GCC 4.1.2

2007-10-18 Thread ubizjak at gmail dot com


--- Comment #1 from ubizjak at gmail dot com  2007-10-18 12:18 ---
What about -ffloat-store?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33809



[Bug fortran/33811] Character assignment misses dependency

2007-10-18 Thread fxcoudert at gcc dot gnu dot org


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||wrong-code
   Last reconfirmed|-00-00 00:00:00 |2007-10-18 12:23:19
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33811



[Bug fortran/33733] ICEs in simplify_transfer

2007-10-18 Thread pault at gcc dot gnu dot org


--- Comment #11 from pault at gcc dot gnu dot org  2007-10-18 12:44 ---
Subject: Bug 33733

Author: pault
Date: Thu Oct 18 12:44:03 2007
New Revision: 129435

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=129435
Log:
2007-10-18  Paul Thomas  [EMAIL PROTECTED]
Dominique d'Humieres  [EMAIL PROTECTED]

PR fortran/33733
* simplify.c (gfc_simplify_transfer): Return null if the source
expression is EXPR_FUNCTION.

2007-10-18  Paul Thomas  [EMAIL PROTECTED]

PR fortran/33733
* gfortran.dg/transfer_simplify_6.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/transfer_simplify_6.f90
Modified:
trunk/gcc/fortran/simplify.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33733



[Bug fortran/33733] ICEs in simplify_transfer

2007-10-18 Thread pault at gcc dot gnu dot org


--- Comment #12 from pault at gcc dot gnu dot org  2007-10-18 12:45 ---
Subject: Bug 33733

Author: pault
Date: Thu Oct 18 12:44:57 2007
New Revision: 129436

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=129436
Log:
2007-10-18  Paul Thomas  [EMAIL PROTECTED]
Dominique d'Humieres  [EMAIL PROTECTED]

PR fortran/33733
* simplify.c (gfc_simplify_transfer): Return null if the source
expression is EXPR_FUNCTION.

2007-10-18  Paul Thomas  [EMAIL PROTECTED]

PR fortran/33733
* gfortran.dg/transfer_simplify_6.f90: New test.

Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33733



[Bug fortran/33233] Parent and contained procedure: Wrongly treated as generic procedures

2007-10-18 Thread pault at gcc dot gnu dot org


--- Comment #5 from pault at gcc dot gnu dot org  2007-10-18 12:48 ---
Subject: Bug 33233

Author: pault
Date: Thu Oct 18 12:48:37 2007
New Revision: 129437

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=129437
Log:
2007-10-18  Paul Thomas  [EMAIL PROTECTED]

PR fortran/33233
* resolve.c (check_host_association): Check singly contained
namespaces and start search for symbol in current namespace.

2007-10-18  Paul Thomas  [EMAIL PROTECTED]

PR fortran/33233
* gfortran.dg/host_assoc_function_1.f90: Correct references.
* gfortran.dg/host_assoc_function_3.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/host_assoc_function_3.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/resolve.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/host_assoc_function_1.f90


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33233



[Bug middle-end/33806] [regression 4.3] gfortran.dg/cray_pointers_2.f90 give an ICE at -O3 -m64 on Darwin

2007-10-18 Thread dominiq at lps dot ens dot fr


--- Comment #1 from dominiq at lps dot ens dot fr  2007-10-18 12:55 ---
This regression affects also
gfortran.fortran-torture/execute/stack_varsize.f90.
A reduced test case is:

! Program to test the stack variable size limit.
program stack
   call sub1
contains

   ! Local variables larger than 32768 in byte size shall be placed in static
   ! storage area, while others be put on stack by default.
   subroutine sub1
  real b(32768/4), c(32768/4+1) 
  b = 20.0
  c = 30.0
  if ((b(1) .ne. 20.0).or.(c(1) .ne. 30.0)) call abort
   end subroutine

end
[karma] f90/bug% gfc -m64 -O3 stack_varsize_red.f90
stack_varsize_red.f90: In function 'sub1':
stack_varsize_red.f90:12: internal compiler error: in change_address_1, at
emit-rtl.c:1888

Note that array c alone is not sufficient to trigger the ICE.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33806



[Bug libfortran/22423] Warnings when building libgfortran

2007-10-18 Thread fxcoudert at gcc dot gnu dot org


--- Comment #14 from fxcoudert at gcc dot gnu dot org  2007-10-18 13:22 
---
(In reply to comment #13)
 ../../../libgfortran/runtime/environ.c:312: warning: 'init_choice' defined but
 not used
 ../../../libgfortran/runtime/environ.c:339: warning: 'show_choice' defined but
 not used

These two have been removed by Ben Elliston.

 ../../../libgfortran/runtime/backtrace.c:66: warning: 'local_strcasestr'
 defined but not used

Fixed by the following:

Index: runtime/backtrace.c
===
--- runtime/backtrace.c (revision 129403)
+++ runtime/backtrace.c (working copy)
@@ -60,7 +60,18 @@ Boston, MA 02110-1301, USA.  */
 #include ctype.h


+/* Macros for common sets of capabilities: can we fork and exec, can
+   we use glibc-style backtrace functions, and can we use pipes.  */
+#define CAN_FORK (defined(HAVE_FORK)  defined(HAVE_EXECVP) \
+  defined(HAVE_WAIT))
+#define GLIBC_BACKTRACE (defined(HAVE_BACKTRACE) \
+ defined(HAVE_BACKTRACE_SYMBOLS))
+#define CAN_PIPE (CAN_FORK  defined(HAVE_PIPE) \
+  defined(HAVE_DUP2)  defined(HAVE_FDOPEN) \
+  defined(HAVE_CLOSE))

+
+#if GLIBC_BACKTRACE  CAN_PIPE
 static char *
 local_strcasestr (const char *s1, const char *s2)
 {
@@ -85,14 +96,7 @@ local_strcasestr (const char *s1, const
 }
 #endif
 }
-
-#define CAN_FORK (defined(HAVE_FORK)  defined(HAVE_EXECVP) \
-  defined(HAVE_WAIT))
-#define GLIBC_BACKTRACE (defined(HAVE_BACKTRACE) \
- defined(HAVE_BACKTRACE_SYMBOLS))
-#define CAN_PIPE (CAN_FORK  defined(HAVE_PIPE) \
-  defined(HAVE_DUP2)  defined(HAVE_FDOPEN) \
-  defined(HAVE_CLOSE))
+#endif


 #if GLIBC_BACKTRACE


 ../../../libgfortran/runtime/main.c:179: warning: passing argument 1 of 'free'
 discards qualifiers from pointer target type

Fixed by:

Index: runtime/main.c
===
--- runtime/main.c  (revision 129403)
+++ runtime/main.c  (working copy)
@@ -176,5 +176,5 @@ cleanup (void)
   close_units ();

   if (please_free_exe_path_when_done)
-free (exe_path);
+free ((char *) exe_path);
 }


 ../../../../libgfortran/intrinsics/signal.c:201: warning: cast to pointer from
 integer of different size
 ../../../../libgfortran/intrinsics/signal.c:208: warning: cast to pointer from
 integer of different size
 ../../../../libgfortran/intrinsics/signal.c:229: warning: cast to pointer from
 integer of different size
 ../../../../libgfortran/intrinsics/signal.c:236: warning: cast to pointer from
 integer of different size

This should be silenced by:

Index: intrinsics/signal.c
===
--- intrinsics/signal.c (revision 129403)
+++ intrinsics/signal.c (working copy)
@@ -198,14 +198,14 @@ alarm_sub_int_i4 (int *seconds, int *han
 #if defined (SIGALRM)  defined (HAVE_ALARM)  defined (HAVE_SIGNAL)
   if (status != NULL)
 {
-  if (signal (SIGALRM, (void (*)(int)) *handler) == SIG_ERR)
+  if (signal (SIGALRM, (void (*)(int)) (INTPTR_T) *handler) == SIG_ERR)
*status = -1;
   else
*status = alarm (*seconds);
 }
   else
 {
-  signal (SIGALRM, (void (*)(int)) *handler);
+  signal (SIGALRM, (void (*)(int)) (INTPTR_T) *handler);
   alarm (*seconds);
 }
 #else
@@ -226,14 +226,14 @@ alarm_sub_int_i8 (int *seconds, int *han
 #if defined (SIGALRM)  defined (HAVE_ALARM)  defined (HAVE_SIGNAL)
   if (status != NULL)
 {
-  if (signal (SIGALRM, (void (*)(int)) *handler) == SIG_ERR)
+  if (signal (SIGALRM, (void (*)(int)) (INTPTR_T) *handler) == SIG_ERR)
*status = -1;
   else
*status = alarm (*seconds);
 }
   else
 {
-  signal (SIGALRM, (void (*)(int)) *handler);
+  signal (SIGALRM, (void (*)(int)) (INTPTR_T) *handler);
   alarm (*seconds);
 }
 #else


 ../../../libgfortran/intrinsics/spread_generic.c:136: warning: format '%d'
 expects type 'int', but argument 2 has type 'long int'
 ../../../libgfortran/intrinsics/spread_generic.c:147: warning: format '%d'
 expects type 'int', but argument 2 has type 'long int'

Fixed by:

Index: intrinsics/spread_generic.c
===
--- intrinsics/spread_generic.c (revision 129403)
+++ intrinsics/spread_generic.c (working copy)
@@ -131,9 +131,9 @@ spread_internal (gfc_array_char *ret, co

  if (ret_extent != ncopies)
runtime_error(Incorrect extent in return value of SPREAD
-  intrinsic in dimension %d: is %ld,
-  should be %ld, n+1, (long int) ret_extent,
- (long int) ncopies);
+  intrinsic in dimension %ld: is %ld,
+  should be %ld, (long int) n+1,
+ 

[Bug tree-optimization/33812] New: Vectorizer testcases fail

2007-10-18 Thread irar at il dot ibm dot com
With current trunk (r129433) vectorizer testcases fail on powerpc64:

FAIL: gcc.dg/vect/vect-64.c (internal compiler error)
FAIL: gcc.dg/vect/vect-64.c (test for excess errors)
WARNING: gcc.dg/vect/vect-64.c compilation failed to produce executable
FAIL: gcc.dg/vect/vect-68.c (internal compiler error)
FAIL: gcc.dg/vect/vect-68.c (test for excess errors)
WARNING: gcc.dg/vect/vect-68.c compilation failed to produce executable
FAIL: gcc.dg/vect/vect-70.c (internal compiler error)
FAIL: gcc.dg/vect/vect-70.c (test for excess errors)
WARNING: gcc.dg/vect/vect-70.c compilation failed to produce executable
FAIL: gcc.dg/vect/no-scevccp-slp-31.c (internal compiler error)
FAIL: gcc.dg/vect/no-scevccp-slp-31.c (test for excess errors)
WARNING: gcc.dg/vect/no-scevccp-slp-31.c compilation failed to produce
executable

The tests ICE:
vect-64.c: In function #1490;main1#1490;:
vect-64.c:75: internal compiler error: in change_address_1, at emit-rtl.c:1888
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

#0  change_address_1 (memref=0xf7e44f40, mode=SImode, addr=0xf7e44f30,
validate=1) at ../../gcc/gcc/emit-rtl.c:1888
#1  0x10179fd4 in validize_mem (ref=0xf7e44f40) at ../../gcc/gcc/explow.c:546
#2  0x101a88e8 in emit_move_insn (x=0xf7e38e00, y=0xf7e44f40) at
../../gcc/gcc/expr.c:3403
#3  0x105543e4 in rs6000_emit_epilogue (sibcall=0) at
../../gcc/gcc/config/rs6000/rs6000.c:16095
#4  0x28000488 in ?? ()
#5  0x105ec5ec in gen_epilogue () at
../../gcc/gcc/config/rs6000/rs6000.md:14476
#6  0x102242b4 in rest_of_handle_thread_prologue_and_epilogue () at
../../gcc/gcc/function.c:5298
#7  0x102a7af4 in execute_one_pass (pass=0x108f6a78) at
../../gcc/gcc/passes.c:1117
#8  0x102a7d68 in execute_pass_list (pass=0x108f6a78) at
../../gcc/gcc/passes.c:1170
#9  0x102a7d80 in execute_pass_list (pass=0x108f6ee8) at
../../gcc/gcc/passes.c:1171
#10 0x102a7d80 in execute_pass_list (pass=0x108f6eb4) at
../../gcc/gcc/passes.c:1171
#11 0x103ae68c in tree_rest_of_compilation (fndecl=0xf7dbc100) at
../../gcc/gcc/tree-optimize.c:404
#12 0x105705fc in cgraph_expand_function (node=0xf7dbc300) at
../../gcc/gcc/cgraphunit.c:1060
#13 0x105728c4 in cgraph_optimize () at ../../gcc/gcc/cgraphunit.c:1123
#14 0x10017914 in c_write_global_declarations () at ../../gcc/gcc/c-decl.c:8077
#15 0x1033fff0 in toplev_main (argc=value optimized out, argv=value
optimized out) at ../../gcc/gcc/toplev.c:1055
#16 0x1009e370 in main (argc=0, argv=0x0) at ../../gcc/gcc/main.c:35

This doesn't happen with r129290.

Ira


-- 
   Summary: Vectorizer testcases fail
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: irar at il dot ibm dot com
 GCC build triplet: powerpc64-suse-linux
  GCC host triplet: powerpc64-suse-linux
GCC target triplet: powerpc64-suse-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33812



[Bug fortran/29452] Keyword check for specifiers in WRITE and READ

2007-10-18 Thread fxcoudert at gcc dot gnu dot org


--- Comment #10 from fxcoudert at gcc dot gnu dot org  2007-10-18 13:39 
---
I think it's best to close this one. I only wanted to keep it open because I
thought I'd add the rest of the F2003 specifiers quickly, which didn't happen.


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29452



[Bug tree-optimization/33812] Vectorizer testcases fail

2007-10-18 Thread dominiq at lps dot ens dot fr


--- Comment #1 from dominiq at lps dot ens dot fr  2007-10-18 13:40 ---
This seems to be a duplicate of PR33806, at least the ICE occurs at the same
point.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33812



[Bug target/32961] [4.2/4.3 Regression]: Gcc has different requirements for x86 shift xmm intrinsics

2007-10-18 Thread hjl at lucon dot org


--- Comment #12 from hjl at lucon dot org  2007-10-18 13:44 ---
(In reply to comment #8)
 (In reply to comment #7)
  Icc generates:
 0:   66 0f 6e cf movd   %edi,%xmm1
 4:   66 0f f2 c1 pslld  %xmm1,%xmm0
 
 Right, that's what icc's documentation would suggest.  But that documentation
 seems inconsistent with the assembly reference guide.  It may be that the
 assembly reference guide is the one that's wrong, or that icc intentionally
 extends it.
 

There is nothing wrong with IA32 SDM. One intrinsic does map to one
assembly instruction, but not necessarily the same instruction every
time. Another example is _mm_cmpistrm and its friends.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32961



[Bug fortran/33233] Parent and contained procedure: Wrongly treated as generic procedures

2007-10-18 Thread pault at gcc dot gnu dot org


--- Comment #6 from pault at gcc dot gnu dot org  2007-10-18 13:54 ---
Fixed on trunk.

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33233



[Bug c/33809] Rounding off error in GCC 4.1.2

2007-10-18 Thread satyaakam at yahoo dot co dot in


--- Comment #2 from satyaakam at yahoo dot co dot in  2007-10-18 14:00 
---
$gcc -ffloat-store round.c
$ ./a.out
-0.724062

$gcc -O3 -ffloat-store round.c
$ ./a.out
-0.541341

$gcc -O0 -ffloat-store round.c
./a.out
-0.724062


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33809



[Bug fortran/33733] ICEs in simplify_transfer

2007-10-18 Thread pault at gcc dot gnu dot org


--- Comment #13 from pault at gcc dot gnu dot org  2007-10-18 13:53 ---
Fixed on trunk

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33733



[Bug tree-optimization/33812] Vectorizer testcases fail

2007-10-18 Thread dominiq at lps dot ens dot fr


--- Comment #2 from dominiq at lps dot ens dot fr  2007-10-18 14:32 ---
The same occurs in 32 bit mode, see for instance

http://gcc.gnu.org/ml/gcc-testresults/2007-10/msg00804.html

[karma] dominiq/Desktop% gfc -O2 -ftree-vectorize -maltivec
/opt/gcc/_gcc-clean/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-68d.c
 

/opt/gcc/_gcc-clean/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-68d.c:
In function 'main1':
/opt/gcc/_gcc-clean/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-68d.c:39:
internal compiler error: in change_address_1, at emit-rtl.c:1888


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33812



[Bug tree-optimization/33812] Vectorizer testcases fail

2007-10-18 Thread dominiq at lps dot ens dot fr


--- Comment #3 from dominiq at lps dot ens dot fr  2007-10-18 14:37 ---
The PR started between revisions 129388 (works) and 129401 (does not).


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33812



[Bug c/33809] Rounding off error in GCC 4.1.2

2007-10-18 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2007-10-18 14:46 ---
Your code is undefined.  You have multiple assignments to pow_tmp without
intervening sequence points.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33809



[Bug fortran/33811] Character assignment misses dependency

2007-10-18 Thread pault at gcc dot gnu dot org


--- Comment #1 from pault at gcc dot gnu dot org  2007-10-18 14:50 ---
(In reply to comment #0)

 A fix for both will be posted tonight, as long as the regtesting completes OK.
 Cheers
 Paul

This fix has been posted: http://gcc.gnu.org/ml/fortran/2007-10/msg00264.html

Paul


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33811



[Bug middle-end/33780] different results between O3 and O0

2007-10-18 Thread dominiq at lps dot ens dot fr


--- Comment #4 from dominiq at lps dot ens dot fr  2007-10-18 15:23 ---
 while we expand a constant integral power to an optimal (as of the count of
 multiplications / additions) series of multiplications and additions.

It seems the difference is coming from something else. I'll bet that with -O3
the powers are computed at compile time with some extra precision. At least it
is what I conclude from the following code:

  integer :: ia(16) = (/ 1, 1, 2, 2, 3, 3, 4, 4, 6, 5, 6, 6, 10, 7, 9, 8 /)
  real(8) :: a(16), b(16), c(16), d(16)
  real(16) :: e(16)
  real(8), parameter :: r=4.51556282882533D0
  a(1) = r
  a(2) = a(1)*a(1)
  a(3:4) = a(2)*a(1:2)
  a(5:8) = a(4)*a(1:4)
  a(9:16) = a(8)*a(1:8)
  b(1) = r
  do i = 2, 16
 b(i) = b(ia(i))*b(i-ia(i))
  end do
  e(1) = r
  e(2) = e(1)*e(1)
  e(3:4) = e(2)*e(1:2)
  e(5:8) = e(4)*e(1:4)
  e(9:16) = e(8)*e(1:8)
  d = real(e,8)
  do i=1, 16
 c(i) = r**i
  end do
  do i=1, 16
 print *, a(i)/d(i)-1.0d0, b(i)/d(i)-1.0d0, c(i)/d(i)-1.0d0
  end do
  print *
  print *, sum(abs(a/d-1.0d0)), sum(abs(b/d-1.0d0)), sum(abs(c/d-1.0d0)),
epsilon(r)
end

a stores the powers computed from the usual shift, b those computed from the
optimal tree (from gcc/builtins.c, c those computed from the power, and d the
values rounded from values with higher precision. At -O2 the output is:

   0.0.0. 
   0.0.0. 
   0.0.0. 
  2.22044604925031308E-016  2.22044604925031308E-016  2.22044604925031308E-016
  2.22044604925031308E-016  2.22044604925031308E-016  2.22044604925031308E-016
  2.22044604925031308E-016   0.   2.22044604925031308E-016
  2.22044604925031308E-016  2.22044604925031308E-016  2.22044604925031308E-016
  4.44089209850062616E-016  4.44089209850062616E-016  4.44089209850062616E-016
  2.22044604925031308E-016   0.   2.22044604925031308E-016
  4.44089209850062616E-016  2.22044604925031308E-016  4.44089209850062616E-016
  4.44089209850062616E-016  2.22044604925031308E-016  4.44089209850062616E-016
  4.44089209850062616E-016   0.   4.44089209850062616E-016
  4.44089209850062616E-016  4.44089209850062616E-016  4.44089209850062616E-016
  4.44089209850062616E-016  2.22044604925031308E-016  4.44089209850062616E-016
  6.66133814775093924E-016   0.   6.66133814775093924E-016
  6.66133814775093924E-016  6.66133814775093924E-016  6.66133814775093924E-016

  5.10702591327572009E-015  2.88657986402540701E-015  5.10702591327572009E-015 
2.22044604925031308E-016

a and c are equal, while at -O3 the output is

   0.0.0. 
   0.0.0. 
   0.0.0. 
  2.22044604925031308E-016  2.22044604925031308E-016   0. 
  2.22044604925031308E-016  2.22044604925031308E-016   0. 
  2.22044604925031308E-016   0.0. 
  2.22044604925031308E-016  2.22044604925031308E-016   0. 
  4.44089209850062616E-016  4.44089209850062616E-016   0. 
  2.22044604925031308E-016   0.0. 
  4.44089209850062616E-016  2.22044604925031308E-016   0. 
  4.44089209850062616E-016  2.22044604925031308E-016   0. 
  4.44089209850062616E-016   0.0. 
  4.44089209850062616E-016  4.44089209850062616E-016   0. 
  4.44089209850062616E-016  2.22044604925031308E-016   0. 
  6.66133814775093924E-016   0.0. 
  6.66133814775093924E-016  6.66133814775093924E-016   0. 

  5.10702591327572009E-015  2.88657986402540701E-015   0.  
2.22044604925031308E-016

c and d are equal. If the difference were coming only from the optimal tree,
c should be equal to b.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33780



[Bug libstdc++/30085] switch debug mode hash containers from ext to tr1

2007-10-18 Thread bkoz at gcc dot gnu dot org


--- Comment #4 from bkoz at gcc dot gnu dot org  2007-10-18 15:23 ---
Subject: Bug 30085

Author: bkoz
Date: Thu Oct 18 15:22:58 2007
New Revision: 129442

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=129442
Log:
2007-10-18  Benjamin Kosnik  [EMAIL PROTECTED]

* include/ext/hash_map: To...
* include/backward/hash_map: ...here. Remove debug mode.
* include/ext/hash_set: To...
* include/backward/hash_set: ...here. Remove debug mode.
* include/ext/hash_fun.h: To...
* include/backward/hash_fun.h: ...here.
* include/ext/hashtable.h: To...
* include/backward/hashtable.h: ...here.

* include/bits/c++config: Remove __gnu_cxx namespace from debug mode.
* include/debug/debug.h: Same.

* include/debug/hash_map: Remove.
* include/debug/hash_multimap.h: Remove.
* include/debug/hash_set.h: Remove.
* include/debug/hash_set: Remove.
* include/debug/hash_multiset.h: Remove.
* include/debug/hash_map.h: Remove.

* include/Makefile.am (ext_headers): Move hash_set, hash_map to
backward.
(debug_headers): Remove hash_map, hash_set, hash_map.h,
hash_map.h, hash_multiset.h, hash_multimap.h.   
* include/Makefile.in: Regenerate.

* docs/html/debug.html: Update.
* docs/html/ext/howto.html: Same.
* docs/html/faq/index.html: Same.
* docs/doxygen/Intro.3: Same.
* docs/doxygen/user.cfg.in: Adjust includes.
* testsuite/ext/hash_map: Move to...
* testsuite/backward/hash_map: ...here.
* testsuite/ext/hash_set: Move to...
* testsuite/backward/hash_set: ...here.

2007-10-18  Benjamin Kosnik  [EMAIL PROTECTED]

Removal of pre-ISO C++ items from include/backwards.
* include/Makefile.am (backward_headers): Remove all but strstream,
backward_warning.h.
* include/Makefile.in: Regenerate.
* include/backward/new.h: Remove.
* include/backward/iterator.h: Same.
* include/backward/alloc.h: Same.
* include/backward/set.h: Same.
* include/backward/hashtable.h: Same.
* include/backward/hash_set.h: Same.
* include/backward/fstream.h: Same.
* include/backward/tempbuf.h: Same.
* include/backward/istream.h: Same.
* include/backward/bvector.h: Same.
* include/backward/stack.h: Same.
* include/backward/rope.h: Same.
* include/backward/complex.h: Same.
* include/backward/ostream.h: Same.
* include/backward/heap.h: Same.
* include/backward/iostream.h: Same.
* include/backward/function.h: Same.
* include/backward/multimap.h: Same.
* include/backward/pair.h: Same.
* include/backward/stream.h: Same.
* include/backward/iomanip.h: Same.
* include/backward/slist.h: Same.
* include/backward/tree.h: Same.
* include/backward/vector.h: Same.
* include/backward/deque.h: Same.
* include/backward/multiset.h: Same.
* include/backward/defalloc.h: Same.
* include/backward/list.h: Same.
* include/backward/map.h: Same.
* include/backward/algobase.h: Same.
* include/backward/hash_map.h: Same.
* include/backward/algo.h: Same.
* include/backward/queue.h: Same.
* include/backward/streambuf.h: Same.
* testsuite/backward/header_hash_set_h.cc: Same.
* testsuite/backward/header_slist_h.cc: Same.
* testsuite/backward/header_hash_map_h.cc: Same.
* testsuite/backward/header_tempbuf_h.cc: Same.
* testsuite/backward/header_deque_h.cc: Same.
* testsuite/backward/header_rope_h.cc: Same.
* testsuite/backward/header_iterator_h.cc: Same.
* testsuite/backward/header_hashtable_h.cc: Same.

2007-10-18  Benjamin Kosnik  [EMAIL PROTECTED]

PR libstdc++/30085
* include/debug/unordered_map: New.
* include/debug/unordered_set: New.
* include/debug/safe_association.h: New.
* include/std/unordered_map: Include debug header if _GLIBCXX_DEBUG.
* include/std/unordered_set: Same.
* include/Makefile.am (debug_headers): Add unordered_map,
unordered_set, safe_association.h.
* include/Makefile.in: Regenerate.
* testsuite/23_containers/unordered_map/requirements/debug.cc: New.
* testsuite/23_containers/unordered_multimap/requirements/
debug.cc: New.
* testsuite/23_containers/unordered_set/requirements/debug.cc: New.
* testsuite/23_containers/unordered_multiset/requirements/
debug.cc: New.

2007-10-18  Benjamin Kosnik  [EMAIL PROTECTED]

* testsuite/util/native_type/assoc/native_hash_multimap.hpp: Remove
hash_map include.


Added:
trunk/libstdc++-v3/include/backward/hash_fun.h
  - copied, changed from r129351, trunk/libstdc++-v3/include/ext/hash_fun.h
   

[Bug middle-end/21718] real.c rounding not perfect

2007-10-18 Thread neil at gcc dot gnu dot org


--- Comment #6 from neil at gcc dot gnu dot org  2007-10-18 15:24 ---
(In reply to comment #5)

 I believe more than 160 bits are required to get even single-precision numbers
 right with DECIMAL_DIG digits precision and an exponent.  I'm going to try and
 prove this by finding an example.  It could be hard as I believe 160 is only
 just below the required number.

Here's an example to prove this assertion.  When compiled with GCC 4.1.2 or
4.1.3 with -std=c99, assuming a correctly-rounding libc (e.g. NetBSD's; glibc
also seems to get this correct) you get the following output:

0x1.8p-147 0x1.4p-147 8.40779078594890243e-45

So not only is it rounded incorrectly, but the number it is rounded to, when
converted back to decimal, does not even match the input number in the first
digit.

#include stdio.h
#include stdlib.h

int main (void)
{
  float f1 = 7.7071415537864938e-45;
  float f2 = strtof (7.7071415537864938e-45, NULL);

  printf( %a %a %0.18g\n, f1, f2, f1);

  return 0;
}


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21718



[Bug libstdc++/30085] switch debug mode hash containers from ext to tr1

2007-10-18 Thread bkoz at gcc dot gnu dot org


--- Comment #5 from bkoz at gcc dot gnu dot org  2007-10-18 16:04 ---

Done.


-- 

bkoz at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30085



[Bug libstdc++/33489] parallel v3: not default constructible issues

2007-10-18 Thread bkoz at gcc dot gnu dot org


--- Comment #11 from bkoz at gcc dot gnu dot org  2007-10-18 16:06 ---

Wolfgang, I'm going to close this as fixed, ok? We are now checking
systematically for this issue as part of the 25_algo conformance testing. If
you find any more of these, please re-open. 

best,
benjamin


-- 

bkoz at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33489



[Bug driver/33577] Compile failing for xpdf 3.02

2007-10-18 Thread cabanasg at metro dot net


--- Comment #7 from cabanasg at metro dot net  2007-10-18 16:13 ---
Subject: RE:  Compile failing for xpdf 3.02

My problem occurs during the 'make' step, after the './configure' step.
How can I use 'g++' for linking during the 'make' step?

Thanks. 

-Original Message-
From: pinskia at gcc dot gnu dot org [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, October 17, 2007 5:56 PM
To: Cabanas, Gilberto
Subject: [Bug driver/33577] Compile failing for xpdf 3.02



--- Comment #6 from pinskia at gcc dot gnu dot org  2007-10-18 00:56
---
with the following error message:  (Any help will be greatly
appreciated)

ld: 0711-317 ERROR: Undefined symbol: vtable for
__cxxabiv1::__class_type_info

Yes you are not linking with the correct libstdc++ or not linking with
it at
all.

Link with g++ and not gcc directly.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added


 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33577

--- You are receiving this mail because: ---
You reported the bug, or are watching the reporter.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33577



[Bug libstdc++/33490] parallel v3: std::accumulate assumes iterators have std::iterator_traits declared

2007-10-18 Thread bkoz at gcc dot gnu dot org


--- Comment #3 from bkoz at gcc dot gnu dot org  2007-10-18 16:18 ---

Current mainline in parallel mode still has this fail, for the record.

Looking at the concepts code 

From:
http://www.generic-programming.org/software/ConceptGCC/

include/bits/stl_numeric.h:

  template_GLIBCXX_REQ_PARM(InputIterator, _Iter), 
   _GLIBCXX_REQ_PARM(CopyConstructible, _Tp)
_GLIBCXX_WHERE(Addable_Tp, _Iter::value_type, 
   Assignable_Tp, 
  Addable_Tp, _Iter::value_type::result_type)
_Tp
accumulate(_Iter __first, _Iter __last, _Tp __init)
{
  __glibcxx_requires_valid_range(__first, __last);

  for (; __first != __last; ++__first)
__init = __init + *__first;
  return __init;
}

which is also assuming iterator_traits::value_type

-benjamin


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33490



[Bug c/33809] Rounding off error in GCC 4.1.2

2007-10-18 Thread manu at gcc dot gnu dot org


--- Comment #4 from manu at gcc dot gnu dot org  2007-10-18 16:27 ---
(In reply to comment #3)
 Your code is undefined.  You have multiple assignments to pow_tmp without
 intervening sequence points.
 

Do you think it could be interesting to collect these kind of reports as
potential testcases for an improved Wsequence-point (PR16202)?

The only thing to be done is (apart from closing it as invalid) add it as
blocking  bug 16202.


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||manu at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33809



[Bug libstdc++/33807] Incorrect ambiguous overload

2007-10-18 Thread bkoz at gcc dot gnu dot org


--- Comment #3 from bkoz at gcc dot gnu dot org  2007-10-18 16:29 ---

Thanks for fixing this Paolo.

-benjamin


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33807



[Bug libstdc++/33603] configuration failure during native build

2007-10-18 Thread bkoz at gcc dot gnu dot org


--- Comment #6 from bkoz at gcc dot gnu dot org  2007-10-18 16:31 ---

Yo Gaby. Has this been worked out? Can we close this?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33603



[Bug libstdc++/33807] Incorrect ambiguous overload

2007-10-18 Thread bldantes at comcast dot net


--- Comment #4 from bldantes at comcast dot net  2007-10-18 16:40 ---
Why does adding the new libstdc++ template function:

templatetypename _Tp
inline bool operator!=(const allocator_Tp, const allocator_Tp);

fix the conflict between my template function:

template class T
bool operator != (const T x, const T y);

and the existing libstdc++ template function:

templatetypename _T1, typename _T2
inline bool operator!=(const allocator_T1, const allocator_T2);

???

Before the addition of the new template function, it seems like the conflict in
the first place is just wrong. The compiler should pick the existing one in
libstdc++ over mine because it more closely matches the type, no?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33807



[Bug tree-optimization/33812] Vectorizer testcases fail

2007-10-18 Thread dominiq at lps dot ens dot fr


--- Comment #4 from dominiq at lps dot ens dot fr  2007-10-18 16:40 ---
May I guess revision 129400?

--- trunk/gcc/ChangeLog 2007/10/17 00:46:27 129399
+++ trunk/gcc/ChangeLog 2007/10/17 01:05:50 129400
@@ -1,3 +1,10 @@
+2007-10-17  Alan Modra  [EMAIL PROTECTED]
+
+   * config/rs6000/rs6000.c (rs6000_emit_epilogue): Correct
+   altivec sp_offset.  Rearrange sp_offset assignments to
+   correspond to stack adjustments.  Use frame_reg_rtx for
+   SPE register restores.  Correct SPE stack adjustment.
+
 2007-10-17  Manuel Lopez-Ibanez  [EMAIL PROTECTED]
* builtins.c (gimplify_va_arg_expr): Use inform for help message.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33812



[Bug target/33812] [4.3 Regression] Vectorizer testcases fail

2007-10-18 Thread pinskia at gcc dot gnu dot org


--- Comment #5 from pinskia at gcc dot gnu dot org  2007-10-18 16:56 ---
Looks like they also appear on ppc-darwin too:

http://gcc.gnu.org/ml/gcc-testresults/2007-10/msg00818.html


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org
   Severity|normal  |critical
 Status|UNCONFIRMED |NEW
  Component|tree-optimization   |target
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-10-18 16:56:18
   date||
Summary|Vectorizer testcases fail   |[4.3 Regression] Vectorizer
   ||testcases fail
   Target Milestone|--- |4.3.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33812



[Bug rtl-optimization/33796] valgrind error with -O2 for linux kernel code

2007-10-18 Thread dcb314 at hotmail dot com


--- Comment #6 from dcb314 at hotmail dot com  2007-10-18 17:33 ---
(In reply to comment #2)
 Although valgrind is correct that we are doing an uninitialized read, the code
 is actually working as designed and is correct.

I wish I had a pound for every time I've heard that ;-

 So yes we do some uninitialized accesses to the sparse array, but that's 
 ok.  

Sure ?

So absolutely *any* value is fine ?

Aren't there some machines where unaligned accesses to words fail ?

 It's also a benefit of sparseset, given that we don't
 have to memset/clear the whole sparseset data structure before using it, so
 it's fast.

I'd appreciate seeing some performance measurement numbers which 
tell us just how fast, so we can make a comparison of just how much
speed this tricky code is buying us.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33796



[Bug libstdc++/33807] Incorrect ambiguous overload

2007-10-18 Thread pcarlini at suse dot de


--- Comment #5 from pcarlini at suse dot de  2007-10-18 17:48 ---
No, this is ADL at work. Browse the comments in stl_iterator.h for some
additional hints, or delve into the nuisances of ADL ;) Anyway, for mainline, I
will also add another fix, which avoid completely the comparison for stateless
allocators.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33807



[Bug libstdc++/33807] Incorrect ambiguous overload

2007-10-18 Thread paolo at gcc dot gnu dot org


--- Comment #6 from paolo at gcc dot gnu dot org  2007-10-18 17:58 ---
Subject: Bug 33807

Author: paolo
Date: Thu Oct 18 17:58:13 2007
New Revision: 129454

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=129454
Log:
2007-10-18  Paolo Carlini  [EMAIL PROTECTED]

PR libstdc++/33807
* include/bits/allocator.h (operator==(const allocator_Tp,
const allocator_Tp), operator!=(const allocator_Tp,
const allocator_Tp)): Add.
* testsuite/20_util/memory/allocator/33807.cc: New.

Added:
   
branches/gcc-4_2-branch/libstdc++-v3/testsuite/20_util/memory/allocator/33807.cc
Modified:
branches/gcc-4_2-branch/libstdc++-v3/ChangeLog
branches/gcc-4_2-branch/libstdc++-v3/include/bits/allocator.h


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33807



[Bug libstdc++/33807] Incorrect ambiguous overload

2007-10-18 Thread pcarlini at suse dot de


--- Comment #7 from pcarlini at suse dot de  2007-10-18 17:58 ---
Fixed for 4.2.3.


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33807



[Bug libfortran/30694] minval/maxval with +/-Inf

2007-10-18 Thread burnus at gcc dot gnu dot org


--- Comment #26 from burnus at gcc dot gnu dot org  2007-10-18 18:22 ---
If I understand it correctly, there is a difference between
IEEE 754-1989 and the current draft of IEEE 754 (duped IEEE 754r), see also
http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/33055faef528c075

IEEE 754r says that all operations with NaN yield NaN except of min and max
which give only NaN if all (i.e. both) arguments are NaN.

IEEE 754-1989 had no min/max functions and thus always NaN have to be produced
for maxval( huge(x), NAN ).


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30694



[Bug libstdc++/33603] configuration failure during native build

2007-10-18 Thread gdr at cs dot tamu dot edu


--- Comment #7 from gdr at cs dot tamu dot edu  2007-10-18 18:46 ---
Subject: Re:  configuration failure during native build

bkoz at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| Yo Gaby. Has this been worked out? Can we close this?

As long as we document that that build on MinGW requires explicit
specification of the paths to `as' and `ld'.  

-- Gaby


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33603



[Bug libstdc++/33489] parallel v3: not default constructible issues

2007-10-18 Thread bangerth at dealii dot org


--- Comment #12 from bangerth at dealii dot org  2007-10-18 18:46 ---
Yes, sorry. I meant to report of course that I believe that it works now.
Thanks for your work!
W.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33489



[Bug tree-optimization/33804] ICE in vect_transform_stmt, at tree-vect-transform.c:6131 with -ftree-vectorize

2007-10-18 Thread falk at debian dot org


--- Comment #4 from falk at debian dot org  2007-10-18 19:26 ---
Created an attachment (id=14370)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14370action=view)
Vectorization dump file


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33804



[Bug tree-optimization/32921] [4.3 Regression] Revision 126326 causes 12% slowdown

2007-10-18 Thread hjl at lucon dot org


--- Comment #17 from hjl at lucon dot org  2007-10-18 20:55 ---
This patch:

http://gcc.gnu.org/ml/gcc-patches/2007-10/msg01047.html

makes 437.leslie3d 10% faster on Intel Core 2 Duo 64bit. But it is still 23%
slower than gcc 4.1 Red Hat.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32921



[Bug target/33774] Cygwin/mingw do not support 16 byte alignment of struct/union fields

2007-10-18 Thread dannysmith at users dot sourceforge dot net


--- Comment #2 from dannysmith at users dot sourceforge dot net  2007-10-18 
21:04 ---
The native compiler MSVC++ does not limit field alignment to 64 bits, but as
documented here 
Windows Data Alignment on IPF, x86, and x64
http://msdn2.microsoft.com/en-us/library/Aa290049(VS.71).aspx

supports at least up to 256-bit field alignment  (see Listing 5 in above
article).


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33774



[Bug fortran/32021] Fix,document,remove GFORTRAN_* environment variables

2007-10-18 Thread fxcoudert at gcc dot gnu dot org


--- Comment #4 from fxcoudert at gcc dot gnu dot org  2007-10-18 21:25 
---
Subject: Bug 32021

Author: fxcoudert
Date: Thu Oct 18 21:25:21 2007
New Revision: 129463

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=129463
Log:
PR libfortran/32021
* runtime/backtrace.c (local_strcasestr): Protect by appropriate
macros.
* runtime/main.c (cleanup): Cast argument to free.
* intrinsics/spread_generic.c (spread_internal): Match runtime_error
arguments and format.
* intrinsics/signal.c (alarm_sub_int_i4, alarm_sub_int_i8): Cast
pointers to avoid warnings.

Modified:
trunk/libgfortran/ChangeLog
trunk/libgfortran/intrinsics/signal.c
trunk/libgfortran/intrinsics/spread_generic.c
trunk/libgfortran/runtime/backtrace.c
trunk/libgfortran/runtime/main.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32021



[Bug libstdc++/33815] New: tr1::uniform_int isn't uniform

2007-10-18 Thread jkherciueh at gmx dot net
Consider:

#include ctime
#include iostream
#include vector
#include tr1/random

void test ( unsigned int num_buckets, unsigned int seed = 3141592 ) {
  std::cout  using   num_buckets   buckets:\n;
  std::tr1::mt19937 eng(seed);
  const unsigned long range = eng.max() / 5.5;
  std::tr1::uniform_intunsigned long rnd( 0, range );
  std::vectorunsigned long bucket ( num_buckets, 0 );
  for ( unsigned int i = 0; i  100; ++i ) {
++bucket[ rnd(eng) / (range / num_buckets) ];
  }
  for ( unsigned int i = 0; i  num_buckets; ++i ) {
std::cout  i  :   bucket[i]  '\n';
  }
  std::cout  '\n';
}

int main ( void ) {
  test( 2 );
  test( 3 );
  test( 4 );
  test( 6 );
  test( 10 );
  test( 20 );
  test( 30 );
  test( 40 );
}

It yields:

using 2 buckets.
0: 545389
1: 454611

using 3 buckets.
0: 363350
1: 333829
2: 302821

using 4 buckets.
0: 272507
1: 272882
2: 227489
3: 227122

using 6 buckets.
0: 181743
1: 181607
2: 182039
3: 151790
4: 151182
5: 151639

...


This doesn't look uniform. It looks more like the buckets in the
lower half get hit significantly more often.

Credit: This strange behavior had been reported by David Benbennick
to Boost long ago and was apparently never fixed.


-- 
   Summary: tr1::uniform_int isn't uniform
   Product: gcc
   Version: 4.2.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jkherciueh at gmx dot net
 GCC build triplet: i686-pc-linux
  GCC host triplet: i686-pc-linux
GCC target triplet: i686-pc-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33815



[Bug fortran/33795] Environment variable GFORTRAN_UNBUFFERED_number not working

2007-10-18 Thread jvdelisle at gcc dot gnu dot org


--- Comment #3 from jvdelisle at gcc dot gnu dot org  2007-10-19 04:16 
---
Subject: Bug 33795

Author: jvdelisle
Date: Fri Oct 19 04:16:14 2007
New Revision: 129471

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=129471
Log:
2007-10-18  Jerry DeLisle  [EMAIL PROTECTED]

PR fortran/33795
* gfortran.texi: Document GFORTRAN_UNBUFFERED_PRECONNECTED
environment variable.  Delete mention of environment variable
GFORTRAN_UNBUFFERED_n.

Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/gfortran.texi


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33795



[Bug fortran/33795] Environment variable GFORTRAN_UNBUFFERED_number not working

2007-10-18 Thread jvdelisle at gcc dot gnu dot org


--- Comment #2 from jvdelisle at gcc dot gnu dot org  2007-10-19 04:11 
---
Subject: Bug 33795

Author: jvdelisle
Date: Fri Oct 19 04:10:58 2007
New Revision: 129470

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=129470
Log:
2007-10-18  Francois-Xavier Coudert  [EMAIL PROTECTED]
Jerry DeLisle  [EMAIL PROTECTED]

PR libfortran/33795
* libgfortran.h: Add unbuffered_preconnected.
* io/unix.c (output_stream): Set stream unbuffered flag if
options.unbuffered_preconnected has been set.
(error_stream): Ditto.
* runtime/environ.c (variable_table): Add to environment variable table
the entry: GFORTRAN_UNBUFFERED_PRECONNECTED. 

Modified:
trunk/libgfortran/ChangeLog
trunk/libgfortran/io/unix.c
trunk/libgfortran/libgfortran.h
trunk/libgfortran/runtime/environ.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33795



[Bug fortran/33814] New: Failure of gfortran n Mac Mini

2007-10-18 Thread cbas25 at strath dot ac dot uk
I am using gfortran on a Mac Mini, and have got the compiler by untaring the
gfortran-intel-bin.tar package.  The compilers are located in /usr/local/bin. 
I am running Mac OS X Version 10.4.10

Whenever I invoke this compiler without specifying a cource file I get the
expected error message:
gfortran: no input files
From this I deduce that the compiler is in the correct place and is able to
detect this simplest of errors

Whenever I invoke the compiler with a valid fortran source file I get the error
message:
gfortran: error trying to exec 'f951': execvp: No such file or directive.

I detected this error while trying to compile the sources for OpenGl, and I
could not make sense of the message.  I then discovered that the error message
was the same for all the input files that I tried.

Eventually I tried compiling a program that compiled successfully with g77
using the command line:

/usr/local/bin/g77 -ffixed-form -ffixed-line-length-132
-fbounds-check-ffortran-bounds-check -w -ff90 -0 strauss strauss.f

with the command line:

/usr/local/bin/gfortran -ffixed-form -ffixed-line-length-132 -fbounds-check
-fmax-errors-0 -o strauss strauss.f

This caused the response (as before) gfortran: error trying to exec 'f951' :
execvp

I have searched the known bugs file for f951 without any response.

I admit that I am new to Mac systems but have experience of Linux and SGI
systems from which the
above source files are derived.

I have tried out trivially simple source programs for testing and got the same
error message in response


-- 
   Summary: Failure of gfortran n Mac Mini
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: cbas25 at strath dot ac dot uk


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33814



[Bug target/33704] AIX runs c++ constructors in incorrect order

2007-10-18 Thread bkoz at gcc dot gnu dot org


--- Comment #22 from bkoz at gcc dot gnu dot org  2007-10-19 02:00 ---

 I believe there are other functions in libstdc++ that depend on initialization
 order. I do not have specifics.

Perhaps:
FAIL: 27_io/objects/char/6.cc execution test
FAIL: 27_io/objects/wchar_t/6.cc execution test
FAIL: ext/mt_allocator/check_new.cc execution test
FAIL: ext/pool_allocator/check_new.cc execution test

from:
http://gcc.gnu.org/ml/gcc-testresults/2007-10/msg00820.html

These are the ones I would suspect might change.

FWIW, I agree 100% with Wolfgang's venting in #8, #10. Correct __cxa_atexit
behavior is essential.

-benjamin


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33704



[Bug target/33704] AIX runs c++ constructors in incorrect order

2007-10-18 Thread ajd at gentrack dot com


--- Comment #21 from ajd at gentrack dot com  2007-10-19 01:44 ---
Created an attachment (id=14372)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14372action=view)
support -blazy, add option to disable

I suggest exportinitfini_flag is enabled by default or atleast for the build of
libstdc++.a and libgcc_s.a.
It should have minimal impact/risk.

initdependents_flag has risk/impact attached. You may want to reverse the
default.

My case for having it on by default:
To use exceptions within global constructors a module needs to be linked with
initdependents_flag enabled.

I believe there are other functions in libstdc++ that depend on initialization
order. I do not have specifics.

Assuming AIX was the only OS that works this way, it allows removal of these
types of workarounds:
http://gcc.gnu.org/ml/libstdc++/2001-01/msg00369.html


-- 

ajd at gentrack dot com changed:

   What|Removed |Added

  Attachment #14327|0   |1
is obsolete||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33704



[Bug fortran/33544] [4.3 only] Warning in TRANSFER intrinsic should be made optional

2007-10-18 Thread jvdelisle at gcc dot gnu dot org


--- Comment #10 from jvdelisle at gcc dot gnu dot org  2007-10-19 04:58 
---
This does the trick.  I am checking the testsuite for any side effects.


Index: simplify.c
===
--- simplify.c  (revision 129465)
+++ simplify.c  (working copy)
@@ -4065,7 +4065,7 @@ gfc_simplify_transfer (gfc_expr *source,
   result_size = result_elt_size;
 }

-  if (source_size  result_size)
+  if (gfc_option.warn_surprising  source_size  result_size)
 gfc_warning(Intrinsic TRANSFER at %L has partly undefined result: 
source size %ld  result size %ld, source-where,
(long) source_size, (long) result_size);


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33544



[Bug driver/33772] collect2 doesn't strip .sl version

2007-10-18 Thread dave at hiauly1 dot hia dot nrc dot ca


--- Comment #1 from dave at hiauly1 dot hia dot nrc dot ca  2007-10-18 
23:55 ---
Subject: Re:   New: collect2 doesn't strip .sl version

On Sun, 14 Oct 2007, danglin at gcc dot gnu dot org wrote:

 After recently updating libgmp, I find that shared libraries that
 were linked against the old version are broken.  For example, libtool
 links libguile.sl against libgmp.sl.7, /usr/local/lib/libltdl.sl.4,
 /usr/lib/libc.1 and /users/gcc/gcc-4.2.0/lib/libgcc_s.sl.

The reason previously installed libraries break is the dependent libraries
have hardcoded dependencies on the `*GLOBAL*' symbols used for constructors,
destructors and EH exception support (hppa2.0w-hp-hpux* currently has
its EH data in the data section).

The attached patch fixes the versioning problem.  However, we still have
a random portion in every `*GLOBAL_F*' symbol.  This can easily change
from one build to the next.  So, I'm thinking we need to bury them
in special sections similar to .init_array and .fini_array.  However,
the dynamic loader doesn't provide direct support for this, so this
it's going to take some thinking as to the best way to do this.

Dave


--- Comment #2 from dave at hiauly1 dot hia dot nrc dot ca  2007-10-18 
23:55 ---
Created an attachment (id=14371)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14371action=view)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33772



[Bug fortran/33795] Environment variable GFORTRAN_UNBUFFERED_number not working

2007-10-18 Thread jvdelisle at gcc dot gnu dot org


--- Comment #4 from jvdelisle at gcc dot gnu dot org  2007-10-19 04:22 
---
Fixed, closing


-- 

jvdelisle at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33795