[Bug c/45317] struct union misalignment

2010-08-18 Thread schwab at linux-m68k dot org


--- Comment #1 from schwab at linux-m68k dot org  2010-08-18 08:19 ---
That's how it is defined by the respective ABIs.  On i386-linux a struct field
has at most 32-bit alignment.  Add explicit padding or compile with
-malign-double if you want to be compatible to the mingw32 ABI, but that won't
be the only difference between those ABIs.


-- 

schwab at linux-m68k dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug debug/42487] FAIL: gcc.dg/debug/dwarf2/aranges-fnsec-1.c scan-assembler DW_AT_ranges

2010-08-18 Thread iains at gcc dot gnu dot org


--- Comment #7 from iains at gcc dot gnu dot org  2010-08-18 08:21 ---
Subject: Bug 42487

Author: iains
Date: Wed Aug 18 08:21:43 2010
New Revision: 163326

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=163326
Log:

PR debug/42487
* lib/target-supports.exp
(check_effective_target_function_sections): New.
* gcc.dg/debug/dwarf2/aranges-fnsec-1.c: Check that the target supports
function sections before proceding.


Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/debug/dwarf2/aranges-fnsec-1.c
trunk/gcc/testsuite/lib/target-supports.exp


-- 


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



[Bug middle-end/45316] [4.6 Regression] ICE: verify_flow_info failed: BB 3 can not throw but has an EH edge with -O1 -ftree-pre -fnon-call-exceptions

2010-08-18 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2010-08-18 08:45 ---
Mine.


-- 

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|2010-08-18 03:36:29 |2010-08-18 08:45:33
   date||


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



[Bug middle-end/45316] [4.6 Regression] ICE: verify_flow_info failed: BB 3 can not throw but has an EH edge with -O1 -ftree-pre -fnon-call-exceptions

2010-08-18 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.6.0


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



[Bug middle-end/45312] GCC 4.4.4 miscompiles (?) the Linux kernel, makes kernel unusable

2010-08-18 Thread jakub at gcc dot gnu dot org


--- Comment #6 from jakub at gcc dot gnu dot org  2010-08-18 08:55 ---
Doing binary search shouldn't be too hard, just build two separate kernel
trees, one with the problematic patch applied, one without, with make V=1
output put into some log file in each case.
Then just start with the final link line and replace half of the
objects/libraries there with matching objects/libraries from the second build
and vice versa, test that kernel and depending on the results continue
narrowing it down to half of the object files/libraries etc., repeat until you
have e.g. working kernel with all objects with the patch applied except one (or
non-working kernel with all objects without the patch applied except one).
Or, if you suspect particular object files, try to change just those
immediately.


-- 


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



[Bug c++/45315] [4.4/4.5/4.6 Regression] ICE: tree check: expected aggr_init_expr, have call_expr in build_value_init, at cp/init.c:317

2010-08-18 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.4.5


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



[Bug tree-optimization/45314] [4.5/4.6 Regression] ICE: error: in remove_unreachable_handlers, at tree-sh.c:3294 with -O2 -floop-interchange

2010-08-18 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2010-08-18 09:16 ---
With 4.5.1 I get (checking enabled)

VM.cpp: In member function 'gnash::VM::RNG gnash::VM::randomNumberGenerator()
const':
VM.cpp:126:1: error: statement marked for throw in middle of block
# .MEM_19 = VDEF .MEM_18
D.294844_12 = OBJ_TYPE_REF(D.294843_10;D.294841_8-0) (D.294841_8);

VM.cpp:126:1: internal compiler error: verify_stmts failed
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

and with trunk I get

VM.cpp: In member function 'gnash::VM::RNG gnash::VM::randomNumberGenerator()
const':
VM.cpp:126:1: internal compiler error: in create_linear_expr_from_tree, at
graphite-sese-to-poly.c:1207
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

4.4.4 works.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||spop at gcc dot gnu dot org
 Status|UNCONFIRMED |NEW
  Component|middle-end  |tree-optimization
 Ever Confirmed|0   |1
   Keywords||ice-on-valid-code
  Known to fail||4.5.1 4.6.0
  Known to work||4.4.4
   Last reconfirmed|-00-00 00:00:00 |2010-08-18 09:16:16
   date||
Summary|ICE: error: in  |[4.5/4.6 Regression] ICE:
   |remove_unreachable_handlers,|error: in
   |at tree-sh.c:3294 with -O2 -|remove_unreachable_handlers,
   |floop-interchange   |at tree-sh.c:3294 with -O2 -
   ||floop-interchange
   Target Milestone|--- |4.5.2


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



[Bug rtl-optimization/42575] arm-eabi-gcc 64-bit multiply weirdness

2010-08-18 Thread mkuvyrkov at gcc dot gnu dot org


--- Comment #7 from mkuvyrkov at gcc dot gnu dot org  2010-08-18 10:34 
---
Subject: Bug 42575

Author: mkuvyrkov
Date: Wed Aug 18 10:34:02 2010
New Revision: 163334

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=163334
Log:
gcc/
PR rtl-optimization/42575
* optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
live ranges.

gcc/testsuite/
PR rtl-optimization/42575
* gcc.target/pr42575.c: New test.

Added:
trunk/gcc/testsuite/gcc.target/arm/pr42575.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/optabs.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug rtl-optimization/42575] arm-eabi-gcc 64-bit multiply weirdness

2010-08-18 Thread mkuvyrkov at gcc dot gnu dot org


--- Comment #8 from mkuvyrkov at gcc dot gnu dot org  2010-08-18 10:43 
---
Bernd did all the heavy lifting for this patch.  The above patch fixes the last
piece of the problem -- extra move when compiling for ARMv7-A.


-- 

mkuvyrkov at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug rtl-optimization/43494] [4.4/4.5/4.6 Regression] Overlooked dependency causes wrong scheduling, wrong code

2010-08-18 Thread steven at gcc dot gnu dot org


--- Comment #23 from steven at gcc dot gnu dot org  2010-08-18 10:50 ---
So the scheduler uses cselib to get a better view of the address, but cselib
doesn't actually give a better address. And the solution is to just give up in
that case? It seems to me that if cselib doesn't give a better address than
XEXP(MEM,0) then the original address should be used.


-- 


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



[Bug c++/45049] [4.6 Regression] ICE: tree check: expected tree that contains 'decl minimal' structure, have 'tree_list' in push_overloaded_decl, at cp/name-lookup.c:2160

2010-08-18 Thread jakub at gcc dot gnu dot org


--- Comment #6 from jakub at gcc dot gnu dot org  2010-08-18 12:32 ---
This is broken for more than month, by a change which didn't fix any bug, nor
improved code generation nor compilation time; I'd say DECL_CHAIN should drop
the DECL_MINIMAL_CHECK test unless this is resolved soon, either by reverting
those places to use TREE_CHAIN again instead of DECL_CHAIN, or use
if (DECL_P (x)) ... DECL_CHAIN (x) ... else ... TREE_CHAIN (x) ...;


-- 


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



[Bug target/45094] [arm] wrong instructions for dword move in some cases

2010-08-18 Thread qiyao at gcc dot gnu dot org


--- Comment #6 from qiyao at gcc dot gnu dot org  2010-08-18 12:34 ---
Subject: Bug 45094

Author: qiyao
Date: Wed Aug 18 12:33:43 2010
New Revision: 163338

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=163338
Log:
gcc/
PR target/45094
* config/arm/arm.c (output_move_double): Fix typo generating 
instructions ('ldr'-'str').

gcc/testsuite/

PR target/45094
* gcc.target/arm/pr45094.c: New test.

Added:
trunk/gcc/testsuite/gcc.target/arm/pr45094.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/arm/arm.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug middle-end/45292] [4.5/4.6 regression] libgomp test failures for i586-linux

2010-08-18 Thread hjl at gcc dot gnu dot org


--- Comment #11 from hjl at gcc dot gnu dot org  2010-08-18 13:36 ---
Subject: Bug 45292

Author: hjl
Date: Wed Aug 18 13:35:46 2010
New Revision: 163339

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=163339
Log:
Expand pending pops before trying the optab.

2010-08-18  Paolo Bonzini  bonz...@gnu.org

PR middle-end/45292
* optabs.c (expand_bool_compare_and_swap): Expand pending
pops before trying the optab.

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


-- 


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



[Bug fortran/45318] New: Do more parenthesis simplification with -fno-protect-parens

2010-08-18 Thread burnus at gcc dot gnu dot org
Fortran preserves () in expressions - in many cases, it shouldn't need to do so
if 
-fno-protect-parens is specified. The option currently affects only the middle
end, but there might be some cases where it is preserved without needing to be.
(Though, I might be wrong and everything is already properly simplified).

Note: The out most parenthesis can not always be removed without changing the
semantics, e.g.

  call copy ( (a), a)
contains
  subroutine copy (x, y)
intent(in) :: x
intent(out) :: y
is valid but only works if the (a) [- temporary] is not optimized to a.

In some cases, one might need to check for the unsave_math_optimization flag
before changing, e.g., 2+(a-2) to a - or rather (a).


-- 
   Summary: Do more parenthesis simplification with -fno-protect-
parens
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: enhancement
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org


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



[Bug c++/45303] Compile error when not using -ftree-ter

2010-08-18 Thread jobnoorman at gmail dot com


--- Comment #7 from jobnoorman at gmail dot com  2010-08-18 14:03 ---
(In reply to comment #3)
 Looking at the diagnostics issued when -pedantic is added, I think the right
 conversion is
 
 (void*)(plain_foobar_t)Foo::foobar
 
 That still uses the G++ extension, and doesn't give the asm error even without
 optimisation.

That looks like a workaround to me.

How could it ever be that (void*)some_expression is accepted as a constant
expression when some_expression is not?


-- 


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



[Bug preprocessor/45319] New: FAIL: libgomp.fortran/vla4.f90

2010-08-18 Thread danglin at gcc dot gnu dot org
Executing on host: /mnt/gnu/gcc/objdir/gcc/xgcc -B/mnt/gnu/gcc/objdir/gcc/
/mnt/
gnu/gcc/gcc/libgomp/testsuite/libgomp.fortran/vla4.f90 
-B/mnt/gnu/gcc/objdir/hp
pa2.0w-hp-hpux11.11/./libgomp/
-B/mnt/gnu/gcc/objdir/hppa2.0w-hp-hpux11.11/./lib
gomp/.libs -I/mnt/gnu/gcc/objdir/hppa2.0w-hp-hpux11.11/./libgomp
-I/mnt/gnu/gcc/
gcc/libgomp/testsuite/.. -fmessage-length=0 -fopenmp  -O0  
-B/mnt/gnu/gcc/objdi
r/hppa2.0w-hp-hpux11.11/./libgomp/../libgfortran/.libs  
-L/mnt/gnu/gcc/objdir/h
ppa2.0w-hp-hpux11.11/./libgomp/.libs -lgomp
-L/mnt/gnu/gcc/objdir/hppa2.0w-hp-hp
ux11.11/./libgomp/../libgfortran/.libs -lgfortran -lm   -o ./vla4.exe   
(timeou
t = 300)
/mnt/gnu/gcc/gcc/libgomp/testsuite/libgomp.fortran/vla4.f90: In function 'foo':
/mnt/gnu/gcc/gcc/libgomp/testsuite/libgomp.fortran/vla4.f90:96:0: warning:
barri
er region may not be closely nested inside of work-sharing, critical, ordered,
m
aster or explicit task region
output is:
/mnt/gnu/gcc/gcc/libgomp/testsuite/libgomp.fortran/vla4.f90: In function 'foo':
/mnt/gnu/gcc/gcc/libgomp/testsuite/libgomp.fortran/vla4.f90:96:0: warning:
barri
er region may not be closely nested inside of work-sharing, critical, ordered,
m
aster or explicit task region

FAIL: libgomp.fortran/vla4.f90  -O0   (test for warnings, line 97)
FAIL: libgomp.fortran/vla4.f90  -O0  (test for excess errors)
/mnt/gnu/gcc/gcc/libgomp/testsuite/libgomp.fortran/vla4.f90:96:0: warning:
barri
er region may not be closely nested inside of work-sharing, critical, ordered,
m
aster or explicit task region

Appears warning points to wrong line number.


-- 
   Summary: FAIL: libgomp.fortran/vla4.f90
   Product: gcc
   Version: 4.5.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: preprocessor
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: danglin at gcc dot gnu dot org
 GCC build triplet: hppa2.0w-hp-hpux11.11
  GCC host triplet: hppa2.0w-hp-hpux11.11
GCC target triplet: hppa2.0w-hp-hpux11.11


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



[Bug fortran/45318] Do more parenthesis simplification with -fno-protect-parens

2010-08-18 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2010-08-18 14:23 ---
(In reply to comment #0)
 In some cases, one might need to check for the unsave_math_optimization flag
 before changing, e.g., 2+(a-2) to a - or rather (a).

The whole point of PAREN_EXPR in the middle-end is to avoid transforming
2 + (a - 2) even _with_ -funsafe-math-optimizations / -ffast-math!


-- 


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



[Bug fortran/45319] [4.5 Regression] FAIL: libgomp.fortran/vla4.f90

2010-08-18 Thread danglin at gcc dot gnu dot org


--- Comment #1 from danglin at gcc dot gnu dot org  2010-08-18 14:32 ---
Similar fails:
FAIL: gfortran.dg/gomp/appendix-a/a.35.4.f90  -O   (test for warnings, line 11)
FAIL: gfortran.dg/gomp/appendix-a/a.35.4.f90  -O  (test for excess errors)
Excess errors:
/mnt/gnu/gcc/gcc/gcc/testsuite/gfortran.dg/gomp/appendix-a/a.35.4.f90:9:0:
warni
ng: barrier region may not be closely nested inside of work-sharing, critical,
o
rdered, master or explicit task region

FAIL: libgomp.fortran/vla5.f90  -O0   (test for warnings, line 69)
FAIL: libgomp.fortran/vla5.f90  -O0  (test for excess errors)
Excess errors:
/mnt/gnu/gcc/gcc/libgomp/testsuite/libgomp.fortran/vla5.f90:68:0: warning:
barri
er region may not be closely nested inside of work-sharing, critical, ordered,
m
aster or explicit task region


-- 


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



[Bug rtl-optimization/43494] [4.4/4.5/4.6 Regression] Overlooked dependency causes wrong scheduling, wrong code

2010-08-18 Thread bernds at gcc dot gnu dot org


--- Comment #24 from bernds at gcc dot gnu dot org  2010-08-18 14:36 ---
It should be possible to do better in cselib_subst_to_values - for POST_* we
could look up the value of the inner expression, and for PRE_* we could
probably construct a PLUS of some kind.  That would be an enhancement, but it's
unrelated to the bug.


-- 


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



[Bug fortran/44945] [4.6 Regression] Wrong decl for module vars / FAIL: gfortran.dg/char_array_structure_constructor.f90

2010-08-18 Thread mikael at gcc dot gnu dot org


--- Comment #28 from mikael at gcc dot gnu dot org  2010-08-18 14:40 ---
(In reply to comment #27)
 This is a very good suggestion. I will have a think about how to implement it
 and will come back to you.  It is consistent with what I had in mind to 
 improve
 the efficiency of module reading.  ie. read_module proceeds as follows:
 
 (i) On encountering a USE statement, look for the module gsym.  If it does not
 exist, use read_module, as at present, to construct the namespace, without any
 exclusions or renames;
 (ii) In the current scope, create symtrees using the ONLY and the renames and
 point to the symbols in the gsym namespace;
 (iii) Subsequent USEs of the same module proceed by using the gsym namespace.

Hello, 

I have been trying a similar approach before.
One problem you may encounter is that symbols have non-shareable parts. 
For examples symbol attributes such as access or use_rename can differ between
symbols associated to the same entity.  
I tried to split gfc_symbol into an entity-specific part and a symbol-specific
part but that led to huge changes throughout the frontend and to the associated
regressions, so that I eventually gave up. 
A possible way might be to clone the symbol, and keep a pointer to the original
one so that we can get the original backend_decl from it. 

Maybe you will have a different path and won't encounter this problem at all. 
Good luck anyway, that seems the way to go :-)


-- 


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



[Bug c/45320] New: Strict-aliasing misdetection

2010-08-18 Thread strikosn at gmail dot com
The following code fails to detect breaking of strict-aliasing rules correctly:

#include stdio.h

int main()
{
int i;
float A[20];

for (i = 0; i  20; i++)
{   
A[i] = i;
unsigned int *p = (unsigned int *)A[i];
printf(%d\t%.24f\t0x%08x\n, i, A[i], *p);
}

return 0;
}

gcc only gives a warning when compiling with '-Wall -O1'. Yet, compiling with
'-Wall -fstrict-aliasing' seems to produce correct results, even though '-Wall
-O2' breaks the code.


-- 
   Summary: Strict-aliasing misdetection
   Product: gcc
   Version: 4.4.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: strikosn at gmail dot com
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu


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



[Bug libstdc++/45276] Need to document _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE

2010-08-18 Thread paolo at gcc dot gnu dot org


--- Comment #2 from paolo at gcc dot gnu dot org  2010-08-18 15:22 ---
Subject: Bug 45276

Author: paolo
Date: Wed Aug 18 15:21:56 2010
New Revision: 163342

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=163342
Log:
2010-08-18  Kostya Serebryany k...@google.com
Paolo Carlini  paolo.carl...@oracle.com

PR libstdc++/45276
* doc/xml/manual/debug.xml ([debug.races]): Add.

Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/doc/xml/manual/debug.xml


-- 


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



[Bug libstdc++/45276] Need to document _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE

2010-08-18 Thread paolo dot carlini at oracle dot com


--- Comment #3 from paolo dot carlini at oracle dot com  2010-08-18 15:24 
---
Done.


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

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


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



[Bug c/45320] Strict-aliasing misdetection

2010-08-18 Thread paolo dot carlini at oracle dot com


--- Comment #1 from paolo dot carlini at oracle dot com  2010-08-18 15:28 
---
In general terms, ins't true that the warnings produced at -O0 are often much
weaker than when optimizing? I don't see anything aliasing-specific here...


-- 


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



[Bug bootstrap/45321] New: [4.6 regression] ARM bootstrap failure due to stdarg_p change

2010-08-18 Thread mikpe at it dot uu dot se
Attempting to bootstrap gcc-4.6-20100814 (r163252) on arm-linux-gnueabi fails
due to a warning in stage2 and the default use of -Werror there:

/home/mikpe/gcc-4.6-20100814/gcc/config/arm/arm.c: In function
'arm_get_pcs_model':
/home/mikpe/gcc-4.6-20100814/gcc/config/arm/arm.c:3720:7: error: passing
argument 1 of 'stdarg_p' discards 'const' qualifier from pointer target type
[-Werror]
/home/mikpe/gcc-4.6-20100814/gcc/tree.h:4829:13: note: expected 'tree' but
argument is of type 'const_tree'
cc1: all warnings being treated as errors

make[3]: *** [arm.o] Error 1
make[3]: Leaving directory `/home/mikpe/objdir46/gcc'
make[2]: *** [all-stage2-gcc] Error 2
make[2]: Leaving directory `/home/mikpe/objdir46'
make[1]: *** [stage2-bubble] Error 2
make[1]: Leaving directory `/home/mikpe/objdir46'
make: *** [bootstrap] Error 2

Presumably caused by r163033:
http://gcc.gnu.org/ml/gcc-cvs/2010-08/msg00244.html


-- 
   Summary: [4.6 regression] ARM bootstrap failure due to stdarg_p
change
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mikpe at it dot uu dot se
  GCC host triplet: armv5tel-unknown-linux-gnueabi


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



[Bug bootstrap/45321] [4.6 regression] ARM bootstrap failure due to stdarg_p change

2010-08-18 Thread mikpe at it dot uu dot se


--- Comment #1 from mikpe at it dot uu dot se  2010-08-18 15:43 ---
Created an attachment (id=21511)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21511action=view)
proposed fix

The issue is that stdarg_p has a non-const parameter but the call site in the
ARM backend has a const value it wants to pass.  The right solution seems to be
to make stdarg_p accept a const parameter, but then the problem is that the
parameter is stored in the iterator's fntype field.  Nothing uses that field,
so removing it and then making the parameter const fixes the issue.

ARM bootstrap still fails for me with comparison failures, however.

(I'm in an email black hole at the moment so can't easily submit this to
gcc-patches.)


-- 


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



[Bug c++/45049] [4.6 Regression] ICE: tree check: expected tree that contains 'decl minimal' structure, have 'tree_list' in push_overloaded_decl, at cp/name-lookup.c:2160

2010-08-18 Thread froydnj at gcc dot gnu dot org


--- Comment #7 from froydnj at gcc dot gnu dot org  2010-08-18 16:06 ---
Subject: Bug 45049

Author: froydnj
Date: Wed Aug 18 16:05:40 2010
New Revision: 163344

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=163344
Log:
gcc/cp/
PR c++/45049
* name-lookup.c (push_overloaded_decl): Change DECL_CHAIN to
TREE_CHAIN.

gcc/testsuite/
PR c++/45049
* g++.dg/pr45049-1.C: New test.
* g++.dg/pr45049-2.C: New test.


Added:
trunk/gcc/testsuite/g++.dg/pr45049-1.C
trunk/gcc/testsuite/g++.dg/pr45049-2.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/name-lookup.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/45049] [4.6 Regression] ICE: tree check: expected tree that contains 'decl minimal' structure, have 'tree_list' in push_overloaded_decl, at cp/name-lookup.c:2160

2010-08-18 Thread froydnj at gcc dot gnu dot org


--- Comment #8 from froydnj at gcc dot gnu dot org  2010-08-18 16:07 ---
Fixed.


-- 

froydnj at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug bootstrap/45321] [4.6 regression] ARM bootstrap failure due to stdarg_p change

2010-08-18 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.6.0


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



[Bug c/45320] Strict-aliasing misdetection

2010-08-18 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2010-08-18 16:10 ---
At -O2 -Wstrict-aliasing=1 warns for me.  I can't reproduce warnings
with -O0 or with -O1 because at those levels strict-aliasing isn't enabled.


-- 


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



[Bug c++/45293] ICE in iterative_hash_template_arg, at cp/pt.c:1589

2010-08-18 Thread fang at csl dot cornell dot edu


--- Comment #6 from fang at csl dot cornell dot edu  2010-08-18 16:30 
---
Created an attachment (id=21512)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21512action=view)
test case, semi-reduced, day 3

day 3 of reducing, 4.5k lines


-- 


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



[Bug fortran/45318] Do more parenthesis simplification with -fno-protect-parens

2010-08-18 Thread burnus at gcc dot gnu dot org


--- Comment #2 from burnus at gcc dot gnu dot org  2010-08-18 17:44 ---
(In reply to comment #1)
 (In reply to comment #0)
  In some cases, one might need to check for the unsave_math_optimization flag
  before changing, e.g., 2+(a-2) to a - or rather (a).
 
 The whole point of PAREN_EXPR in the middle-end is to avoid transforming
 2 + (a - 2) even _with_ -funsafe-math-optimizations / -ffast-math!

Well, I am talking about FE optimizations with -fno-protect-parens (note the
no-). The PAREN_EXPR protection *is* and *should* one done with
-fprotect-parens (which is the default setting).

In terms of the middle end, -fno-protect-parens and -fprotect-parens are both
properly handled.


-- 


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



[Bug c++/45303] Compile error when not using -ftree-ter

2010-08-18 Thread ian at airs dot com


--- Comment #8 from ian at airs dot com  2010-08-18 17:44 ---
Just for the record, I'm with Jakub: the general rule should be that r always
works for a value that fits in a register, and anything else requires enabling
optimization to work reliably.

I don't see why we should sign up to handle all constants for inline asm when
not optimizing.  It seems like an unusual edge case, a bunch of work for really
minimal benefit.

Changing the example in comment #5 to reliably fail will break real code for no
useful benefit and is thus contra-indicated.


-- 


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



[Bug fortran/45295] intrinsic.texi: SELECTED_CHAR_KIND should mention wide-char support

2010-08-18 Thread burnus at gcc dot gnu dot org


--- Comment #1 from burnus at gcc dot gnu dot org  2010-08-18 18:06 ---
Subject: Bug 45295

Author: burnus
Date: Wed Aug 18 18:05:58 2010
New Revision: 163347

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=163347
Log:
2010-08-18  Tobias Burnus  bur...@net-b.de

PR fortran/45295
* intrinsic.texi (selected_char_kind): Document ISO_10646
support.


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


-- 


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



[Bug fortran/45295] intrinsic.texi: SELECTED_CHAR_KIND should mention wide-char support

2010-08-18 Thread burnus at gcc dot gnu dot org


--- Comment #2 from burnus at gcc dot gnu dot org  2010-08-18 18:07 ---
FIXED


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug fortran/44735] ICE on FORALL with character array pointer

2010-08-18 Thread pault at gcc dot gnu dot org


--- Comment #2 from pault at gcc dot gnu dot org  2010-08-18 18:55 ---
Created an attachment (id=21513)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21513action=view)
The beginings of a fix

This PR is going to drive me mad!

The immediate cause is a failure to get the TYPE_SIZE_UNIT to calculate the
size of the temporary needed for the assignment.  This fixes that part of the
problem but moves the focus to the assignment itself.  Something is badly wrong
with the temporary's TREE_TYPE but I do not see what it is right now.

Let this be the record of where I got to

Paul


-- 


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



[Bug rtl-optimization/43494] [4.4/4.5/4.6 Regression] Overlooked dependency causes wrong scheduling, wrong code

2010-08-18 Thread jakub at gcc dot gnu dot org


--- Comment #25 from jakub at gcc dot gnu dot org  2010-08-18 19:00 ---
Alex Oliva posted some patches to make cselib handle autoinc stuff.
No idea whether http://gcc.gnu.org/ml/gcc-patches/2010-03/msg01038.html
is the latest version or if he has a newer one.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||aoliva at gcc dot gnu dot
   ||org


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



[Bug java/45322] New: libjava error: libtool: compile: libobj name `ltdl.lo' may not contain shell special

2010-08-18 Thread jay dot krell at cornell dot edu
libtool: compile: libobj name `ltdl.lo' may not contain shell special
characters.
make[4]: *** [ltdl.lo] Error 1
make[4]: Leaving directory
`/home/jayk/obj/gcc451/alphaev67-dec-osf5.1/libjava/libltdl'
make[3]: *** [all] Error 2
make[3]: Leaving directory
`/home/jayk/obj/gcc451/alphaev67-dec-osf5.1/libjava/libltdl'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/jayk/obj/gcc451/alphaev67-dec-osf5.1/libjava'
make[1]: *** [all-target-libjava] Error 2
make[1]: Leaving directory `/home/jayk/obj/gcc451'


bash-4.1$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/home/jayk/libexec/gcc/alphaev67-dec-osf5.1/4.5.0/lto-wrapper
Target: alphaev67-dec-osf5.1
Configured with: /home/jayk/src/gcc-4.5.0/configure -disable-nls
-prefix=/home/jayk
Thread model: posix
gcc version 4.5.0 (GCC) 


bash-4.1$ uname -a
OSF1 hostname V5.1 732 alpha alpha Tru64


I'll retry without Java.


-- 
   Summary: libjava error: libtool: compile: libobj name `ltdl.lo'
may not contain shell special
   Product: gcc
   Version: 4.5.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: java
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jay dot krell at cornell dot edu


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



[Bug libfortran/45323] New: warnings compiling libgfortran/io/write.c: array subscript has type 'char'

2010-08-18 Thread jay dot krell at cornell dot edu
Just warnings, not errors.


/home/jayk/src/gcc-4.5.1/libgfortran/io/write.c: In function 'nml_write_obj':
/home/jayk/src/gcc-4.5.1/libgfortran/io/write.c:1504:8: warning: array
subscript has type 'char'
/home/jayk/src/gcc-4.5.1/libgfortran/io/write.c:1511:4: warning: array
subscript has type 'char'
/home/jayk/src/gcc-4.5.1/libgfortran/io/write.c: In function 'namelist_write':
/home/jayk/src/gcc-4.5.1/libgfortran/io/write.c:1760:7: warning: array
subscript has type 'char'
libtool: compile:  /home/jayk/obj/gcc451/./gcc/xgcc
-B/home/jayk/obj/gcc451/./gcc/ -B/home/jayk/alphaev67-de



bash-4.1$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/home/jayk/libexec/gcc/alphaev67-dec-osf5.1/4.5.0/lto-wrapper
Target: alphaev67-dec-osf5.1
Configured with: /home/jayk/src/gcc-4.5.0/configure -disable-nls
-prefix=/home/jayk
Thread model: posix
gcc version 4.5.0 (GCC) 


bash-4.1$ uname -a
OSF1 hostname V5.1 732 alpha alpha Tru64

$HOME/src/gcc-4.5.1/configure -prefix=$HOME -disable-nls -verbose


Just warnings, not errors.


-- 
   Summary: warnings compiling libgfortran/io/write.c: array
subscript has type 'char'
   Product: gcc
   Version: 4.5.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libfortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jay dot krell at cornell dot edu


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



[Bug fortran/29785] Fortran 2003: POINTER Rank Remapping

2010-08-18 Thread domob at gcc dot gnu dot org


--- Comment #9 from domob at gcc dot gnu dot org  2010-08-18 19:34 ---
Created an attachment (id=21514)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21514action=view)
Partial patch.

This implements rank remapping and also bounds remapping as for PR 45016. 
Tests seem to be successful, although it's not yet been fully regtested.

I still have to / want to add a compile-time and -fcheck=bounds test for too
small target.


-- 


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



[Bug libfortran/45323] warnings compiling libgfortran/io/write.c: array subscript has type 'char'

2010-08-18 Thread burnus at gcc dot gnu dot org


--- Comment #1 from burnus at gcc dot gnu dot org  2010-08-18 19:40 ---
That's the lines:
  1472char cup;
  1467size_t dim_i;
  1504cup = toupper (base_name[dim_i]);
  1511cup = toupper (obj-var_name[dim_i]);
and
  1743char c;
  1741index_type i;
  1760c = toupper (dtp-namelist_name[i]);

(with: typedef ssize_t index_type;)

According to POSIX, toupper is defined as:
   int toupper(int c);

I am not sure I understand the message itself:
  array subscript has type 'char'
because in those lines I do not see how the array subscript can be 'char'. It
might be due to the way Tru64 Unix implements toupper.

Does it help to cast the argument to (int)? I mean:
-cup = toupper (base_name[dim_i]);
+cup = toupper ((int) base_name[dim_i]);
for all three toupper?

(Note: The trunk has the same toupper calls.)


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jvdelisle at gcc dot gnu dot
   ||org


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



[Bug middle-end/44206] [4.6 Regression] ICE: Inline clone with address taken

2010-08-18 Thread changpeng dot fang at amd dot com


--- Comment #3 from changpeng dot fang at amd dot com  2010-08-18 19:43 
---
*** Bug 45269 has been marked as a duplicate of this bug. ***


-- 

changpeng dot fang at amd dot com changed:

   What|Removed |Added

 CC||changpeng dot fang at amd
   ||dot com


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



[Bug c++/45269] CPU2006 450.soplex: verify_cgraph_node failed with -fprofile-generate

2010-08-18 Thread changpeng dot fang at amd dot com


--- Comment #2 from changpeng dot fang at amd dot com  2010-08-18 19:43 
---
http://gcc.gnu.org/ml/gcc-cvs/2010-05/msg00406.html

Verified. If I back out the above change, the bug goes away.
So it is a duplicate of bug 44206

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


-- 

changpeng dot fang at amd dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug middle-end/45312] GCC 4.4.4 miscompiles (?) the Linux kernel, makes kernel unusable

2010-08-18 Thread t dot artem at mailcity dot com


--- Comment #7 from t dot artem at mailcity dot com  2010-08-18 20:00 
---
I bet this bug can be triggered in a VM (e.g. in VirtualBox) too, so I'll try
to debug it later.


-- 


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



[Bug bootstrap/44470] [4.6 Regression] Failed to bootstrap with - -with-arch=atom

2010-08-18 Thread ubizjak at gmail dot com


--- Comment #26 from ubizjak at gmail dot com  2010-08-18 20:13 ---
Splitting to LEA was fixed in r163351 [1] with patch at [2].

[1] http://gcc.gnu.org/ml/gcc-cvs/2010-08/msg00562.html
[2] http://gcc.gnu.org/ml/gcc-patches/2010-08/msg01394.html


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||FIXED


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



[Bug c++/45293] ICE in iterative_hash_template_arg, at cp/pt.c:1589

2010-08-18 Thread fang at csl dot cornell dot edu


--- Comment #7 from fang at csl dot cornell dot edu  2010-08-18 20:13 
---
Created an attachment (id=21515)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21515action=view)
test case, day 3b

yet smaller


-- 


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



[Bug testsuite/45324] New: gcc.target/i386/volatile-bitfields-1.c doesn't work with i586-linux

2010-08-18 Thread hjl dot tools at gmail dot com
When gcc is configured with i586-linux, I got

FAIL: gcc.target/i386/volatile-bitfields-1.c scan-assembler movzbl.*bits

I don't see anything wrong with

.cfi_startproc
movbbits, %al
sarb%al
movsbl  %al, %eax
ret
.cfi_endproc

I think we should also check movb.


-- 
   Summary: gcc.target/i386/volatile-bitfields-1.c doesn't work with
i586-linux
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: testsuite
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hjl dot tools at gmail dot com


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



[Bug middle-end/45325] New: target attribute doesn't work with -march=i586

2010-08-18 Thread hjl dot tools at gmail dot com
[...@gnu-36 gcc]$ cat
../../../../src-trunk/gcc/testsuite/gcc.target/i386/pr38240.c
/* { dg-do compile } */

typedef float V
  __attribute__ ((__vector_size__ (16), __may_alias__));

V __attribute__((target(sse))) f(const V *ptr) { return *ptr; }

V g(const V *ptr) { return *ptr; }
[...@gnu-36 gcc]$ ../../xgcc -B../../
../../../../src-trunk/gcc/testsuite/gcc.target/i386/pr38240.c -S -march=i586
-m32
../../../../src-trunk/gcc/testsuite/gcc.target/i386/pr38240.c: In function ‘g’:
../../../../src-trunk/gcc/testsuite/gcc.target/i386/pr38240.c:8:21: internal
compiler error: in convert_move, at expr.c:326
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.
[...@gnu-36 gcc]$


-- 
   Summary: target attribute doesn't work with -march=i586
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hjl dot tools at gmail dot com


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



[Bug middle-end/45325] target attribute doesn't work with -march=i586

2010-08-18 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2010-08-18 20:31 ---
Well - obviously global typedefs keep their BLKmode.  The target attribute
can't work this way - it's broken by design.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WONTFIX


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



[Bug middle-end/45325] target attribute doesn't work with -march=i586

2010-08-18 Thread steven at gcc dot gnu dot org


--- Comment #2 from steven at gcc dot gnu dot org  2010-08-18 20:58 ---
WONTFIX for an ICE seems a bit odd to me.
Just needs a diagnostic to reject nonsense target attributes, or a sorry. But
not an ICE.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|WONTFIX |


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



[Bug middle-end/37565] __optimize__ attribute doesn't work correctly

2010-08-18 Thread steven at gcc dot gnu dot org


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-08-18 20:59:09
   date||


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



[Bug middle-end/45292] [4.5/4.6 regression] libgomp test failures for i586-linux

2010-08-18 Thread hjl at gcc dot gnu dot org


--- Comment #12 from hjl at gcc dot gnu dot org  2010-08-18 21:08 ---
Subject: Bug 45292

Author: hjl
Date: Wed Aug 18 21:08:24 2010
New Revision: 163353

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=163353
Log:
Expand pending pops before trying the optab.

2010-08-18  H.J. Lu  hongjiu...@intel.com

Backport from mainline
2010-08-18  Paolo Bonzini  bonz...@gnu.org

PR middle-end/45292
* optabs.c (expand_bool_compare_and_swap): Expand pending
pops before trying the optab.

Modified:
branches/gcc-4_5-branch/gcc/ChangeLog
branches/gcc-4_5-branch/gcc/optabs.c


-- 


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



[Bug middle-end/45325] target attribute doesn't work with -march=i586

2010-08-18 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2010-08-18 21:18 ---
Well, I think we should back out support for that option.  The set of
nonsensical options doesn't include sse - but all options are included
in the set of broken options.  At least I expect that you can create a
testcase with such ICEs for every one.


-- 


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



[Bug bootstrap/45326] New: gmp's use of C99 keeps breaking my compiles, suggest set autoconf variables to avoid inttypes/stdint

2010-08-18 Thread jay dot krell at cornell dot edu
I seem to keep running into inttypes.h/stdint.h that aren't quite adequate,
esp. for gmp. For example, in mpfr:


https://gforge.inria.fr/scm/viewvc.php/trunk/get_uj.c?view=logroot=mpfrpathrev=7083#rev7082


Anyway, I suggest this to reduce the problem:


bash-4.1$ diff -u Makefile.in.orig Makefile.in
--- Makefile.in.orig2010-08-18 11:33:42 -0700
+++ Makefile.in 2010-08-18 11:33:13 -0700
@@ -16308,7 +16308,7 @@
libsrcdir=$$s/gmp; \
$(SHELL) $${libsrcdir}/configure \
  $(HOST_CONFIGARGS) --build=${build_alias}
--host=none-${host_vendor}-${host_os} \
- --target=none-${host_vendor}-${host_os} $${srcdiroption}
--disable-shared \
+ --target=none-${host_vendor}-${host_os} $${srcdiroption}
--disable-shared ac_cv_header_inttypes_h=no ac_cv_header_stdint_h=no \
  || exit 1
 @endif gmp

Slightly tested.
I tried setting the ac_* variables around the entire gcc configure but that
broke's libiberty's use of intptr_t.


-- 
   Summary: gmp's use of C99 keeps breaking my compiles, suggest set
autoconf variables to avoid inttypes/stdint
   Product: gcc
   Version: 4.5.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jay dot krell at cornell dot edu


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



[Bug bootstrap/45326] gmp's use of C99 keeps breaking my compiles, suggest set autoconf variables to avoid inttypes/stdint

2010-08-18 Thread jay dot krell at cornell dot edu


--- Comment #1 from jay dot krell at cornell dot edu  2010-08-18 21:27 
---
example error:

file included from /home/jayk/src/gcc-4.5.1/gmp/assert.c:27:0:
/home/jayk/src/gcc-4.5.1/gmp/gmp-impl.h:188:29: error: expected '=', ',', ';',
'asm' or '__attribute__' before 'gmp_uint_least32_t'
In file included from /home/jayk/src/gcc-4.5.1/gmp/assert.c:27:0:
/home/jayk/src/gcc-4.5.1/gmp/gmp-impl.h:3413:7: error: expected
specifier-qualifier-list before 'gmp_uint_least32_t'


-- 


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



[Bug target/45327] New: [4.6 Regression] ICE: SIGSEGV in rtx_equal_p (rtl.c:496) with -O1 -funroll-loops -fnon-call-exceptions

2010-08-18 Thread zsojka at seznam dot cz
Command line:
$ gcc -O1 -funroll-loops -fnon-call-exceptions testcase.c

Valgrind output:
==17265== Invalid read of size 2
==17265==at 0x82C2FB: rtx_equal_p (rtl.c:495)
==17265==by 0xA6781A: ix86_swap_binary_operands_p (i386.c:14395)
==17265==by 0xA8F448: ix86_binary_operator_ok (i386.c:14534)
==17265==by 0xDDE88E: recog (i386.md:8432)
==17265==by 0xECF613: recog_for_combine (combine.c:10165)
==17265==by 0xEFB8FF: try_combine (combine.c:3012)
==17265==by 0xF05BE3: rest_of_handle_combine (combine.c:1153)
==17265==by 0x7BF13B: execute_one_pass (passes.c:1567)
==17265==by 0x7BF3D4: execute_pass_list (passes.c:1622)
==17265==by 0x7BF3E6: execute_pass_list (passes.c:1623)
==17265==by 0x901335: tree_rest_of_compilation (tree-optimize.c:452)
==17265==by 0xABD765: cgraph_expand_function (cgraphunit.c:1643)
==17265==  Address 0xabababababababab is not stack'd, malloc'd or (recently)
free'd
==17265== 
testcase.c: In function 'foo':
testcase.c:5:1: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

 testcase.c 
int
foo (int a, int b)
{
  return (a == 0  b == 0);
}


Tested revisions:
r163261 - crash
r158969 - crash
r158095 - OK
4.5 r160526 - OK


-- 
   Summary: [4.6 Regression] ICE: SIGSEGV in rtx_equal_p (rtl.c:496)
with -O1 -funroll-loops -fnon-call-exceptions
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: zsojka at seznam dot cz
  GCC host triplet: x86_64-pc-linux-gnu
GCC target triplet: x86_64-pc-linux-gnu


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



[Bug target/45327] [4.6 Regression] ICE: SIGSEGV in rtx_equal_p (rtl.c:496) with -O1 -funroll-loops -fnon-call-exceptions

2010-08-18 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2010-08-18 21:49 ---
Hm, Bernd - you recently touched that code.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||bernds at gcc dot gnu dot
   ||org
   Target Milestone|--- |4.6.0


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



[Bug c++/45293] ICE in iterative_hash_template_arg, at cp/pt.c:1589

2010-08-18 Thread fang at csl dot cornell dot edu


--- Comment #8 from fang at csl dot cornell dot edu  2010-08-18 22:05 
---
reduced test case (manually reduced after delta):

===
typedef long unsigned int size_t;
template class T struct never_ptr {
T* ptr;
T* operator - () const throw() {
return ptr;
}  
};  
namespace HAC {
template class class instance_collection_pool_bundle;
template class Tag class footprint_base {
typedef instance_collection_pool_bundleTag  collection_pool_bundle_type;
protected:  const never_ptrcollection_pool_bundle_type
collection_pool_bundle;
}; 
struct process_tag;
template class Tag class instance_collection;
template class struct class_traits;
template class Tag class instance_alias_info;
}   
namespace std {
template class T struct default_vector {
typedef size_t type;
};  
}  
namespace HAC {
class footprint : private footprint_baseprocess_tag {
void operator [] ( const size_t ) const;
};  
class physical_instance_collection;
template class, size_t class instance_array;
typedef instance_collectionprocess_tag  process_instance_collection;
typedef instance_alias_infoprocess_tag process_instance_alias_info;
template class class general_collection_type_manager;
template  struct class_traitsprocess_tag {
typedef process_tag tag_type;
typedef process_instance_alias_info instance_alias_info_type;
typedef process_instance_collection instance_collection_generic_type;
typedef physical_instance_collection instance_collection_parent_type;
typedef general_collection_type_managertag_type 
collection_type_manager_parent_type;
}; 
class instance_collection_base {
}; 
class physical_instance_collection : public instance_collection_base   {
}; 
template class Tag class collection_interface :  public
class_traitsTag::instance_collection_parent_type {
};  
template class Tag class instance_collection :  public
collection_interfaceTag,  public
class_traitsTag::collection_type_manager_parent_type {
public:  typedef class_traitsTag traits_type;
typedef typename traits_type::instance_alias_info_type  
instance_alias_info_type;
typedef never_ptrconst instance_alias_info_type 
const_instance_alias_info_ptr_type;
}; 
template class Tag class general_collection_type_manager {
}; 
template class T class instance_collection_pool_wrapper {
public:  typedef T collection_type;
typedef typename collection_type::traits_type::tag_type   tag_type;
}; 
template class Tag struct instance_collection_pool_bundle : public
instance_collection_pool_wrapperinstance_arrayTag, 0  {
void lookup_collection(void) const;
};
template class Tag, size_t D class instance_array : public
instance_collectionTag {
public:  typedef class_traitsTag traits_type;
typedef typename traits_type::instance_collection_generic_type   
parent_type; 
typedef typename parent_type::const_instance_alias_info_ptr_type 
const_instance_alias_info_ptr_type;
void get_all_aliases(typename
std::default_vectorconst_instance_alias_info_ptr_type::type) const;
}; 
template class Tag class instance_arrayTag,0 : public
instance_collectionTag {
public:  typedef class_traitsTag traits_type;
typedef typename traits_type::instance_collection_generic_type   
parent_type; 
typedef typename parent_type::const_instance_alias_info_ptr_type 
const_instance_alias_info_ptr_type;
void get_all_aliases(typename
std::default_vectorconst_instance_alias_info_ptr_type::type) const;
}; 
void footprint::operator [] ( const size_t ) const {
footprint_baseprocess_tag::collection_pool_bundle-lookup_collection();
}   
}
===

This should be a valid test case, passes g++-4.0.1.

reducing script:

#!/bin/sh -e
# must be valid for g++-4.0.1! (powerpc-apple-darwin8)
g++ -o footprint.o -c footprint.ii  /dev/null 21
# then fail specifically with ICE
g++-fsf-4.5 -o footprint.o -c footprint.ii  footprint.err 21 || :
grep -q internal compiler error: in iterative_hash_template_arg, at
cp/pt.c:1589 footprint.err

keywords: ICE-on-valid-code


-- 


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



[Bug target/45327] [4.6 Regression] ICE: SIGSEGV in rtx_equal_p (rtl.c:496) with -O1 -funroll-loops -fnon-call-exceptions

2010-08-18 Thread ubizjak at gmail dot com


--- Comment #2 from ubizjak at gmail dot com  2010-08-18 22:13 ---
Patch that fixes the failure:

Index: i386.md
===
--- i386.md (revision 163353)
+++ i386.md (working copy)
@@ -8456,7 +8452,7 @@
 (const_int 0)))
(clobber (match_scratch:SWI 0 =r))]
   ix86_match_ccmode (insn, CCNOmode)
-ix86_binary_operator_ok (CODE, MODEmode, operands)
+!(MEM_P (operands[1])  MEM_P (operands[2]))
   logic{imodesuffix}\t{%2, %0|%0, %2}
   [(set_attr type alu)
(set_attr mode MODE)])


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |ubizjak at gmail dot com
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-08-18 22:13:05
   date||


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



[Bug target/45327] [4.6 Regression] ICE: SIGSEGV in rtx_equal_p (rtl.c:496) with -O1 -funroll-loops -fnon-call-exceptions

2010-08-18 Thread ubizjak at gmail dot com


--- Comment #3 from ubizjak at gmail dot com  2010-08-18 22:24 ---
(In reply to comment #2)
 Patch that fixes the failure:

This is actually {i,x}or_{qi,hi,si,di}_3 pattern.


-- 


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



[Bug fortran/45290] [F08] pointer initialization

2010-08-18 Thread janus at gcc dot gnu dot org


--- Comment #4 from janus at gcc dot gnu dot org  2010-08-18 22:32 ---
Subject: Bug 45290

Author: janus
Date: Wed Aug 18 22:32:22 2010
New Revision: 163356

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=163356
Log:
2010-08-19  Janus Weil  ja...@gcc.gnu.org

PR fortran/45290
* gfortran.h (gfc_add_save): Modified prototype.
* decl.c (add_init_expr_to_sym): Defer checking of proc pointer init.
(match_pointer_init): New function to match F08 pointer initialization.
(variable_decl,match_procedure_decl,match_ppc_decl): Use
'match_pointer_init'.
(match_attr_spec): Module variables are implicitly SAVE.
(gfc_match_save): Modified call to 'gfc_add_save'.
* expr.c (gfc_check_assign_symbol): Extra checks for pointer
initialization.
* primary.c (gfc_variable_attr): Handle SAVE attribute.
* resolve.c (resolve_structure_cons): Add new argument and do pointer
initialization checks.
(gfc_resolve_expr): Modified call to 'resolve_structure_cons'.
(resolve_values): Call 'resolve_structure_cons' directly with init arg.
(resolve_fl_variable): Handle SAVE_IMPLICIT.
* symbol.c (gfc_add_save,gfc_copy_attr,save_symbol): Handle
SAVE_IMPLICIT.
* trans-decl.c (gfc_create_module_variable): Module variables with
TARGET can already exist.
* trans-expr.c (gfc_conv_variable): Check for 'current_function_decl'.
(gfc_conv_initializer): Implement non-NULL pointer
initialization.


2010-08-19  Janus Weil  ja...@gcc.gnu.org

PR fortran/45290
* gfortran.dg/proc_ptr_comp_3.f90: Modified.
* gfortran.dg/pointer_init_2.f90: New.
* gfortran.dg/pointer_init_3.f90: New.
* gfortran.dg/pointer_init_4.f90: New.

Added:
trunk/gcc/testsuite/gfortran.dg/pointer_init_2.f90
trunk/gcc/testsuite/gfortran.dg/pointer_init_3.f90
trunk/gcc/testsuite/gfortran.dg/pointer_init_4.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/decl.c
trunk/gcc/fortran/expr.c
trunk/gcc/fortran/gfortran.h
trunk/gcc/fortran/primary.c
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/symbol.c
trunk/gcc/fortran/trans-decl.c
trunk/gcc/fortran/trans-expr.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/proc_ptr_comp_3.f90


-- 


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



[Bug c++/45328] New: bug w/ typedefs and std::initializer_listT

2010-08-18 Thread admin at thefireflyproject dot us
Given this code,

#include initializer_list

typedef std::initializer_listint init_list;

struct A {
  A (init_list list) { }
};

struct B {
  B (std::initializer_listint list) { }
};

int main (void) {
  A a { 0, 1, 1, 2}; // compiler error 
  B b { 0, 1, 1, 2};
}

I get a compiler error when trying to brace initialize an instance of struct A.
The specific error:

initializer_bug.cpp: In function ‘int main()’:
initializer_bug.cpp:14:19: error: no matching function for call to
‘A::A(brace-enclosed initializer list)’
initializer_bug.cpp:6:3: note: candidates are: A::A(init_list)
initializer_bug.cpp:5:10: note: A::A(const A)

Compiled example code with g++ --std=c++0x initializer_bug.cpp -o
initializer_bug.

Using gcc version 4.5.1 20100617 (prerelease) (Debian 4.5.0-6)


-- 
   Summary: bug w/ typedefs and std::initializer_listT
   Product: gcc
   Version: 4.5.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: admin at thefireflyproject dot us
 GCC build triplet: x86_64-linux-gnu
  GCC host triplet: x86_64-linux-gnu
GCC target triplet: x86_64-linux-gnu


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



[Bug fortran/45290] [F08] pointer initialization

2010-08-18 Thread janus at gcc dot gnu dot org


--- Comment #5 from janus at gcc dot gnu dot org  2010-08-18 22:37 ---
r163356 implements pointer initialization.

Leftover To-Do items:

(1) ICE on 

module m
 implicit none
 integer, target, save  :: t1
 integer, pointer :: p1 = t
 integer, pointer :: p2 = p1! ICE
end module m


(2) Making global variables in a program SAVE_IMPLICIT.


-- 


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



[Bug c++/45315] [4.4/4.5/4.6 Regression] ICE: tree check: expected aggr_init_expr, have call_expr in build_value_init, at cp/init.c:317

2010-08-18 Thread jason at gcc dot gnu dot org


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jason at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2010-08-18 00:49:20 |2010-08-18 22:41:07
   date||


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



[Bug c++/45303] Compile error when not using -ftree-ter

2010-08-18 Thread pinskia at gcc dot gnu dot org


--- Comment #9 from pinskia at gcc dot gnu dot org  2010-08-18 22:42 ---


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


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug inline-asm/23200] [4.3/4.4/4.5/4.6 Regression] rejects i(var + 1)

2010-08-18 Thread pinskia at gcc dot gnu dot org


--- Comment #44 from pinskia at gcc dot gnu dot org  2010-08-18 22:42 
---
*** Bug 45303 has been marked as a duplicate of this bug. ***


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jobnoorman at gmail dot com


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



[Bug target/45327] [4.6 Regression] ICE: SIGSEGV in rtx_equal_p (rtl.c:496) with -O1 -funroll-loops -fnon-call-exceptions

2010-08-18 Thread uros at gcc dot gnu dot org


--- Comment #4 from uros at gcc dot gnu dot org  2010-08-18 22:37 ---
Subject: Bug 45327

Author: uros
Date: Wed Aug 18 22:37:03 2010
New Revision: 163357

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=163357
Log:
PR target/45327
* config/i386/i386.md (any_or:codeSWI:mode_3): Do not use
ix86_binary_operator_ok.


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


--- Comment #5 from uros at gcc dot gnu dot org  2010-08-18 22:43 ---
Subject: Bug 45327

Author: uros
Date: Wed Aug 18 22:42:54 2010
New Revision: 163358

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=163358
Log:
PR target/45327
* config/i386/i386.md (any_or:codeSWI:mode_3): Do not use
ix86_binary_operator_ok.


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


-- 


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



[Bug target/45327] [4.6 Regression] ICE: SIGSEGV in rtx_equal_p (rtl.c:496) with -O1 -funroll-loops -fnon-call-exceptions

2010-08-18 Thread ubizjak at gmail dot com


--- Comment #6 from ubizjak at gmail dot com  2010-08-18 22:47 ---
Fixed.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/45328] bug w/ typedefs and std::initializer_listT

2010-08-18 Thread redi at gcc dot gnu dot org


--- Comment #1 from redi at gcc dot gnu dot org  2010-08-18 22:54 ---
possibly related to Bug 44703, although that's fixed in 4.5.1


-- 


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



[Bug middle-end/45292] [4.5/4.6 regression] libgomp test failures for i586-linux

2010-08-18 Thread hjl dot tools at gmail dot com


--- Comment #13 from hjl dot tools at gmail dot com  2010-08-18 23:08 
---
Fixed.


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/45328] [C++0x] bug w/ typedefs and std::initializer_listT

2010-08-18 Thread paolo dot carlini at oracle dot com


--- Comment #2 from paolo dot carlini at oracle dot com  2010-08-18 23:11 
---
Let's CC Jason.


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

 CC||jason at gcc dot gnu dot org
Summary|bug w/ typedefs and |[C++0x] bug w/ typedefs and
   |std::initializer_listT|std::initializer_listT


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



[Bug c++/45328] [C++0x] bug w/ typedefs and std::initializer_listT

2010-08-18 Thread paolo dot carlini at oracle dot com


--- Comment #3 from paolo dot carlini at oracle dot com  2010-08-18 23:19 
---
Actually, both mainline and the released 4.5.1 work, most likely a duplicate of
PR 44703 indeed.


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

 CC|jason at gcc dot gnu dot org|
 Status|UNCONFIRMED |RESOLVED
  Known to fail||4.5.0
  Known to work||4.6.0 4.5.1
 Resolution||WORKSFORME


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



[Bug fortran/41859] ICE on invalid expression involving DT with pointer components in I/O

2010-08-18 Thread jvdelisle at gcc dot gnu dot org


--- Comment #10 from jvdelisle at gcc dot gnu dot org  2010-08-19 02:36 
---
Subject: Bug 41859

Author: jvdelisle
Date: Thu Aug 19 02:35:45 2010
New Revision: 163363

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=163363
Log:
2010-08-19  Jerry DeLisle  jvdeli...@gcc.gnu.org

PR fortran/41859
* resolve.c (resolve_transfer): Traverse operands and set expression
to be checked to a non EXPR_OP type.

Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/resolve.c


-- 


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



[Bug fortran/45108] Namelist read: Not aborted when reading from STDIN

2010-08-18 Thread jvdelisle at gcc dot gnu dot org


--- Comment #6 from jvdelisle at gcc dot gnu dot org  2010-08-19 03:52 
---
Created an attachment (id=21516)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21516action=view)
Proposed patch

This patch will generate an error.  If IOSTAT or IOMSG is used, the read will
continue in the loop after an error, but the error status variables will be set
so that one will know an error occurred when the READ has completed.  Any
thoughts Tobias?


-- 


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



[Bug fortran/41859] ICE on invalid expression involving DT with pointer components in I/O

2010-08-18 Thread jvdelisle at gcc dot gnu dot org


--- Comment #11 from jvdelisle at gcc dot gnu dot org  2010-08-19 04:01 
---
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=41859



[Bug c++/45329] New: When printing a list of candidate functions, explain why each function failed to match.

2010-08-18 Thread aaw at gcc dot gnu dot org
Consider the following sample program:

struct S
{
 int x;
 int y;
};

int foo(int x, int y)
{
 return x+y;
}

int foo(const S s)
{
 return s.x + s.y;
}

int foo2(int x)
{
 foo(x);
}


When compiling this, clang prints:


# clang ./tst.cc
./tst.cc:19:3: error: no matching function for call to 'foo'
 foo(x);
 ^~~
./tst.cc:12:5: note: candidate function not viable: no known conversion from
 'int' to 'struct S const' for 1st argument
int foo(const S s)
   ^
./tst.cc:7:5: note: candidate function not viable: requires 2 arguments, but 1
 was provided
int foo(int x, int y)
   ^
3 diagnostics generated.


Notice that each failed match is clearly explained.  By comparison, gcc prints:


# ./install/bin/gcc -c ./tst.cc
./tst.cc: In function ‘int foo2(int)’:
./tst.cc:19:8: error: no matching function for call to ‘foo(int)’
./tst.cc:7:5: note: candidates are: int foo(int, int)
./tst.cc:12:5: note: int foo(const S)


In this case, it is easy to see what's going on.  However, many C++ functions
contain multiple template arguments.  In those cases, it can be difficult to
parse the diagnostics and understand what is wrong.

GCC should clearly indicate why each match failed.


-- 
   Summary: When printing a list of candidate functions, explain why
each function failed to match.
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: aaw at gcc dot gnu dot org


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



[Bug c++/45330] New: Suggest likely nested-name-specifiers for undeclared identifiers.

2010-08-18 Thread aaw at gcc dot gnu dot org
Consider this code sample:


namespace N
{
 int foo;
}

int bar()
{
 return foo;
}


GCC, generates the following error:

tst.cc: In function ‘int bar()’:
tst.cc:8:10: error: ‘foo’ was not declared in this scope

It would be nice if it suggested that the user might mean N::foo.


-- 
   Summary: Suggest likely nested-name-specifiers for undeclared
identifiers.
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: aaw at gcc dot gnu dot org


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



[Bug c++/45331] New: Generate clear diagnostics when a semicolon is missing at the end of a class definition

2010-08-18 Thread aaw at gcc dot gnu dot org
Consider this sample code:

# cat tst.cc
class X
{
public:
 int a;
}

int foo(const X x)
{
 return x.a;
}


The clang front end generates a very nice warning (which is actually color
coded for ease of readability):

# clang ./tst.cc
./tst.cc:5:2: error: expected ';' after class
}
 ^
 ;
1 diagnostic generated.


By comparison, this is what gcc generates (in both Crosstool v14 and the
current upstream trunk):

# ./install/bin/gcc -c tst.cc
tst.cc:1:1: error: new types may not be defined in a return type
tst.cc:1:1: note: (perhaps a semicolon is missing after the definition of ‘X’)
tst.cc:7:19: error: two or more data types in declaration of ‘foo’

True, it *does* mention that there is likely a missing semicolon, but does it
really need to mention the other cruft, too?  Why not just emit an error about
the semicolon, add the missing semicolon to the input stream, and continue
parsing the file?


-- 
   Summary: Generate clear diagnostics when a semicolon is missing
at the end of a class definition
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: aaw at gcc dot gnu dot org


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



[Bug c++/45332] New: Generate clear diagnostics when a terminating semicolon is missing from a class member declaration.

2010-08-18 Thread aaw at gcc dot gnu dot org
Consider the following sample code:

# cat tst.cc
class C
{
 int x

 const int foo() { return x; }
};


Clang generates the following diagnostics:


# clang tst.cc
tst.cc:3:8: error: expected ';' at end of declaration list
 int x
  ^
  ;
1 diagnostic generated.


By comparison, gcc generates:


# ./install/bin/gcc tst.cc
tst.cc:5:3: error: expected ‘;’ before ‘const’
tst.cc:6:1: error: expected ‘;’ before ‘}’ token


gcc should associate the first diagnostic with the end of line number 3, not
the beginning of 5, and the second diagnostic is nonsensical.


-- 
   Summary: Generate clear diagnostics when a terminating semicolon
is missing from a class member declaration.
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: aaw at gcc dot gnu dot org


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



[Bug c++/45333] New: Include macros in instantiation backtraces

2010-08-18 Thread aaw at gcc dot gnu dot org
Consider the following code sample:


#define ZERO(c) c.set(0)

struct S
{
 int a;
 int b;
};

template class T
class C
{
 T t;

public:
 void set(int x) { t = x; }
};

void foo(CS c)
{
 ZERO(c);
}


When compiled with clang, the instantiation backtrace shows the point of
instantiation within the ZERO macro:

# clang ./tst.cc
./tst.cc:15:23: error: no viable overloaded '='
 void set(int x) { t = x; }
   ~ ^ ~
./tst.cc:20:3: note: in instantiation of member function 'Cstruct S::set'
 requested here
 ZERO(c);
 ^
./tst.cc:1:19: note: instantiated from:
#define ZERO(c) c.set(0)
 ^
./tst.cc:3:8: note: candidate function (the implicit copy assignment operator)
 not viable: no known conversion from 'int' to 'struct S const' for 1st
 argument
struct S
  ^
3 diagnostics generated.


By contract, gcc ignores the macro completely:

# ./install/bin/gcc -c ./tst.cc
./tst.cc: In member function ‘void CT::set(int) [with T = S]’:
./tst.cc:20:3:   instantiated from here
./tst.cc:15:21: error: no match for ‘operator=’ in ‘this-CS::t = x’
./tst.cc:3:8: note: candidate is: S S::operator=(const S)

GCC should include macros in instantiation backtraces like clang does.


-- 
   Summary: Include macros in instantiation backtraces
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: aaw at gcc dot gnu dot org


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