[Bug lto/40392] ICE in lto_end_uncompression, at lto-compress.c:282

2009-09-29 Thread ubizjak at gmail dot com


--- Comment #7 from ubizjak at gmail dot com  2009-09-29 06:29 ---
(In reply to comment #6)
 Problem still happens with 4.5.0 20090928 (experimental) [lto revision 152240]
 (lto merged with rev 150842).
 
 Without the langhooks.c patch -flto is currently unusable/untestable
 (ICEs on pretty well everything) for arm-unknown-linux-gnu and
 sh-unknown-linux-gnu.

Also on alpha-linux-gnu:

Target: alphaev68-unknown-linux-gnu
Configured with: /home/uros/gcc-svn/branches/lto/configure --enable-lto
Thread model: posix
gcc version 4.5.0 20090928 (experimental) (lto merged with rev 152236) 

lto1: internal compiler error: in lto_end_uncompression, at lto-compress.c:281
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.
lto-wrapper: /space/uros/gcc-build-lto/gcc/xgcc returned 1 exit status
collect2: lto-wrapper returned 1 exit status


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 CC||ubizjak at gmail dot com


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



[Bug tree-optimization/41498] New: ICE with graphite flags

2009-09-29 Thread eres at il dot ibm dot com
When running trunk -r 152114 on powerpc64 with these flags (which enable the
Graphite identity transformation) I get the following ICE on most of SPEC2006
benchmarks: (the following is take from 429.mcf)

/home/eres/mainline_45/build/bin/gcc -c -o pbeampp.o -DSPEC_CPU -DNDEBUG 
-DWANT_STDC_PROTO -m64 -O3 -mcpu=power6 -ffast-math -maltivec 
-fno-loop-parallelize-all -fgraphite -fno-loop-block -fno-loop-interchange
-fno-loop-strip-mine -fgraphite-identity -ftree-vectorize
pbeampp.c
pbeampp.c: In function 'primal_bea_mpp':
pbeampp.c:119:8: internal compiler error: in sese_adjust_vphi, at sese.c:405
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.
specmake: *** [pbeampp.o] Error 1


-- 
   Summary: ICE with graphite flags
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: eres at il dot ibm dot com


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



[Bug c/41497] apparent integer wrong code bug

2009-09-29 Thread jakub at gcc dot gnu dot org


--- Comment #1 from jakub at gcc dot gnu dot org  2009-09-29 07:23 ---
Fails on x86_64-linux too, the bug first appears in sccp.
extern void abort (void);

static unsigned short
bar (unsigned short x, unsigned short y)
{
  return x + y;
}

unsigned int a;
unsigned char b, c;

void
foo (void)
{
  for (b = 0; b = 0; b = 1)
for (a = -13; a == 0; a = bar (a, 0))
  c = 1;
}

int
main ()
{
  foo ();
  if (a != -13)
abort ();
  return 0;
}


-- 


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



[Bug fortran/39626] Fortran 2008: Implement BLOCK construct

2009-09-29 Thread domob at gcc dot gnu dot org


--- Comment #5 from domob at gcc dot gnu dot org  2009-09-29 07:43 ---
Subject: Bug 39626

Author: domob
Date: Tue Sep 29 07:42:42 2009
New Revision: 152266

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152266
Log:
2009-09-29  Daniel Kraft  d...@domob.eu

PR fortran/39626
* gfortran.h (enum gfc_statement): Add ST_BLOCK and ST_END_BLOCK.
(struct gfc_namespace): Convert flags to bit-fields and add flag
`construct_entities' for use with BLOCK constructs.
(enum gfc_exec_code): Add EXEC_BLOCK.
(struct gfc_code): Add namespace field to union for EXEC_BLOCK.
* match.h (gfc_match_block): New prototype.
* parse.h (enum gfc_compile_state): Add COMP_BLOCK.
* trans.h (gfc_process_block_locals): New prototype.
(gfc_trans_deferred_vars): Made public, new prototype.
* trans-stmt.h (gfc_trans_block_construct): New prototype.
* decl.c (gfc_match_end): Handle END BLOCK correctly.
(gfc_match_intent): Error if inside of BLOCK.
(gfc_match_optional), (gfc_match_value): Ditto.
* match.c (gfc_match_block): New routine.
* parse.c (decode_statement): Handle BLOCK statement.
(case_exec_markers): Add ST_BLOCK.
(case_end): Add ST_END_BLOCK.
(gfc_ascii_statement): Handle ST_BLOCK and ST_END_BLOCK.
(parse_spec): Check for statements not allowed inside of BLOCK.
(parse_block_construct): New routine.
(parse_executable): Parse BLOCKs.
(parse_progunit): Disallow CONTAINS in BLOCK constructs.
* resolve.c (is_illegal_recursion): Find real container procedure and
don't get confused by BLOCK constructs.
(resolve_block_construct): New routine.
(gfc_resolve_blocks), (resolve_code): Handle EXEC_BLOCK.
* st.c (gfc_free_statement): Handle EXEC_BLOCK statements.
* trans-decl.c (saved_local_decls): New static variable.
(add_decl_as_local): New routine.
(gfc_finish_var_decl): Add variable as local if inside BLOCK.
(gfc_trans_deferred_vars): Make public.
(gfc_process_block_locals): New routine.
* trans-stmt.c (gfc_trans_block_construct): New routine.
* trans.c (gfc_trans_code): Handle EXEC_BLOCK statements.

2009-09-29  Daniel Kraft  d...@domob.eu

PR fortran/39626
* gfortran.dg/block_1.f08: New test.
* gfortran.dg/block_2.f08: New test.
* gfortran.dg/block_3.f90: New test.
* gfortran.dg/block_4.f08: New test.
* gfortran.dg/block_5.f08: New test.
* gfortran.dg/block_6.f08: New test.
* gfortran.dg/block_7.f08: New test.
* gfortran.dg/block_8.f08: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/block_1.f08
trunk/gcc/testsuite/gfortran.dg/block_2.f08
trunk/gcc/testsuite/gfortran.dg/block_3.f90
trunk/gcc/testsuite/gfortran.dg/block_4.f08
trunk/gcc/testsuite/gfortran.dg/block_5.f08
trunk/gcc/testsuite/gfortran.dg/block_6.f08
trunk/gcc/testsuite/gfortran.dg/block_7.f08
trunk/gcc/testsuite/gfortran.dg/block_8.f08
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/decl.c
trunk/gcc/fortran/gfortran.h
trunk/gcc/fortran/match.c
trunk/gcc/fortran/match.h
trunk/gcc/fortran/parse.c
trunk/gcc/fortran/parse.h
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/st.c
trunk/gcc/fortran/trans-decl.c
trunk/gcc/fortran/trans-stmt.c
trunk/gcc/fortran/trans-stmt.h
trunk/gcc/fortran/trans.c
trunk/gcc/fortran/trans.h
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/39626] Correctly implement details of Fortran 2008 BLOCK construct

2009-09-29 Thread domob at gcc dot gnu dot org


--- Comment #6 from domob at gcc dot gnu dot org  2009-09-29 07:48 ---
Committed my patch linked above.  This implements basic BLOCK support (what I
as a user would reasonably expect it to behave) but misses a lot of finer
details; I'll keep the PR open for those.

See my mailing list message for more information, but what I've got in mind for
still missing stuff:

* handle VOLATILE and ASYNCHRONOUS as the draft standard mentions
* implement the clause requiring SAVE to not reference a common-name
* do more stuff with regards to 'construct entities' rather than ordinary
variables, for instance the IMPLICIT handling Richard Maine mentioned in his
c.l.f post which is also the XFAIL'ed test-case block_7.f08


-- 

domob at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|Fortran 2008: Implement |Correctly implement details
   |BLOCK construct |of Fortran 2008 BLOCK
   ||construct


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



[Bug fortran/39626] Correctly implement details of Fortran 2008 BLOCK construct

2009-09-29 Thread domob at gcc dot gnu dot org


--- Comment #7 from domob at gcc dot gnu dot org  2009-09-29 07:49 ---
Also, Tobias mentioned (in the linked thread):

The patch looks good to me. It sometimes makes the diagnostics less
useful, e.g. for

recursive function func(i)
  integer :: i, func
  func = 1
entry func2(i)
  block
func2 = func(1)
  end block
end function func

But the same Unclassifiable statement one gets if one not only removes
(end )block but also recursive.


-- 


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



[Bug target/33637] [4.3/4.4/4.5 Regression] checking for nm: test: too many arguments causes Undefined symbol: __gxx_personality_v0

2009-09-29 Thread michael dot haubenwallner at salomon dot at


--- Comment #9 from michael dot haubenwallner at salomon dot at  2009-09-29 
08:09 ---
(In reply to comment #6)
 Can you try GCC 4.3.2 and see if that fails for you?

Still failing with gcc-4.3.3 and gcc-4.4.1: The stage1 xgcc starts doing ICE
once its libgcc_s.a is built, because libgcc_s.a(shr.o) does not export any
symbols due to broken nm, and preinstalled libgmp.a and libmpfr.a find the
local libgcc_s.a when they were built with another gcc.

The configure{,.ac} part of the patch still applies unmodified.

stamp-nm: $(ORIGINAL_NM_FOR_TARGET)
 
 This is no longer there.

Yep, the Makefile now doesn't have this problem any more.

 Though we have:
 exec $original ${1+$@}

This is problematic, as $original is /path/to/nm -B -X32_64.
It works when the quotes are dropped:

- exec $original ${1+$@}
+ exec $original ${1+$@}

Patch working for both 4.3.3 and 4.4.1 now is:
http://overlays.gentoo.org/proj/alt/export/51702/trunk/prefix-overlay/sys-devel/gcc/files/4.3.0/targettools-checks.patch


-- 

michael dot haubenwallner at salomon dot at changed:

   What|Removed |Added

 Status|WAITING |UNCONFIRMED


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



[Bug tree-optimization/41498] ICE with graphite flags on trunk

2009-09-29 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2009-09-29 09:49 ---
Can you provide preprocessed source?


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||spop at gcc dot gnu dot org


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



[Bug tree-optimization/41497] [4.5 Regression] apparent integer wrong code bug

2009-09-29 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2009-09-29 09:51 ---
Thus, confirmed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
  Component|c   |tree-optimization
 Ever Confirmed|0   |1
   Keywords||wrong-code
  Known to work||4.3.4 4.4.1
   Last reconfirmed|-00-00 00:00:00 |2009-09-29 09:51:50
   date||
Summary|apparent integer wrong code |[4.5 Regression] apparent
   |bug |integer wrong code bug
   Target Milestone|--- |4.5.0
Version|unknown |4.5.0


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



[Bug middle-end/41496] [4.5 regression] Many regressions on trunk

2009-09-29 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.5.0


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



[Bug lto/41390] [LTO] ICE in lto_output_tree_pointers, at lto-streamer-out.c:1285

2009-09-29 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2009-09-29 09:53 ---
I'll add a testcase after the merge.


-- 

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|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-09-29 09:53:34
   date||


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



[Bug fortran/41494] temp and memcpy used when zeroing array

2009-09-29 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2009-09-29 10:01 ---
I wonder why it uses the extra temporary - that shouldn't be necessary.

Ah, it's because of

  else if (ts.type == BT_DERIVED)
{
  gfc_add_block_to_block (block, lse-pre);
  gfc_add_block_to_block (block, rse-pre);
  tmp = gfc_evaluate_now (rse-expr, block);
  tmp = fold_build1 (VIEW_CONVERT_EXPR, TREE_TYPE (lse-expr), tmp);
  gfc_add_modify (block, lse-expr, tmp);

changing that to something that doesn't call gfc_evaluate_now in the
correct cases should fix this.  What do we expect there?  My first
bet would be to use EXPR_P as a check.  Or maybe we can drop the
gfc_evaluate_now call completely here?


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-09-29 10:01:31
   date||


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



[Bug fortran/41494] [4.5 Regression] temp and memcpy used when zeroing array

2009-09-29 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu dot
   ||org
   Keywords||missed-optimization
Summary|temp and memcpy used when   |[4.5 Regression] temp and
   |zeroing array   |memcpy used when zeroing
   ||array
   Target Milestone|--- |4.5.0


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



[Bug lto/41173] [LTO] internal error: builtin function to __builtin_spe_mtspefscr already processed

2009-09-29 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2009-09-29 10:02 ---
Let's add a testcase after the merge.


-- 


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



[Bug bootstrap/41491] [4.5 regression] ICE in set_value_range, at tree-vrp.c:386

2009-09-29 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2009-09-29 10:03 ---
Please attach preprocessed source.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.5.0


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



[Bug lto/40392] ICE in lto_end_uncompression, at lto-compress.c:282

2009-09-29 Thread rguenth at gcc dot gnu dot org


--- Comment #8 from rguenth at gcc dot gnu dot org  2009-09-29 10:04 ---
And s390(x).


-- 


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



[Bug lto/40392] ICE in lto_end_uncompression, at lto-compress.c:282

2009-09-29 Thread rguenth at gcc dot gnu dot org


--- Comment #9 from rguenth at gcc dot gnu dot org  2009-09-29 10:08 ---
Diego, can't we simply drop the assemble_align call from lhd_begin_section?


-- 


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



[Bug libstdc++/41448] std::sort on std::vectorfloat with certain values leads to segfault in the vector destructor

2009-09-29 Thread chris at bubblescope dot net


--- Comment #8 from chris at bubblescope dot net  2009-09-29 11:04 ---
Just to clarify, it is not a memory leak which is occurring, it is memory
corruption. Basically when std::sort is given a type which is not totally
ordered as required, it tends to corrupt the memory immediately before and
after the given array. There are a few ways in which this could be detected,
but if it was detected it's not obvious what the behaviour should then be, and
obviously it would (slightly) slow down std::sort when given 'correct' types.


-- 

chris at bubblescope dot net changed:

   What|Removed |Added

 CC||chris at bubblescope dot net


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



[Bug libstdc++/41448] std::sort on std::vectorfloat with certain values leads to segfault in the vector destructor

2009-09-29 Thread paolo dot carlini at oracle dot com


--- Comment #9 from paolo dot carlini at oracle dot com  2009-09-29 11:55 
---
In C++03 this is not a bug. However, I seem to vaguely remember a recent
discussion in the committee (basing on either a paper or a DR) about
comparisons of floats, if somebody can find a reference I would appreciate
it...


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug tree-optimization/41499] New: missed optimization: Scalar evolution analysis prevents vectorization

2009-09-29 Thread eres at il dot ibm dot com
The hot loop in SPEC2000/179.art scanner.c (line 615) does not get vectorized
due to data ref analysis failure:

(The original loop contains invariant store which I manually extracted out of
the loop. Will try to generate a testcase.)

Taken from the vectorizer dump:

(instantiate_scev
  (instantiate_below = 252)
  (evolution_loop = 56)
  (chrec = {(double *) pretmp.1559_2569 + (long unsigned int) pretmp.1564_2574,
+, (long unsigned int) pretmp.1561_2571}_56)
  (res = {(double *) pretmp.1559_2569 + (long unsigned int) pretmp.1564_2574,
+, (long unsigned int) pretmp.1561_2571}_56))
base_address:
offset from base address:
constant offset from base address:
step:
aligned to:
base_object: *((double *) pretmp.1559_2569 + (long unsigned int)
(D.8586_1080 * 8))
(compute_affine_dependence
  (stmt_a =
D.8555_1089 = D.8600_1088-P;
)
  (stmt_b =
D.8548_1100 = *D.8549_1099;
)
)

scanner.c:615: note: get vectype with 2 units of type double
scanner.c:615: note: vectype: vector double
scanner.c:615: note: not vectorized: data ref analysis failed D.8548_1100 =
*D.8549_1099;

scanner.c:615: note: bad data references.(get_loop_exit_condition

Here are the flags that I used:

/data1/eres/mainline45/bbuild/bin/gcc-m64 -DSPEC_CPU2000_LP64   
-mrecip -m64 -fpeel-loops -funroll-loops -ftree-loop-linear -ffast-math  -O3 
-maltivec -mvsx  -Wa,-mpower7 -Wa,-mvsx   -mcpu=power7 -fwhole-program
--combine -fipa-matrix-reorg -fdump-tree-vect-details scanner.c   -lm  -o
art


-- 
   Summary: missed optimization: Scalar evolution analysis prevents
vectorization
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: eres at il dot ibm dot com


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



[Bug lto/40754] lto1 dies with SIGBUS/SIGSEGV on Solaris 11/SPARC

2009-09-29 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2009-09-29 12:09 ---
Hm.  Even lto_read_file_options causes unaligned accesses in some cases.  It
looks
like the ELF sections in the wpa files are no aligned:

Section Headers:
  [Nr] Name  Type Address   Offset
   Size  EntSize  Flags  Link  Info  Align
  [ 0]   NULL   
        0 0 0
  [ 1] .gnu.lto_main PROGBITS   0040
   02c8     0 0 1
  [ 2] .gnu.lto_myprintf PROGBITS   0308
   0322     0 0 1
  [ 3] .gnu.lto_.cgraph  PROGBITS   062a
   00c6     0 0 1
...

properly aligning the data in lto_elf_append_data is needed, but only
for the first data block in a section.

I have a hack^Wpatch.


-- 

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|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-09-29 12:09:04
   date||


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



[Bug tree-optimization/41499] Scalar evolution analysis prevents vectorization

2009-09-29 Thread eres at il dot ibm dot com


--- Comment #1 from eres at il dot ibm dot com  2009-09-29 12:14 ---
I was using trunk -r152153 and run on powerpc64.


-- 

eres at il dot ibm dot com changed:

   What|Removed |Added

   Keywords||missed-optimization
Summary|missed optimization: Scalar |Scalar evolution analysis
   |evolution analysis prevents |prevents vectorization
   |vectorization   |


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



[Bug lto/40392] ICE in lto_end_uncompression, at lto-compress.c:282

2009-09-29 Thread rguenth at gcc dot gnu dot org


--- Comment #10 from rguenth at gcc dot gnu dot org  2009-09-29 12:56 
---
Subject: Bug 40392

Author: rguenth
Date: Tue Sep 29 12:56:29 2009
New Revision: 152274

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152274
Log:
2009-09-29  Richard Guenther  rguent...@suse.de

PR lto/41467
* lto-symtab.c (lto_symtab_compatible): Fix typos.

PR lto/40392
* langhooks.c (lhd_begin_section): Do not align the section.

* config/rs6000/rs6000.c (rs6000_output_function_epilogue):
Handle LTO.

PR lto/40754
* lto-elf.c (init_shdr##BITS): Properly specify alignment
in bytes.
(first_data_block): New static variable.
(lto_elf_append_data): Align the first data block in each
section.

* lib/torture-options.exp: Do not append an empty option.

Modified:
branches/lto/gcc/ChangeLog.lto
branches/lto/gcc/config/rs6000/rs6000.c
branches/lto/gcc/langhooks.c
branches/lto/gcc/lto-symtab.c
branches/lto/gcc/lto/ChangeLog
branches/lto/gcc/lto/lto-elf.c
branches/lto/gcc/testsuite/ChangeLog.lto
branches/lto/gcc/testsuite/lib/torture-options.exp


-- 


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



[Bug lto/40754] lto1 dies with SIGBUS/SIGSEGV on Solaris 11/SPARC

2009-09-29 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2009-09-29 12:56 ---
Subject: Bug 40754

Author: rguenth
Date: Tue Sep 29 12:56:29 2009
New Revision: 152274

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152274
Log:
2009-09-29  Richard Guenther  rguent...@suse.de

PR lto/41467
* lto-symtab.c (lto_symtab_compatible): Fix typos.

PR lto/40392
* langhooks.c (lhd_begin_section): Do not align the section.

* config/rs6000/rs6000.c (rs6000_output_function_epilogue):
Handle LTO.

PR lto/40754
* lto-elf.c (init_shdr##BITS): Properly specify alignment
in bytes.
(first_data_block): New static variable.
(lto_elf_append_data): Align the first data block in each
section.

* lib/torture-options.exp: Do not append an empty option.

Modified:
branches/lto/gcc/ChangeLog.lto
branches/lto/gcc/config/rs6000/rs6000.c
branches/lto/gcc/langhooks.c
branches/lto/gcc/lto-symtab.c
branches/lto/gcc/lto/ChangeLog
branches/lto/gcc/lto/lto-elf.c
branches/lto/gcc/testsuite/ChangeLog.lto
branches/lto/gcc/testsuite/lib/torture-options.exp


-- 


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



[Bug lto/41467] ICE in lto_symtab_prevailing_decl, at lto-symtab.c:727 for 483.xalancbmk

2009-09-29 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2009-09-29 12:56 ---
Subject: Bug 41467

Author: rguenth
Date: Tue Sep 29 12:56:29 2009
New Revision: 152274

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152274
Log:
2009-09-29  Richard Guenther  rguent...@suse.de

PR lto/41467
* lto-symtab.c (lto_symtab_compatible): Fix typos.

PR lto/40392
* langhooks.c (lhd_begin_section): Do not align the section.

* config/rs6000/rs6000.c (rs6000_output_function_epilogue):
Handle LTO.

PR lto/40754
* lto-elf.c (init_shdr##BITS): Properly specify alignment
in bytes.
(first_data_block): New static variable.
(lto_elf_append_data): Align the first data block in each
section.

* lib/torture-options.exp: Do not append an empty option.

Modified:
branches/lto/gcc/ChangeLog.lto
branches/lto/gcc/config/rs6000/rs6000.c
branches/lto/gcc/langhooks.c
branches/lto/gcc/lto-symtab.c
branches/lto/gcc/lto/ChangeLog
branches/lto/gcc/lto/lto-elf.c
branches/lto/gcc/testsuite/ChangeLog.lto
branches/lto/gcc/testsuite/lib/torture-options.exp


-- 


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



[Bug testsuite/41444] Typo in gcc/testsuite/gcc.dg/guality/guality.h

2009-09-29 Thread jakub at gcc dot gnu dot org


--- Comment #3 from jakub at gcc dot gnu dot org  2009-09-29 12:57 ---
Subject: Bug 41444

Author: jakub
Date: Tue Sep 29 12:56:46 2009
New Revision: 152275

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152275
Log:
PR testsuite/41444
* gcc.dg/guality/guality.h (GUALITY_GDB_REDIRECT): Fix a typo
in macro name definition for non-unix/win32/msdos.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/guality/guality.h


-- 


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



[Bug lto/40392] ICE in lto_end_uncompression, at lto-compress.c:282

2009-09-29 Thread rguenth at gcc dot gnu dot org


--- Comment #11 from rguenth at gcc dot gnu dot org  2009-09-29 12:58 
---
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug testsuite/41444] Typo in gcc/testsuite/gcc.dg/guality/guality.h

2009-09-29 Thread jakub at gcc dot gnu dot org


--- Comment #4 from jakub at gcc dot gnu dot org  2009-09-29 12:58 ---
Fixed.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug lto/40754] lto1 dies with SIGBUS/SIGSEGV on Solaris 11/SPARC

2009-09-29 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2009-09-29 12:58 ---
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug lto/41467] ICE in lto_symtab_prevailing_decl, at lto-symtab.c:727 for 483.xalancbmk

2009-09-29 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2009-09-29 12:58 ---
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug bootstrap/41500] New: [4.4 Regression] ARM: 4.4 compiler segfault when compiling gcc

2009-09-29 Thread armin76 at gentoo dot org
Since 4.4 i'm unable to rebuild gcc, check downstream bug:
http://bugs.gentoo.org/286251

Steps to reproduce:
- extract gcc-4.4.1 tarball
-./configure
-make LDFLAGS=-Wl,-O1 STAGE1_CFLAGS=-O
LIBPATH=/usr/lib/gcc/armv5tel-softfloat-linux-gnueabi/4.4.1 'BOOT_CFLAGS=
-march=armv5te -pipe -O2' bootstrap-lean
-segfaults

The failing part is as follows:
hecking for armv5tel-softfloat-linux-gnueabi-ar...
/usr/armv5tel-softfloat-linux-gnueabi/bin/ar
checking for armv5tel-softfloat-linux-gnueabi-lipo... lipo
checking for armv5tel-softfloat-linux-gnueabi-nm...
/var/tmp/portage/sys-devel/gcc-4.4.1/work/build/./gcc/nm
checking for armv5tel-softfloat-linux-gnueabi-ranlib...
/usr/armv5tel-softfloat-linux-gnueabi/bin/ranlib
checking for armv5tel-softfloat-linux-gnueabi-strip...
/usr/armv5tel-softfloat-linux-gnueabi/bin/strip
checking whether ln -s works... yes
checking for armv5tel-softfloat-linux-gnueabi-gcc...
/var/tmp/portage/sys-devel/gcc-4.4.1/work/build/./gcc/xgcc
-B/var/tmp/portage/sys-devel/gcc-4.4.1/work/build/./gcc/
-B/usr/armv5tel-softfloat-linux-gnueabi/bin/
-B/usr/armv5tel-softfloat-linux-gnueabi/lib/ -isystem
/usr/armv5tel-softfloat-linux-gnueabi/include -isystem
/usr/armv5tel-softfloat-linux-gnueabi/sys-include
checking for suffix of object files... configure: error: in
`/var/tmp/portage/sys-devel/gcc-4.4.1/work/build/armv5tel-softfloat-linux-gnueabi/libgcc':
configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.
make[2]: *** [configure-stage1-target-libgcc] Error 1
make[2]: Leaving directory `/var/tmp/portage/sys-devel/gcc-4.4.1/work/build'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/var/tmp/portage/sys-devel/gcc-4.4.1/work/build'

config.log contains:
configure:2415: /var/tmp/portage/sys-devel/gcc-4.4.1/work/build/./gcc/xgcc
-B/var/tmp/portage/sys-devel/gcc-4.4.1/work/build/./gcc/
-B/usr/armv5tel-softfloat-linux-gnueabi/bin/
-B/usr/armv5tel-softfloat-linux-gnueabi/lib/ -isystem
/usr/armv5tel-softfloat-linux-gnueabi/include -isystem
/usr/armv5tel-softfloat-linux-gnueabi/sys-include -o conftest -g -march=armv5te
-pipe -O2 conftest.c  5
conftest.c: In function 'main':
conftest.c:15: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://bugs.gentoo.org/ for instructions.
configure:2418: $? = 1
configure:2590: checking for suffix of object files
configure:2611: /var/tmp/portage/sys-devel/gcc-4.4.1/work/build/./gcc/xgcc
-B/var/tmp/portage/sys-devel/gcc-4.4.1/work/build/./gcc/
-B/usr/armv5tel-softfloat-linux-gnueabi/bin/
-B/usr/armv5tel-softfloat-linux-gnueabi/lib/ -isystem
/usr/armv5tel-softfloat-linux-gnueabi/include -isystem
/usr/armv5tel-softfloat-linux-gnueabi/sys-include -c -g -march=armv5te -pipe
-O2conftest.c 5
conftest.c: In function 'main':
conftest.c:15: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://bugs.gentoo.org/ for instructions.
configure:2614: $? = 1

It works when using -O2 in STAGE1_CFLAGS instead of -O. This doesn't occur on
4.3, 4.3 is able to compile 4.4, but 4.4 is unable to compile itself or
gcc-4.3.

Not sure if its related, but i filed bug 40105 for SH some time ago, and using
-O2 in STAGE1_CFLAGS made it work.

Thanks, let me know if you need more info.


-- 
   Summary: [4.4 Regression] ARM: 4.4 compiler segfault when
compiling gcc
   Product: gcc
   Version: 4.4.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: armin76 at gentoo dot org
  GCC host triplet: armv5tel-softfloat-linux-gnueabi


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



[Bug tree-optimization/41501] New: FAIL: gcc.dg/tree-prof/bb-reorg.c compilation, -fprofile-use -D_PROFILE_USE - `-fprofile-use' fails with '-02'

2009-09-29 Thread jason dot vas dot dias at gmail dot com
gcc-4.4.2 testsuite failures:
FAIL: gcc.dg/tree-prof/bb-reorg.c compilation,  -fprofile-use -D_PROFILE_USE
FAIL: gcc.dg/tree-prof/pr34999.c compilation,  -fprofile-use -D_PROFILE_USE

using binutils 2.20.51.20090927

Copying sources to a temporary directory and repeating commands used by
testsuite produces this log:

$ ${GCC_BUILD}/gcc/xgcc bb-reorg.c -B${GCC_BUILD}/gcc/ -O2
-freorder-blocks-and-partition -fprofile-generate -D_PROFILE_GENERATE -lm -o
bb-reorg.x01
$ ./bb-reorg.x01
$ ${GCC_BUILD}/gcc/xgcc bb-reorg.c -B${GCC_BUILD}/gcc/ -O2
-freorder-blocks-and-partition -fprofile-use -D_PROFILE_USE -lm -o bb-reorg.x02
/tmp/ccFSvybE.s: Assembler messages:
/tmp/ccFSvybE.s:98: Error: .cfi_endproc without corresponding .cfi_startproc
/tmp/ccFSvybE.s:116: Error: open CFI at the end of file; missing .cfi_endproc
directive

Omitting '-O2' fixes :
$ ${GCC_BUILD}/gcc/xgcc bb-reorg.c -B${GCC_BUILD}/gcc/ 
-freorder-blocks-and-partition -fprofile-generate -D_PROFILE_GENERATE -lm -o
bb-reorg.x01
$ ./bb-reorg.x01
$ ${GCC_BUILD}/gcc/xgcc bb-reorg.c -B${GCC_BUILD}/gcc/
-freorder-blocks-and-partition -fprofile-use -D_PROFILE_USE -lm -o bb-reorg.x02
$ ./bb-reorg.x02

The same problem occurs with 
gcc/testsuite/gcc.dg/tree-prof/pr34999.c .


-- 
   Summary: FAIL: gcc.dg/tree-prof/bb-reorg.c compilation,  -
fprofile-use -D_PROFILE_USE - `-fprofile-use' fails
with '-02'
   Product: gcc
   Version: 4.4.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jason dot vas dot dias at gmail dot com
 GCC build triplet: x86_64-pc-linux-gnu
  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=41501



[Bug ada/41493] [4.5 regression] ACATS c34006g fails on arm-linux and sparc-rtems

2009-09-29 Thread laurent at guerby dot net


--- Comment #1 from laurent at guerby dot net  2009-09-29 13:32 ---
This happens also on arm-linux at rev 152122

http://gcc.gnu.org/ml/gcc-testresults/2009-09/msg02662.html

.,. C34006G ACATS 2.5 09-09-28 14:27:54^M
 C34006G CHECK THAT THE REQUIRED PREDEFINED OPERATIONS ARE DECLARED ^M
(IMPLICITLY) FOR DERIVED RECORD TYPES WITHOUT^M
DISCRIMINANTS AND WITH A LIMITED COMPONENT TYPE.^M
   * C34006G INCORRECT SELECTION (ASSIGNMENT).^M
 C34006G FAILED .^M


-- 

laurent at guerby dot net changed:

   What|Removed |Added

 CC|guerby at gcc dot gnu dot   |laurent at guerby dot net
   |org |
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
 GCC target triplet|sparc-rtems4.10 |
   Keywords||wrong-code
   Last reconfirmed|-00-00 00:00:00 |2009-09-29 13:32:14
   date||
Summary|ACATS c34006g fails |[4.5 regression] ACATS
   ||c34006g fails on arm-linux
   ||and sparc-rtems


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



[Bug ada/41493] [4.5 regression] ACATS c34006g fails on arm-linux and sparc-rtems

2009-09-29 Thread joel at gcc dot gnu dot org


--- Comment #2 from joel at gcc dot gnu dot org  2009-09-29 13:35 ---
Add powerpc-rtems4.10 to the list of targets that fail.


-- 

joel at gcc dot gnu dot org changed:

   What|Removed |Added

  Known to work||4.4.1


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



[Bug ada/41325] ACATS c37105a wrong code on armv5tel

2009-09-29 Thread laurent at guerby dot net


--- Comment #3 from laurent at guerby dot net  2009-09-29 13:38 ---
Together with PR41493 these are the only two ACATS fail on arm-linux as of rev
152122:

http://gcc.gnu.org/ml/gcc-testresults/2009-09/msg02662.html


-- 


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



[Bug middle-end/41502] New: ICE in expand_call_inline

2009-09-29 Thread rguenth at gcc dot gnu dot org
gcc.dg/attr-warn-unused-result.c ICEs in

Program received signal SIGSEGV, Segmentation fault.
0x00c790bc in expand_call_inline (bb=0x771a0a10, 
stmt=0x77198000, id=0x7fffd810)
at /space/rguenther/src/svn/lto/gcc/tree-inline.c:3661
3661  gcc_assert (!id-src_cfun-after_inlining);
(gdb) p cfun
$1 = (struct function *) 0x77128140
(gdb) p id-src_cfun
$1 = (struct function *) 0x0


-- 
   Summary: ICE in expand_call_inline
   Product: gcc
   Version: lto
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rguenth at gcc dot gnu dot org


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



[Bug middle-end/41502] ICE in expand_call_inline

2009-09-29 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2009-09-29 13:46 ---
Reduced testcase, fails at -O1:

typedef void (*fnt) (void);
extern inline void check3 (void)
{
  bar ();
}
void test (void) 
{
  const fnt pcheck3 = check3;
  pcheck3 ();
}

all details important: extern, the call to bar() and the indirect call in test.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-09-29 13:46:24
   date||


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



[Bug tree-optimization/41089] [4.5 Regression] r147980 (New SRA) breaks stdargs

2009-09-29 Thread jamborm at gcc dot gnu dot org


--- Comment #31 from jamborm at gcc dot gnu dot org  2009-09-29 13:49 
---
(In reply to comment #12)
 Thus I believe SRA has nothing to
 do with these remaining failures.  If you want to confirm this
 independently, compile them with -fno-tree-sra.
 

...and so I un-assign this bug from myself.


-- 

jamborm at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|jamborm at gcc dot gnu dot  |unassigned at gcc dot gnu
   |org |dot org
 Status|ASSIGNED|NEW


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



[Bug c++/41503] New: function_parameter_expanded_from_pack_p segfaults when passed a PARM_DECL created by IPA-SRA

2009-09-29 Thread jamborm at gcc dot gnu dot org
function_parameter_expanded_from_pack_p() segfaults when compiling
20_util/reference_wrapper/24803.cc and IPA-SRA turned on.  The reason
is that it is presented a PARM_DECL that was created by IPA-SRA and
which does not have language specific data.

The backtrace is:
#0  0x004b872f in function_parameter_expanded_from_pack_p
(param_decl=0x76a123f0, pack=0x76e59cf0)
at /home/jamborm/gcc/mine/gcc/cp/pt.c:2679
#1  0x00604090 in gen_subprogram_die (decl=0x76b2ca00,
context_die=value optimized out)
at /home/jamborm/gcc/mine/gcc/dwarf2out.c:15459
#2  0x00605c01 in gen_decl_die (decl=0x76b2ca00, origin=0x0,
context_die=0x7734a2a0)
at /home/jamborm/gcc/mine/gcc/dwarf2out.c:17538
#3  0x00605268 in dwarf2out_abstract_function (decl=0x76b2ca00)
at /home/jamborm/gcc/mine/gcc/dwarf2out.c:15624
#4  0x0090b11b in optimize_inline_calls (fn=0x76c3e900)
at /home/jamborm/gcc/mine/gcc/tree-inline.c:3820
#5  0x008e90af in cgraph_early_inlining () at
/home/jamborm/gcc/mine/gcc/ipa-inline.c:1593
#6  0x006ecd04 in execute_one_pass (pass=0x10fe430) at
/home/jamborm/gcc/mine/gcc/passes.c:1295
#7  0x006ecf45 in execute_pass_list (pass=0x10fe430) at
/home/jamborm/gcc/mine/gcc/passes.c:1344
#8  0x006ecf57 in execute_pass_list (pass=0x10444a0) at
/home/jamborm/gcc/mine/gcc/passes.c:1345
#9  0x006ed29e in execute_ipa_pass_list (pass=0x100) at
/home/jamborm/gcc/mine/gcc/passes.c:906
#10 0x008e3c6c in cgraph_finalize_compilation_unit () at
/home/jamborm/gcc/mine/gcc/cgraphunit.c:1358
#11 0x004e68c6 in cp_write_global_declarations () at
/home/jamborm/gcc/mine/gcc/cp/decl2.c:3754
#12 0x0077f0c0 in toplev_main (argc=39, argv=0x7fffd978) at
/home/jamborm/gcc/mine/gcc/toplev.c:1050
#13 0x773f3586 in __libc_start_main () from /lib64/libc.so.6
#14 0x00493bc9 in _start () at ../sysdeps/x86_64/elf/start.S:113

I am about to test a patch that will make the function return false
if DECL_ARTIFICIAL (param_decl) is true.


-- 
   Summary: function_parameter_expanded_from_pack_p segfaults when
passed a PARM_DECL created by IPA-SRA
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: jamborm at gcc dot gnu dot org
ReportedBy: jamborm at gcc dot gnu dot org
 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=41503



[Bug middle-end/41502] ICE in expand_call_inline

2009-09-29 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2009-09-29 14:04 ---
static void
ipa_passes (void)
{
...
  /* Remove the bodies of extern inline functions that we never
 inlined.  */
  cgraph_remove_unreachable_nodes (false, dump_file);


that's bogus and too early.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||hubicka at gcc dot gnu dot
   ||org
 AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2009-09-29 13:46:24 |2009-09-29 14:04:01
   date||


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



[Bug middle-end/41502] ICE in expand_call_inline

2009-09-29 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2009-09-29 14:20 ---
Papered over.

./xgcc -B. -o t.o -shared attr-warn-unused-result.3.i -O -fPIC -flto

still ICEs the old way.


-- 


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



[Bug middle-end/41502] ICE in expand_call_inline

2009-09-29 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2009-09-29 14:21 ---
Subject: Bug 41502

Author: rguenth
Date: Tue Sep 29 14:20:37 2009
New Revision: 152277

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152277
Log:
2009-09-29  Richard Guenther  rguent...@suse.de

* gcc.dg/visibility-7.c: Revert changes.

PR middle-end/41502
* cgraphunit.c (ipa_passes): Do not remove bodies of extern
inline functions if not generating lto output.

Modified:
branches/lto/gcc/ChangeLog.lto
branches/lto/gcc/cgraphunit.c
branches/lto/gcc/testsuite/ChangeLog.lto
branches/lto/gcc/testsuite/gcc.dg/visibility-7.c


-- 


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



[Bug libfortran/41504] New: Incorrect __gthread_active_p version with weak symbols (pthread_cancel does not bring in pthread_mutex_trylock)

2009-09-29 Thread DumaShkurko at gmail dot com
Hello,

Compile the following file with gcc:

void s () {
  pthread_cancel();
  /*pthread_mutex_trylock (); */
}

and the following file with gfortran:
program test
   print*, Bug
end program test

Link both files using gfortran -static -pthread. Note that the program dies
with SEGV in pthread_mutex_trylock (weak symbol equal to 0x0).

It is due to the fact that __gthread_active_p checks only for pthread_cancel
and pthread_mutex_trylock is not automatically taken from libpthread.a.

Un-commenting pthread_mutex_trylock in s() fixes the problem.

Regards,
Dima


-- 
   Summary: Incorrect __gthread_active_p version with weak symbols
(pthread_cancel does not bring in pthread_mutex_trylock)
   Product: gcc
   Version: 4.3.4
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libfortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: DumaShkurko 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=41504



[Bug libfortran/41504] Incorrect __gthread_active_p version with weak symbols (pthread_cancel does not bring in pthread_mutex_trylock)

2009-09-29 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2009-09-29 14:31 ---
You need to link libpthread.a with -Wl,--whole-archive

In general static linking is not recommended with glibc and threads.


-- 

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=41504



[Bug debug/41438] [4.5 Regression] VTA: libgomp build fails due to inconsistent debug info

2009-09-29 Thread jakub at gcc dot gnu dot org


--- Comment #1 from jakub at gcc dot gnu dot org  2009-09-29 14:40 ---
My http://gcc.gnu.org/ml/gcc-patches/2009-09/msg02070.html patch fixes this
too.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|aoliva at gcc dot gnu dot   |jakub at gcc dot gnu dot org
   |org |
URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2009-
   ||09/msg02070.html
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-09-29 14:40:29
   date||


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



[Bug tree-optimization/41501] FAIL: gcc.dg/tree-prof/bb-reorg.c compilation, -fprofile-use -D_PROFILE_USE - `-fprofile-use' fails with '-02'

2009-09-29 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2009-09-29 14:58 ---
This was fixed on the trunk, I don't have the changelog entry handy though, but
it was done by Jakub IIRC.


-- 


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



[Bug libfortran/41504] Incorrect __gthread_active_p version with weak symbols (pthread_cancel does not bring in pthread_mutex_trylock)

2009-09-29 Thread DumaShkurko at gmail dot com


--- Comment #2 from DumaShkurko at gmail dot com  2009-09-29 15:09 ---
Is it possible to adjust specs file for -static and/or -pthread?


-- 


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



[Bug fortran/41479] [4.3/4.4/4.5 Regression] intent(out) for types with default initialization

2009-09-29 Thread jakub at gcc dot gnu dot org


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P3  |P4


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



[Bug target/41505] New: GCC choosing poor code sequence for certain stores (x86)

2009-09-29 Thread law at redhat dot com
Consider:

foo(int *x)
{
  *x = 0;
}

Compile with -Os -fomit-frame-pointer and you'll get something like this:

movl4(%esp), %eax
movl$0, (%eax)

It would be 2 bytes shorter to instead load the constant 0 via an xor
instruction into a scratch register, then store the scratch register into the
memory location.  Something like this:

movl4(%esp), %eax
xor %edx, %edx
movl%edx, (%eax)


ISTM this could easily be implemented with a peep2.

I'm not well versed enough in x86 instruction timings to know if the xor
sequence is going to generally be faster.


-- 
   Summary: GCC choosing poor code sequence for certain stores (x86)
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: law at redhat dot com
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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



[Bug gcov-profile/41506] New: all gcov tests fail because gcov.c's use of '#define __USE_GNU' has no effect

2009-09-29 Thread jason dot vas dot dias at gmail dot com
Every gcov test in the gcov testsuite 
 ( gcc/testsuite/gcc.misc-tests/gcov.exp )
fails because gcov gets a SIGSEGV
on its first invocation of 'fgets()' -  
  'char *fgets_unlocked( char *buf, size_t size, FILE *stream )
  '
is NOT declared, because '__USE_GNU' is NOT defined ; 
__USE_GNU is explicitly '#undef'd in /usr/include/features.h, 
and hence any prexisting user definition of it is discarded,
so stdio.h's :
#ifdef __USE_GNU
extern char *fgets_unlocked (char *__restrict __s, int __n,
 FILE *__restrict __stream) __wur;
#endif
produces no output, so 'fgets_unlocked' is implicitly declared to return an
int,
producing these warnings when gcov.o is built by 'make bootstrap' :

gcc -c  -g -fkeep-inline-functions -DIN_GCC   -W -Wall -Wwrite-strings
-Wstrict-prototypes -Wmissing-prototypes -Wcast-qual -Wold-style-definition
-Wc++-compat -Wmissing-format-attribute -pedantic -Wno-long-long
-Wno-variadic-macros -Wno-overlength-strings   -DHAVE_CONFIG_H -I. -I.
-I../../gcc -I../../gcc/. -I../../gcc/../include -I../../gcc/../libcpp/include 
-I../../gcc/../libdecnumber -I../../gcc/../libdecnumber/bid -I../libdecnumber  
 ../../gcc/gcov.c -o gcov.o
../../gcc/gcov.c: In function 'output_lines':
../../gcc/gcov.c:1931: warning: implicit declaration of function
'fgets_unlocked'
../../gcc/gcov.c:1931: warning: assignment makes pointer from integer without a
cast
../../gcc/gcov.c:1934: warning: implicit declaration of function
'fputs_unlocked'
../../gcc/gcov.c:1974: warning: assignment makes pointer from integer without a
cast
../../gcc/gcov.c:1980: warning: assignment makes pointer from integer without a
cast

so gcov gets a SIGSEGV the first time it dereferences the return value of
 fgets(), which is a 64-bit pointer value converted to a 32-bit integer 
 and then back to a 64-bit pointer, on my x86_64 , 
as shown by gdb running gcov with the testsuite 'gcov-1.c' as input:
...
Reading symbols from /usr/build2/gcc/gcc-4_4-branch/x86_64/gcc/gcov...done.
(gdb) start gcov-1.c   
Temporary breakpoint 1 at 0x403090: file ../../gcc/gcov.c, line 360.   
Starting program: /usr/build2/gcc/gcc-4_4-branch/x86_64/gcc/gcov gcov-1.c  

Temporary breakpoint 1, main (argc=2, argv=0x7fffeb58) at
../../gcc/gcov.c:360
360 {
(gdb) c
Continuing.
File 'gcov-1.c'
Lines executed:100.00% of 6
gcov-1.c:creating 'gcov-1.c.gcov'

Program received signal SIGSEGV, Segmentation fault.
strlen () at ../sysdeps/x86_64/strlen.S:31
31  pcmpeqb (%rdi), %xmm2
Current language:  auto
The current source language is auto; currently asm.
(gdb) where
#0  strlen () at ../sysdeps/x86_64/strlen.S:31
#1  0x7781419e in *__GI_fputs_unlocked (str=0xe940 Address
0xe940 out of bounds, fp=0x6082a0) at iofputs_u.c:37
#2  0x0040428e in output_lines (argc=2, argv=0x7fffeb58) at
../../gcc/gcov.c:1934
#3  generate_results (argc=2, argv=0x7fffeb58) at ../../gcc/gcov.c:581
#4  main (argc=2, argv=0x7fffeb58) at ../../gcc/gcov.c:381
(gdb) up
#1  0x7781419e in *__GI_fputs_unlocked (str=0xe940 Address
0xe940 out of bounds, fp=0x6082a0) at iofputs_u.c:37
37_IO_size_t len = strlen (str);
Current language:  auto
The current source language is auto; currently c.
(gdb) up
#2  0x0040428e in output_lines (argc=2, argv=0x7fffeb58) at
../../gcc/gcov.c:1934
1934  fputs (retval, gcov_file);
(gdb) print retval
$1 = 0xe940 Address 0xe940 out of bounds


It appears that the autoconf macro that sets HAVE_DECL_FGETS_UNLOCKED
( gcc/acinclude.m4's  gcc_AC_CHECK_DECL ) sets 
  '#define _GNU_SOURCE 1' ,
so it sees the declaration of fgets_unlocked(), while gcov.c's 
  '#define __USE_GNU'
has no effect ( __USE_GNU is #undef'd by features.h ).

Suggested patch:

$ diff -u gcov.c~ gcov.c
--- gcov.c~ 2009-04-10 16:48:28.0 +0100
+++ gcov.c  2009-09-29 16:53:52.0 +0100
@@ -31,8 +31,8 @@

 /* Need an option to show individual block counts, and show
probabilities of fall through arcs.  */
-#define __USE_XOPEN
-#define __USE_GNU
+#define _XOPEN_SOURCE 1
+#define _GNU_SOURCE   1
 #include sys/types.h
 #include unistd.h
 #include stdio.h


-- 
   Summary: all gcov tests fail because gcov.c's use of '#define
__USE_GNU' has no effect
   Product: gcc
   Version: 4.4.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: gcov-profile
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jason dot vas dot dias at gmail dot com
 GCC build triplet: x86_64-pc-linux-gnu
  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=41506



[Bug gcov-profile/41506] all gcov tests fail because gcov.c's use of '#define __USE_GNU' has no effect

2009-09-29 Thread jason dot vas dot dias at gmail dot com


--- Comment #1 from jason dot vas dot dias at gmail dot com  2009-09-29 
15:59 ---
Created an attachment (id=18666)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18666action=view)
Patch to fix gcov


-- 


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



[Bug gcov-profile/41506] all gcov tests fail because gcov.c's use of '#define __USE_GNU' has no effect

2009-09-29 Thread jakub at gcc dot gnu dot org


--- Comment #2 from jakub at gcc dot gnu dot org  2009-09-29 16:06 ---
It would be helpful to know what you are patching, because neither 4.4 branch
nor trunk gcov.c has anything like that, see e.g.
http://sources.redhat.com/viewcvs/gcc/branches/gcc-4_4-branch/gcc/gcov.c?revision=145122view=markup


-- 


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



[Bug target/41505] GCC choosing poor code sequence for certain stores (x86)

2009-09-29 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2009-09-29 16:07 ---
difficult


-- 


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



[Bug target/41327] [4.4 regression] ICE (segmentation fault) with -O3

2009-09-29 Thread jakub at gcc dot gnu dot org


--- Comment #2 from jakub at gcc dot gnu dot org  2009-09-29 16:09 ---
Can't reproduce with x86_64-linux - s390x-linux cross (-O3 -m31).


-- 


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



[Bug bootstrap/41395] [4.5 regression] Revision 151800 failed bootstrap

2009-09-29 Thread jamborm at gcc dot gnu dot org


--- Comment #37 from jamborm at gcc dot gnu dot org  2009-09-29 16:16 
---
(In reply to comment #34)
 It is tree.o object of stage2 gcc that gets miscompiled when -fipa-sra is 
 added
 to BOOT_CFLAGS. If tree.o is substituted with the one from the build without
 BOOT_CFLAGS, gcc is again able to compile hello.c without crashing.
 

Can you please attach pre-processed source of it so that I can try
running it through a cross-compiler?  

Additionally, -fdump-tree-cddce-slim and -fdump-tree-eipa_sra-details
dumps would also be appreciated.  Thanks.


-- 


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



[Bug fortran/41507] New: Documentation misleading on MAXLOC/MINLOC array type requirement

2009-09-29 Thread domob at gcc dot gnu dot org
The gfortran manual's documentation about MAXLOC/MINLOC is misleading.  It
claims that the 'array' argument may be of CHARACTER type, which is true for
Fortran 2003.

However, the manual claims the intrinsic is Fortran 90/95 without further
notice about CHARACTER type being allowed only since F2003.  Additionally,
MAXLOC/MINLOC is not even implemented for CHARACTER type in gfortran yet.

I think the manual should at very least reflect what's actually implemented,
rather than just copy the description from the standard.  I've not checked, but
the same problem may exist with other intrinsics as well.


-- 
   Summary: Documentation misleading on MAXLOC/MINLOC array type
requirement
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Keywords: documentation
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: domob at gcc dot gnu dot org


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



[Bug c++/41503] function_parameter_expanded_from_pack_p segfaults when passed a PARM_DECL created by IPA-SRA

2009-09-29 Thread jamborm at gcc dot gnu dot org


--- Comment #1 from jamborm at gcc dot gnu dot org  2009-09-29 16:42 ---
The following patch fixes the problem, I will send it to the mailing
list soon:

2009-09-29  Martin Jambor  mjam...@suse.cz

PR c++/41503
* cp/pt.c (function_parameter_expanded_from_pack_p): Return false if
DECL_ARTIFICIAL (param_decl) is true.


Index: mine/gcc/cp/pt.c
===
--- mine.orig/gcc/cp/pt.c
+++ mine/gcc/cp/pt.c
@@ -2669,7 +2669,8 @@ get_function_template_decl (const_tree p
 bool
 function_parameter_expanded_from_pack_p (tree param_decl, tree pack)
 {
-if (! function_parameter_pack_p (pack))
+if (DECL_ARTIFICIAL (param_decl)
+   || !function_parameter_pack_p (pack))
   return false;

 gcc_assert (DECL_NAME (param_decl)  DECL_NAME (pack));


-- 


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



[Bug c++/41503] function_parameter_expanded_from_pack_p segfaults when passed a PARM_DECL created by IPA-SRA

2009-09-29 Thread jamborm at gcc dot gnu dot org


--- Comment #2 from jamborm at gcc dot gnu dot org  2009-09-29 16:52 ---
(In reply to comment #1)
 The following patch fixes the problem, I will send it to the mailing
 list soon:
 

http://gcc.gnu.org/ml/gcc-patches/2009-09/msg02105.html


-- 


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



[Bug target/41505] GCC choosing poor code sequence for certain stores (x86)

2009-09-29 Thread law at redhat dot com


--- Comment #2 from law at redhat dot com  2009-09-29 17:12 ---
I don't understand your comment Richard.  Isn't it just something like this?
(define_peephole2
  [(match_scratch:SI 2 r)
   (set (match_operand:SI 0 memory_operand )
(match_operand:SI 1 const_0_operand ))]
  
  [(set (match_dup 2) (match_dup 1))
   (set (match_dup 0) (match_dup 2))]
  )


-- 


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



[Bug debug/41438] [4.5 Regression] VTA: libgomp build fails due to inconsistent debug info

2009-09-29 Thread jakub at gcc dot gnu dot org


--- Comment #2 from jakub at gcc dot gnu dot org  2009-09-29 17:34 ---
Subject: Bug 41438

Author: jakub
Date: Tue Sep 29 17:33:58 2009
New Revision: 152282

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152282
Log:
PR debug/41438
* dwarf2out.c (const_ok_for_output_1, const_ok_for_output): New
functions.
(mem_loc_descriptor, loc_descriptor, add_const_value_attribute): Bail
out if !const_ok_for_output.

PR debug/41474
* dwarf2out.c (mem_loc_descriptor) case CONCAT, case CONCATN,
case VAR_LOCATION: Remove gcc_unreachable ().

* gcc.dg/debug/dwarf2/const-1.c: Add dg-require-visibility, make x
hidden.
* g++.dg/debug/dwarf2/const-1.C: Likewise.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/dwarf2out.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/debug/dwarf2/const1.C
trunk/gcc/testsuite/gcc.dg/debug/dwarf2/const-1.c


-- 


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



[Bug debug/41438] [4.5 Regression] VTA: libgomp build fails due to inconsistent debug info

2009-09-29 Thread jakub at gcc dot gnu dot org


--- Comment #3 from jakub at gcc dot gnu dot org  2009-09-29 17:39 ---
Fixed.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug debug/41474] [4.5 Regression] 951116-1.c ICEs in mem_loc_descriptor, at dwarf2out.c:11279

2009-09-29 Thread jakub at gcc dot gnu dot org


--- Comment #4 from jakub at gcc dot gnu dot org  2009-09-29 17:40 ---
Fixed.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug testsuite/41496] [4.5 regression] Many regressions on trunk

2009-09-29 Thread hjl dot tools at gmail dot com


--- Comment #1 from hjl dot tools at gmail dot com  2009-09-29 17:36 ---
Hi Janis, I think one of your patches causes this. It removed
-ansi -pedantic-errors -Wno-long-long in the second run for
--target_board 'unix{-m32,}'.


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

 CC||janis187 at us dot ibm dot
   ||com
  Component|middle-end  |testsuite


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



[Bug testsuite/41496] [4.5 regression] Many regressions on trunk

2009-09-29 Thread hjl dot tools at gmail dot com


--- Comment #2 from hjl dot tools at gmail dot com  2009-09-29 18:02 ---
A patch is posted at

http://gcc.gnu.org/ml/gcc-patches/2009-09/msg02117.html


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2009-
   ||09/msg02117.html


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



[Bug libstdc++/41495] libstdc++ --enable-clocale=ieee_1003.1-2001 fails

2009-09-29 Thread ro at gcc dot gnu dot org


--- Comment #1 from ro at gcc dot gnu dot org  2009-09-29 18:09 ---
Testing the trivial fix on Solaris 10/x86 to see how far this gets me.


-- 

ro at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||ro at gcc dot gnu dot org


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



[Bug testsuite/41496] [4.5 regression] Many regressions on trunk

2009-09-29 Thread hjl at gcc dot gnu dot org


--- Comment #3 from hjl at gcc dot gnu dot org  2009-09-29 18:29 ---
Subject: Bug 41496

Author: hjl
Date: Tue Sep 29 18:29:24 2009
New Revision: 152287

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152287
Log:
2009-09-29  H.J. Lu  hongjiu...@intel.com

PR testsuite/41496
* g++.dg/dfp/dfp.exp: Unset DEFAULT_CXXFLAGS if it didn't exist
before.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/dfp/dfp.exp


-- 


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



[Bug bootstrap/41395] [4.5 regression] Revision 151800 failed bootstrap

2009-09-29 Thread ubizjak at gmail dot com


--- Comment #38 from ubizjak at gmail dot com  2009-09-29 18:36 ---
(In reply to comment #37)

 Can you please attach pre-processed source of it so that I can try
 running it through a cross-compiler?  
 
 Additionally, -fdump-tree-cddce-slim and -fdump-tree-eipa_sra-details
 dumps would also be appreciated.  Thanks.

I belive that this failure is due to PR41089 and manifest itself in

FAIL: gcc.c-torture/execute/stdarg-1.c execution,  -O3 -fomit-frame-pointer 
FAIL: gcc.c-torture/execute/stdarg-1.c execution,  -O3 -g 

Jakub has promised to look into stdarg issue, so perhaps we should wait a
bit...


-- 


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



[Bug tree-optimization/41501] FAIL: gcc.dg/tree-prof/bb-reorg.c compilation, -fprofile-use -D_PROFILE_USE - `-fprofile-use' fails with '-02'

2009-09-29 Thread ubizjak at gmail dot com


--- Comment #2 from ubizjak at gmail dot com  2009-09-29 18:47 ---
(In reply to comment #1)
 This was fixed on the trunk, I don't have the changelog entry handy though, 
 but
 it was done by Jakub IIRC.

2009-08-07  Jakub Jelinek  ja...@redhat.com

* dwarf2out.c (output_fde): When doing hot/cold partitioning, use
fde-dw_fde_begin as begin label instead of hot/cold label.
Use LLSDAC label instead of LLSDA for second section lsda.
(dwarf2out_do_cfi_startproc): Add SECOND argument.  Use LLSDAC
label instead of LLSDA if it is true.
(dwarf2out_begin_prologue, dwarf2out_switch_text_section): Adjust
callers.
* except.c (add_call_site, dw2_size_of_call_site_table): Add
SECTION argument.  Use it as index into crtl-eh.call_site_record
array.
(dw2_output_call_site_table): Likewise.  Add CS_FORMAT argument,
use it to determine how to print table entries instead of using
#ifdef HAVE_AS_LEB128.  For SECTION  0 use hot resp. cold
label instead of normal begin label as base.
(sjlj_assign_call_site_values): Adjust add_call_site caller.
(convert_to_eh_region_ranges): When doing hot/cold partitioning,
ensure no EH range spans between sections and that landing pads
are always in the corresponding section.
(sjlj_size_of_call_site_table, sjlj_output_call_site_table): Adjust
for crtl-eh.call_site_record being an array rather than scalar.
(output_one_function_exception_table): New function, copied
from output_function_exception_table.  Adjust
dw2_size_of_call_site_table, dw2_output_call_site_table
callers.  For SECOND section use *C suffixed labels.
(output_function_exception_table): Call
output_one_function_exception_table and, when doing hot/cold
partitioning, also another time for the second section.
* opts.c: Include except.h.
(decode_options): Allow -freorder-blocks-and-partition with
exceptions, unless SJLJ or TARGET_UNWIND_INFO.
* Makefile.in (opts.o): Depend on $(EXCEPT_H).
* function.h (struct rtl_eh): Change call_site_record from
scalar into array of 2 elements.


-- 


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



[Bug c++/41508] New: error: no matching function for call to ...

2009-09-29 Thread mwarshofsk at aol dot com
I am currently porting an app from Sun Solaris where we use the Solaris cc
compiler (version 5.8). Have a 12 year old legacy app that compiles fine in
the current environment :-)

While trying to migrate to RedHat Linux and the GNU g++ compiler (version
4.1.2) I am repeatedly running into error: no matching function for call to
... errors with code that sends and/or receives reference parameters.

Here's an example of the compiler error:

EJPeriod.C:102: error: no matching function for call to
âEJPeriod::EJPeriod(Date, Date, String)â
EJPeriod.h:83: note: candidates are: EJPeriod::EJPeriod(EJPeriod)
EJPeriod.h:76: note: EJPeriod::EJPeriod()
EJPeriod.h:72: note: EJPeriod::EJPeriod(Date, Date, String)

I don't understand why the compiler doesn't recognize the 3rd constructor
referenced by line 72. When I try to overload the constructor to satisfy the
compiler complaint the compiler correctly tells me the two constructors create
an ambiguous situation. Can you advise as to whether this is a compiler bug or
a potentially old coding standard that isn't acceptable with the version of the
GNU compiler we are using?

Also, this only seems to occur with our home grown classes. The compiler has
no issue with basic scalar types and the passing and receiving of reference and
non-reference parameters.

Lastly and admittedly, when I create a simple test.C program to duplicate the
issue the simple example compiles. There must be something else in the 1000s of
lines of code that I am overlooking.

Thanks in advance for any help or direction you can provide.

Regards,
Marc


-- 
   Summary: error: no matching function for call to ...
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mwarshofsk at aol dot com


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



[Bug tree-optimization/14741] missing transformations lead to poorly optimized code

2009-09-29 Thread jv244 at cam dot ac dot uk


--- Comment #16 from jv244 at cam dot ac dot uk  2009-09-29 18:59 ---
since graphite should be able to fix this PR, I tried it without luck:

 gfortran -ffast-math -O3 -march=native -fgraphite -floop-interchange 
 -floop-block test.f90
test.f90: In function ‘MAIN__’:
test.f90:1:0: sorry, unimplemented: loop blocking not implemented
test.f90:1:0: internal compiler error: in apply_poly_transforms, at
graphite-poly.c:253
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.


-- 


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



[Bug c++/41508] error: no matching function for call to ...

2009-09-29 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2009-09-29 19:15 ---
Can you show the line where the call to EJPeriod::EJPeriod is done?  It might
be because String that you are passing is a rvalue which cannot be bound to
String as that would mean it needs to be bound to a lvalue.  rvalues can be
bound to const references (or in C++0x rvalue references too).  


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|major   |normal
 Status|UNCONFIRMED |WAITING


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



[Bug c++/41508] error: no matching function for call to ...

2009-09-29 Thread mwarshofsk at aol dot com


--- Comment #2 from mwarshofsk at aol dot com  2009-09-29 19:24 ---
This is the method where I am receiving the compiler error:

enum err_stat EJPeriod::rollup( ListEmplJob src, ListEJPeriod dst,
Date startDt, Date endDt )
{

// then theres a bunch of code 
// and then the offending line is the one below starting w/EJPeriod

if( srcSize == 1 ) {
EJPeriod ejptmp( startDt, endDt, src(0)-get_job_title_mgmt_ind() );
dst.add( new EJPeriod( ejptmp ) );
return( Success );
   }


The object named src is a home grown template linked list class.


-- 


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



[Bug c++/41508] error: no matching function for call to ...

2009-09-29 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2009-09-29 19:25 ---
What type does get_job_title_mgmt_ind return?


-- 


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



[Bug c++/41508] error: no matching function for call to ...

2009-09-29 Thread mwarshofsk at aol dot com


--- Comment #4 from mwarshofsk at aol dot com  2009-09-29 19:32 ---
Here's the definition for that call ... I think you're on to something

String get_job_title_mgmt_ind() const { return _jobTitleMgmtInd; };

When I change the constructor to non reference paramters it seems to compile
fine. I've got dozens of these to go through. I suspect they're probably all
similar. Is there a better fix than removing the reference parameter? I'm not
really sure why the old code  has it as a reference anyway. The constructor is
not looking to change that value anyway ... its just using it to initialize a
data member.


-- 


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



[Bug c++/41508] error: no matching function for call to ...

2009-09-29 Thread pinskia at gcc dot gnu dot org


--- Comment #5 from pinskia at gcc dot gnu dot org  2009-09-29 19:41 ---
Yes GCC is correct as in C++ rvalues don't bind to references as only lvalues
bind to references.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||INVALID


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



[Bug debug/39708] add a debug_privnames section

2009-09-29 Thread tromey at gcc dot gnu dot org


--- Comment #2 from tromey at gcc dot gnu dot org  2009-09-29 20:03 ---
This is obsoleted by the newer idea in PR 41130.

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


-- 

tromey at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||DUPLICATE


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



[Bug debug/41130] GCC should emit an index of publicly named entities

2009-09-29 Thread tromey at gcc dot gnu dot org


--- Comment #6 from tromey at gcc dot gnu dot org  2009-09-29 20:03 ---
*** Bug 39708 has been marked as a duplicate of this bug. ***


-- 


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



[Bug c++/41508] error: no matching function for call to ...

2009-09-29 Thread jakub at gcc dot gnu dot org


--- Comment #6 from jakub at gcc dot gnu dot org  2009-09-29 20:08 ---
If the ctor isn't going to change it, you could as well change the argument
type to const String  instead.


-- 


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



[Bug c++/41508] error: no matching function for call to ...

2009-09-29 Thread mwarshofsk at aol dot com


--- Comment #7 from mwarshofsk at aol dot com  2009-09-29 20:34 ---
Comment 6 is perfect! That makes total sense. Thanks so much! Actually, I bet
the Solaris compiler is implicitly treating this same code as a const  String
behind the scenes. We'll just explicitly make that promise/fix for this
migration.  Thanks so much for the speedy and excellent responses!!!


-- 


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



[Bug tree-optimization/19778] Unnecessary jumps for comparisons

2009-09-29 Thread ubizjak at gmail dot com


--- Comment #3 from ubizjak at gmail dot com  2009-09-29 20:45 ---
This is not alpha specific, but generic tree issue.

The _.optimized dump:

bb 2:
  if (x_2(D) == 0)
goto bb 4;
  else
goto bb 3;

bb 3:
  D.2022_3 = x_2(D) + -1;
  D.2023_4 = D.2022_3  x_2(D);
  D.2016_9 = D.2023_4 == 0;

bb 4:
  # D.2016_1 = PHI D.2016_9(3), 1(2)
  return D.2016_1;

However, by changing boolean or to integer or:

bb 2:
  D.2017_2 = x_1(D) == 0;
  D.2018_3 = x_1(D) + -1;
  D.2019_4 = D.2018_3  x_1(D);
  D.2020_5 = D.2019_4 == 0;
  D.2021_6 = D.2020_5 | D.2017_2;
  D.2016_7 = (int) D.2021_6;
  return D.2016_7;


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 GCC target triplet|alphaev68-*-linux-gnu   |


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



[Bug tree-optimization/19778] Unnecessary jumps for comparisons

2009-09-29 Thread ubizjak at gmail dot com


--- Comment #4 from ubizjak at gmail dot com  2009-09-29 20:53 ---
In fact, this implements short-cut of boolean OR. Function returns early for x
== 0 and should not execute right part of OR expression in this case. Something
like:

if (x == 0 || (x  (x - 1)) == 0)
  return 1;
else
  return 0;


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||INVALID


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



[Bug bootstrap/41395] [4.5 regression] Revision 151800 failed bootstrap

2009-09-29 Thread rth at gcc dot gnu dot org


--- Comment #39 from rth at gcc dot gnu dot org  2009-09-29 20:54 ---
(In reply to comment #35)
 static tree
 build_function_type_list_1 (bool vaargs, tree return_type, va_list argp)

Passing va_list by value is non-portable.  One fix here is to pass argp
by reference.  Dunno if that fixes this problem though, since the main
problem for Alpha seems to be the stdarg thing.


-- 


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



[Bug tree-optimization/19778] Unnecessary jumps for comparisons

2009-09-29 Thread falk at debian dot org


--- Comment #5 from falk at debian dot org  2009-09-29 21:02 ---
Of course the optimization would be wrong if the second clause had side
effects, but it doesn't and this will frequently be the case. So this is
definitely a valid and in my opinion worthwhile optimization.


-- 


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



[Bug target/41505] GCC choosing poor code sequence for certain stores (x86)

2009-09-29 Thread rth at gcc dot gnu dot org


--- Comment #3 from rth at gcc dot gnu dot org  2009-09-29 21:18 ---
There are already peepholes for this, though the condition appears to be
slightly wrong for -Os.  See i386.md:21121 :

(define_peephole2
  [(match_scratch:SI 1 r)
   (set (match_operand:SI 0 memory_operand )
(const_int 0))]
  optimize_insn_for_speed_p ()
! TARGET_USE_MOV0
TARGET_SPLIT_LONG_MOVES
get_attr_length (insn) = ix86_cur_cost ()-large_insn
peep2_regno_dead_p (0, FLAGS_REG)


-- 


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



[Bug rtl-optimization/22031] Poor code from unrolled simple loop

2009-09-29 Thread ubizjak at gmail dot com


--- Comment #6 from ubizjak at gmail dot com  2009-09-29 21:18 ---
Not alpha specific, happens on current mainline, where on x86_64 we produce the
code as shown in comment #5.

I think that Richi will be interested in the fact that the usage of __restrict
does not change generated code in any way.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu dot
   ||org
 Status|WAITING |NEW
 Ever Confirmed|0   |1
  GCC build triplet|alphaev68-unknown-linux-gnu |
   GCC host triplet|alphaev68-unknown-linux-gnu |
   Last reconfirmed|2009-02-09 08:28:40 |2009-09-29 21:18:52
   date||


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



[Bug libmudflap/28077] [4.3 regression] pass39-frag.c produces mudflap violation on alpha

2009-09-29 Thread ubizjak at gmail dot com


--- Comment #9 from ubizjak at gmail dot com  2009-09-29 21:41 ---
(In reply to comment #6)
 Can someone check if this still fails on latest 4.3 branch?

It doesn't. See [1].

[1] http://gcc.gnu.org/ml/gcc-testresults/2009-09/msg01497.html


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||FIXED


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



[Bug target/41279] [4.5 Regression] 252.eon performance regression

2009-09-29 Thread jakub at gcc dot gnu dot org


--- Comment #6 from jakub at gcc dot gnu dot org  2009-09-29 21:42 ---
I've looked at what code generation changes the jump from r151310 to r151312
(aka VTA merge) and on eon.cc at -O3 -funroll-loops -fpeel-loops on ia64-linux
the difference is that r151310 unroll something that r151312 does not.
The change that caused this is in num_loop_insns:
@@ -176,8 +176,8 @@ num_loop_insns (const struct loop *loop)
 {
   bb = bbs[i];
   ninsns++;
-  for (insn = BB_HEAD (bb); insn != BB_END (bb); insn = NEXT_INSN (insn))
-   if (INSN_P (insn))
+  FOR_BB_INSNS (bb, insn)
+   if (NONDEBUG_INSN_P (insn))
  ninsns++;
 }
   free(bbs);

Note that before we didn't count BB_END (bb) insn (well, it is probably counted
in that ninsns++ before the loop), but now we do.  Similar change to
average_num_loop_insns changed binsns = 1; before the loop to binsns = 0;, so I
think that:
--- cfgloopanal.c.xx2009-09-29 17:19:59.0 +0200
+++ cfgloopanal.c   2009-09-29 23:30:26.0 +0200
@@ -175,12 +175,11 @@ num_loop_insns (const struct loop *loop)
   for (i = 0; i  loop-num_nodes; i++)
 {
   bb = bbs[i];
-  ninsns++;
   FOR_BB_INSNS (bb, insn)
if (NONDEBUG_INSN_P (insn))
  ninsns++;
 }
-  free(bbs);
+  free (bbs);

   return ninsns;
 }
is a correct change.  No idea whether 252.eon's hot loop is in eon.cc or
elsewhere though.


-- 


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



[Bug testsuite/29737] make check fixinclude test FAILURES

2009-09-29 Thread ubizjak at gmail dot com


--- Comment #6 from ubizjak at gmail dot com  2009-09-29 21:52 ---
This is fixed in 4.3+:

All fixinclude tests pass
make[2]: Leaving directory `/space/uros/gcc-build-43/fixincludes'


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

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


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



[Bug bootstrap/29889] jc1 segfaults while bootstrap

2009-09-29 Thread ubizjak at gmail dot com


--- Comment #2 from ubizjak at gmail dot com  2009-09-29 21:55 ---
(In reply to comment #1)

 Also the date here is from before the big gcj-eclipse merge.
 So, maybe things are different now.

Sure, they are fixed [1].

[1]: http://gcc.gnu.org/ml/gcc-testresults/2009-08/msg01386.html


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

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


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



[Bug target/41505] GCC choosing poor code sequence for certain stores (x86)

2009-09-29 Thread law at redhat dot com


--- Comment #4 from law at redhat dot com  2009-09-29 21:55 ---
Subject: Re:  GCC choosing poor code sequence for certain
 stores (x86)

On 09/29/09 15:18, rth at gcc dot gnu dot org wrote:
 --- Comment #3 from rth at gcc dot gnu dot org  2009-09-29 21:18 ---
 There are already peepholes for this, though the condition appears to be
 slightly wrong for -Os.  See i386.md:21121 :

 (define_peephole2
[(match_scratch:SI 1 r)
 (set (match_operand:SI 0 memory_operand )
  (const_int 0))]
optimize_insn_for_speed_p ()
   ! TARGET_USE_MOV0
   TARGET_SPLIT_LONG_MOVES
   get_attr_length (insn)= ix86_cur_cost ()-large_insn
   peep2_regno_dead_p (0, FLAGS_REG)



Ah, yes, the flags register needs to be available.

As for the condition, after reading optimization guides for the various 
x86 chips that

 mov $0, mem

is generally going to be faster than

 xor  temp, temp
 mov temp, mem

So I was thinking we'd want something like this for the condition.

  ((optimize_insn_for_size_p ()
|| (!TARGET_USE_MOV0
 TARGET_SPLIT_LONG_MOVES
 get_attr_length (insn) = ix86_cur_cost()-large_insn))
 peep2_regno_dead_p (0, FLAGS_REG)

Which I think should always give us the xor sequence when optimizing for 
size or when optimizing for the odd x86 implementation where the xor 
sequence is faster.


I can easily bundle that up as a patch if it looks right to you...

Jeff


-- 


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



[Bug c++/29918] FAIL: 23_containers/vector/cons/4.cc

2009-09-29 Thread ubizjak at gmail dot com


--- Comment #1 from ubizjak at gmail dot com  2009-09-29 21:58 ---
(In reply to comment #0)
 libstdc++ test 23_containers/vector/cons/4.cc fails:

No more [1].

[1] http://gcc.gnu.org/ml/gcc-testresults/2009-09/msg00242.html


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

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


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



[Bug target/32866] gcc-4.2.1 ICE in stage2 during make bootstrap

2009-09-29 Thread ubizjak at gmail dot com


--- Comment #1 from ubizjak at gmail dot com  2009-09-29 22:02 ---
Please try with newer gcc, 4.2.x is not supported anymore.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WONTFIX


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



[Bug testsuite/33263] [4.3/4.4/4.5 regression] libjava testsuite failures on alpha-linux

2009-09-29 Thread ubizjak at gmail dot com


--- Comment #10 from ubizjak at gmail dot com  2009-09-29 22:06 ---
Libjava has zero failures with gcc 4.3.5, 4.4.2 and 4.5.0 for me on latest
Gentoo. Please reopen if it still fails for you.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||WORKSFORME


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



[Bug target/38581] Tru64 outputs non-virtual thunks as non-weak symbols

2009-09-29 Thread ubizjak at gmail dot com


--- Comment #3 from ubizjak at gmail dot com  2009-09-29 22:12 ---
4.2.4 is not supported anymore. Please try with newer gcc.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WONTFIX


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



[Bug target/41365] [4.5 Regression] gcc.dg/vect/vect-cond-[123].c abort due to bad code generation at -O1 and above

2009-09-29 Thread sje at gcc dot gnu dot org


--- Comment #3 from sje at gcc dot gnu dot org  2009-09-29 22:21 ---
Subject: Bug 41365

Author: sje
Date: Tue Sep 29 22:21:27 2009
New Revision: 152306

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152306
Log:
2009-09-29  Steve Ellcey  s...@cup.hp.com
Alexander Monakov  amona...@ispras.ru

PR target/41365 
* config/ia64/predicates.md (not_postinc_destination_operand): New.
(not_postinc_memory_operand): New.
(not_postinc_move_operand): New.
* config/ia64/ia64.md (*cmovdi_internal): Disallow autoincrement.
(*cmovsi_internal): Ditto.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/ia64/ia64.md
trunk/gcc/config/ia64/predicates.md


-- 


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



[Bug target/41365] [4.5 Regression] gcc.dg/vect/vect-cond-[123].c abort due to bad code generation at -O1 and above

2009-09-29 Thread sje at cup dot hp dot com


--- Comment #4 from sje at cup dot hp dot com  2009-09-29 22:36 ---
Fixed.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug target/41327] [4.4 regression] ICE (segmentation fault) with -O3

2009-09-29 Thread debian-gcc at lists dot debian dot org


--- Comment #3 from debian-gcc at lists dot debian dot org  2009-09-29 
22:44 ---
confirmed:

https://buildd.debian.org/fetch.cgi?pkg=gcc-snapshotver=20090923-1arch=alphastamp=1253933048file=log
https://buildd.debian.org/fetch.cgi?pkg=gcj-4.4ver=4.4.1-4arch=alphastamp=1252769258file=log

thanks!

although I see regression in the libffi testsuite on trunk

  Matthias


-- 


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



[Bug testsuite/33263] [4.3/4.4/4.5 regression] libjava testsuite failures on alpha-linux

2009-09-29 Thread debian-gcc at lists dot debian dot org


--- Comment #11 from debian-gcc at lists dot debian dot org  2009-09-29 
22:45 ---
confirmed:

https://buildd.debian.org/fetch.cgi?pkg=gcc-snapshotver=20090923-1arch=alphastamp=1253933048file=log
https://buildd.debian.org/fetch.cgi?pkg=gcj-4.4ver=4.4.1-4arch=alphastamp=1252769258file=log

thanks!

although I see regression in the libffi testsuite on trunk

  Matthias


-- 


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



[Bug target/41327] [4.4 regression] ICE (segmentation fault) with -O3

2009-09-29 Thread debian-gcc at lists dot debian dot org


--- Comment #4 from debian-gcc at lists dot debian dot org  2009-09-29 
22:47 ---
sorry, the last comment should have gone to PR33263, I'll need to find the time
to recheck this issue.

  Matthias


-- 


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



[Bug target/41327] [4.4 regression] ICE (segmentation fault) with -O3

2009-09-29 Thread debian-gcc at lists dot debian dot org


--- Comment #5 from debian-gcc at lists dot debian dot org  2009-09-29 
22:48 ---
fixed


-- 

debian-gcc at lists dot debian dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
  Known to work|4.3.4 4.5.0 |4.3.4 4.5.0 4.4.2
 Resolution||FIXED


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



  1   2   >