How to make a array aligned with 16 byte

2009-12-11 Thread Jianzhang Peng
Can I make a array aligned with 16 byte at RTL pass?

Thanks!

-- 
Jianzhang Peng


Re: identifying indirect references in a loop

2009-12-11 Thread Richard Guenther
On Fri, Dec 11, 2009 at 5:16 AM, Aravinda aravindakida...@gmail.com wrote:
 Hi,

 Im trying to identify all indirect references in a loop so that, after
 this analysis, I have a list of tree_nodes of pointer_type that are
 dereferenced in a loop along with their step size, if any.

 E.g.
 while(i++  n)
 {
   *(p+i);
 }

 I want to get the pointer_type_node for 'p' and identify the step size
 as '1', since 'i' has a step size of 1.

 I am able to identify 'INDIRECT_REF' nodes in the loop. But since
 these are generally the expression_temporaries, I will not get the
 tree_node for 'p'. But I believe INDIRECT_REF is an expression who's
 arg0 is an SSA_NAME node  from which I will be able to use the
 SSA_NAME_DEF_STMT to ultimately reach the tree_node for 'p'.

 But I dont know how to get the SSA_NAME node from the given
 INDIRECT_REF. Could someone please point out how to do this.

 Also, I find it very difficult to know how the tree_nodes and types
 are contained one within the other. Is there a general technique by
 which I can know when a tree node will be nested within another and
 how to retrieve them ?

Look into the tree.def file.  Operands can be retrieved with the
TREE_OPERAND macro (see tree.h).  So if you have an
INDIRECT_REF expression tree node you can get the
variable or SSA_NAME that is dereferenced using TREE_OPERAND (e, 0)
if e is the INDIRECT_REF expression tree.  The pointer type
is then simply TREE_TYPE of that operand.

Btw, I think you want to use the existing data dependence analysis
which provides you with a list of data references in a loop.
See tree-data-ref.[ch].

Richard.

 Thanks,
 Aravinda



[RFC] LTO and debug information

2009-12-11 Thread Richard Guenther

The following draft patch disables the debuginfo disabling when using
-flto or -fwhopr and fixes up things so that for C debugging (mostly)
works.

The main question I have is how to proceed further here (with the
goal that simple debugging should be possible in 4.5).  If we
apply this patch then we expose ICEs when -flto is used in
conjunction with -g because the patch doesn't fix all clashes
between free-lang-data and dwarf2out.  Now I was thinking of
instead of ICEing to sorry () if we ICE, have debuginfo enabled
and had run free-lang-data.  Or to keep -g non-operational for
LTO and add a -glto or -fi-really-want-to-debug option.

Or of course hope I can reasonably fix the ICEs I run into and
deal with the remaining cases as bugs?

The patch has proven useful debugging miscompiles in its current
state already.

Thanks,
Richard.

2009-12-11  Richard Guenther  rguent...@suse.de

* tree.c (free_lang_data_in_binfo): Do not free BINFO_OFFSET
and BINFO_VPTR_FIELD.
(free_lang_data_in_decl): Do not free DECL_SIZE_UNIT,
DECL_SIZE, DECL_FIELD_OFFSET and DECL_FCONTEXT.
(free_lang_data): Do not disable debuginfo.
* lto-streamer-out.c (write_symbol_vec): Deal with
non-constant DECL_SIZE.
* dwarf2out.c (add_pure_or_virtual_attribute): Check for
DECL_CONTEXT.
(gen_type_die_for_member): Test for TYPE_STUB_DECL.
* opts.c (decode_options): Do not disable var-tracking for lto.

lto/
* lto.c (lto_fixup_field_decl): Fixup DECL_FIELD_OFFSET.
(lto_post_options): Do not disable debuginfo.

Index: gcc/tree.c
===
*** gcc/tree.c  (revision 155164)
--- gcc/tree.c  (working copy)
*** free_lang_data_in_binfo (tree binfo)
*** 4152,4164 
  
gcc_assert (TREE_CODE (binfo) == TREE_BINFO);
  
-   BINFO_OFFSET (binfo) = NULL_TREE;
BINFO_VTABLE (binfo) = NULL_TREE;
-   BINFO_VPTR_FIELD (binfo) = NULL_TREE;
BINFO_BASE_ACCESSES (binfo) = NULL;
BINFO_INHERITANCE_CHAIN (binfo) = NULL_TREE;
BINFO_SUBVTT_INDEX (binfo) = NULL_TREE;
-   BINFO_VPTR_FIELD (binfo) = NULL_TREE;
  
for (i = 0; VEC_iterate (tree, BINFO_BASE_BINFOS (binfo), i, t); i++)
  free_lang_data_in_binfo (t);
--- 4152,4161 
*** free_lang_data_in_decl (tree decl)
*** 4376,4404 
 }
 }
  
!   if (TREE_CODE (decl) == PARM_DECL
!   || TREE_CODE (decl) == FIELD_DECL
!   || TREE_CODE (decl) == RESULT_DECL)
! {
!   tree unit_size = DECL_SIZE_UNIT (decl);
!   tree size = DECL_SIZE (decl);
!   if ((unit_size  TREE_CODE (unit_size) != INTEGER_CST)
! || (size  TREE_CODE (size) != INTEGER_CST))
!   {
! DECL_SIZE_UNIT (decl) = NULL_TREE;
! DECL_SIZE (decl) = NULL_TREE;
!   }
! 
!   if (TREE_CODE (decl) == FIELD_DECL
!  DECL_FIELD_OFFSET (decl)
!  TREE_CODE (DECL_FIELD_OFFSET (decl)) != INTEGER_CST)
!   DECL_FIELD_OFFSET (decl) = NULL_TREE;
! 
!   /* DECL_FCONTEXT is only used for debug info generation.  */
!   if (TREE_CODE (decl) == FIELD_DECL)
!   DECL_FCONTEXT (decl) = NULL_TREE;
! }
!   else if (TREE_CODE (decl) == FUNCTION_DECL)
  {
if (gimple_has_body_p (decl))
{
--- 4373,4379 
 }
 }
  
!  if (TREE_CODE (decl) == FUNCTION_DECL)
  {
if (gimple_has_body_p (decl))
{
*** free_lang_data (void)
*** 4973,4985 
diagnostic_finalizer (global_dc) = default_diagnostic_finalizer;
diagnostic_format_decoder (global_dc) = default_tree_printer;
  
-   /* FIXME. We remove sufficient language data that the debug
-  info writer gets completely confused.  Disable debug information
-  for now.  */
-   debug_info_level = DINFO_LEVEL_NONE;
-   write_symbols = NO_DEBUG;
-   debug_hooks = do_nothing_debug_hooks;
- 
return 0;
  }
  
--- 4948,4953 
Index: gcc/lto-streamer-out.c
===
*** gcc/lto-streamer-out.c  (revision 155164)
--- gcc/lto-streamer-out.c  (working copy)
*** write_symbol_vec (struct lto_streamer_ca
*** 2350,2356 
  break;
}
  
!   if (kind == GCCPK_COMMON  DECL_SIZE (t))
size = (((uint64_t) TREE_INT_CST_HIGH (DECL_SIZE (t)))  32)
  | TREE_INT_CST_LOW (DECL_SIZE (t));
else
--- 2349,2357 
  break;
}
  
!   if (kind == GCCPK_COMMON
!  DECL_SIZE (t)
!  TREE_CODE (DECL_SIZE (t)) == INTEGER_CST)
size = (((uint64_t) TREE_INT_CST_HIGH (DECL_SIZE (t)))  32)
  | TREE_INT_CST_LOW (DECL_SIZE (t));
else
Index: gcc/dwarf2out.c
===
*** gcc/dwarf2out.c (revision 155164)
--- gcc/dwarf2out.c (working copy)
*** add_pure_or_virtual_attribute (dw_die_re
*** 16476,16482 
   

Re: generate RTL sequence

2009-12-11 Thread Ian Lance Taylor
Joern Rennecke amyl...@spamcop.net writes:

 If you need more rigid scheduling, you can use CC0.

No, please don't.  I accept that CC0 is necessary today for a few
processors, but I really don't think we should encourage any new uses
of it.

Ian


Bitfields problem

2009-12-11 Thread Jean Christophe Beyler
As I continue my work on the machine description file, I currently
worked on the bitfields again to try to get a good code generation
working. Right now, I've followed what was done in the ia64 for signed
extractions :

(define_insn extv
  [(set (match_operand:DI 0 gr_register_operand =r)
(sign_extract:DI (match_operand:DI 1 gr_register_operand r)
 (match_operand:DI 2 extr_len_operand n)
 (match_operand:DI 3 shift_count_operand M)))]
  
  extr %0 = %1, %3, %2
  [(set_attr itanium_class ishf)])


now this works for me except that I get for this code:

typedef struct sTest {
int64_t a:1;
int64_t b:5;
int64_t c:7;
int64_t d:15;
}STest;

int64_t bar2 (STest a)
{
int64_t res = a.d;
return res;
}

Here is what I get at the final cleanup:

;; Function bar2 (bar2)

bar2 (a)
{
  short unsigned int SR.44;
  short unsigned int SR.43;
  short unsigned int SR.41;
  short unsigned int SR.40;
  short unsigned int SR.22;
  short unsigned int SR.3;

bb 2:
  SR.22 = (short unsigned int) (unnamed-signed:15) ((short unsigned
int) a.d  32767);
  SR.43 = SR.22  32767;
  SR.44 = SR.43 ^ 16384;
  SR.3 = (short unsigned int) (unnamed-signed:15) ((short unsigned
int) (unnamed-signed:15) (SR.44 + 49152)  32767);
  SR.40 = SR.3  32767;
  SR.41 = SR.40 ^ 16384;
  return (int64_t) (unnamed-signed:15) (SR.41 + 49152);

}

I don't understand why I get all these instructions. I know that
because it's signed, it is more complicated but I would prefer to get
an unsigned extract and the a shift left/shift right. Thus 3
instructions.

Right now, I get so many more instructions that represent what I
showed from the final cleanup.

Any reason for all these instructions or ideas on how to get to my 3
instructions ?

Thank you for your help and time,
Jean Christophe Beyler


Dwarf announcements mailing list

2009-12-11 Thread Michael Eager

The public comment draft of the DWARF Version 4 Standard
should be available some time next month.  It will be
on the DWARF website: http://dwarfstd.org.

If you want to receive a notification when this is available,
please sign up on the DWARF announcements mailing list:

http://lists.dwarfstd.org/listinfo.cgi/dwarf-announce-dwarfstd.org

--
Michael Eagerea...@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077




Vectorizing 16bit signed integers

2009-12-11 Thread Allan Sandfeld Jensen
Hi

I hope someone can help me. I've been trying to write some tight integer loops 
in way that could be auto-vectorized, saving me to write assembler or using 
specific vectorization extensions. Unfortunately I've not yet managed to make 
gcc vectorize any of them. 

I've simplified the case to just perform the very first operation in the loop; 
converting from two's complement to sign-and-magnitude.

I've then used -ftree-vectorizer-verbose to examine if and if not, why not the 
loops were not vectorized, but I am afraid I don't understand the output.

The simplest version of the loop is here (it appears the branch is not a 
problem, but I have another version without).

inline uint16_t transsign(int16_t v) {
if (v0) {
return 0x8000U | (1-v);
} else {
return v;
}
}

It very simply converts in a fashion that maintains the full effective bit-
width.

The error from the vectorizer is:
vectorizesign.cpp:42: note: not vectorized: relevant stmt not supported: 
v.1_16 = (uint16_t) D.2157_11;

It appears the unsupported operation in vectorization is the typecast from 
int16_t to uint16_t, can this really be the case, or is the output misleading?

If it is the case, then is there good reason for it, or can I fix it myself by 
adding additional vectorizable operations?

I've attached both test case and full output of ftree-vectorized-verbose=9

Best regards
`Allan

#include stdint.h

inline uint16_t transsign1(int16_t v) {
// written with no control-flow to facilitate auto-vectorization
uint16_t sv = v  15; // signed left-shift gives a classic sign selector -1 or 0
sv = sv  0x7FFFU; // never invert the sign-bit
return v ^ sv; // conditional invertion by xor
}

inline uint16_t transsign2(int16_t v) {
if (v0) {
return 0x8000U | ~v;
} else {
return v;
}
}

inline uint16_t transsign3(int16_t v) {
if (v0) {
return 0x8000U | (1-v);
} else {
return v;
}
}

// candidate for vectorizaton
void convertts1(uint16_t* out, int16_t* in, uint32_t len) {
for(unsigned int i=0;ilen;++i) {
out[i] = transsign1(in[i]);
}
}

// candidate for vectorizaton
void convertts2(uint16_t* out, int16_t* in, uint32_t len) {
for(unsigned int i=0;ilen;++i) {
out[i] = transsign2(in[i]);
}
}

// candidate for vectorizaton
void convertts3(uint16_t* out, int16_t* in, uint32_t len) {
for(unsigned int i=0;ilen;++i) {
out[i] = transsign3(in[i]);
}
}

gcc: 2: No such file or directory

vectorizesign.cpp:28: note: = analyze_loop_nest =
vectorizesign.cpp:28: note: === vect_analyze_loop_form ===
vectorizesign.cpp:28: note: split exit edge.
vectorizesign.cpp:28: note: === get_loop_niters ===
vectorizesign.cpp:28: note: == get_loop_niters:len_3(D)
vectorizesign.cpp:28: note: Symbolic number of iterations is len_3(D)
vectorizesign.cpp:28: note: === vect_analyze_data_refs ===

vectorizesign.cpp:28: note: get vectype with 8 units of type short int
vectorizesign.cpp:28: note: vectype: vector short int
vectorizesign.cpp:28: note: get vectype with 8 units of type short unsigned int
vectorizesign.cpp:28: note: vectype: vector short unsigned int
vectorizesign.cpp:28: note: === vect_analyze_scalar_cycles ===
vectorizesign.cpp:28: note: Analyze phi: i_16 = PHI i_14(5), 0(3)

vectorizesign.cpp:28: note: Access function of PHI: {0, +, 1}_1
vectorizesign.cpp:28: note: step: 1,  init: 0
vectorizesign.cpp:28: note: Detected induction.
vectorizesign.cpp:28: note: Analyze phi: SMT.12_27 = PHI SMT.12_26(5), 
SMT.12_25(D)(3)

vectorizesign.cpp:28: note: === vect_pattern_recog ===
vectorizesign.cpp:28: note: vect_is_simple_use: operand i_16
vectorizesign.cpp:28: note: def_stmt: i_16 = PHI i_14(5), 0(3)

vectorizesign.cpp:28: note: type of def: 4.
vectorizesign.cpp:28: note: === vect_mark_stmts_to_be_vectorized ===
vectorizesign.cpp:28: note: init: phi relevant? i_16 = PHI i_14(5), 0(3)

vectorizesign.cpp:28: note: init: phi relevant? SMT.12_27 = PHI SMT.12_26(5), 
SMT.12_25(D)(3)

vectorizesign.cpp:28: note: init: stmt relevant? D.2120_5 = i_16 * 2;

vectorizesign.cpp:28: note: init: stmt relevant? D.2121_7 = out_6(D) + D.2120_5;

vectorizesign.cpp:28: note: init: stmt relevant? D.2122_10 = in_9(D) + D.2120_5;

vectorizesign.cpp:28: note: init: stmt relevant? D.2123_11 = *D.2122_10;

vectorizesign.cpp:28: note: init: stmt relevant? D.2124_12 = (int) D.2123_11;

vectorizesign.cpp:28: note: init: stmt relevant? D.2170_17 = D.2124_12  15;

vectorizesign.cpp:28: note: init: stmt relevant? sv_18 = (uint16_t) D.2170_17;

vectorizesign.cpp:28: note: init: stmt relevant? sv_19 = sv_18  32767;

vectorizesign.cpp:28: note: init: stmt relevant? sv.0_20 = (short int) sv_19;

vectorizesign.cpp:28: note: init: stmt relevant? D.2167_21 = sv.0_20 ^ 
D.2123_11;

vectorizesign.cpp:28: note: init: stmt relevant? D.2166_22 = (uint16_t) 
D.2167_21;

vectorizesign.cpp:28: note: init: stmt relevant? *D.2121_7 = D.2166_22;

vectorizesign.cpp:28: note: 

Re: Bitfields problem

2009-12-11 Thread Jean Christophe Beyler
Interestingly enough, if I do this instead:

typedef struct sTest {
int a:12;
int b:20;
int c:7;
int d:15;
}STest;


int64_t bar2 (STest *a)
{
int64_t res = a-b;
return res;
}

I get at the expand pass :

(insn 6 5 7 3 struct3.c:27 (set (reg:SI 75)
(mem/s:SI (reg/v/f:DI 73 [ a ]) [0 S4 A32])) -1 (nil)) -
Actually get the data

(insn 7 6 8 3 struct3.c:27 (set (reg:DI 77)
(zero_extract:DI (subreg:DI (reg:SI 75) 0)
(const_int 20 [0x14])
(const_int 12 [0xc]))) -1 (nil))   - Extract the
bits we want but this is zero_extracted

(insn 8 7 9 3 struct3.c:27 (set (reg:DI 78)
(ashift:DI (reg:DI 77)
(const_int 43 [0x2b]))) -1 (nil))

(insn 9 8 10 3 struct3.c:27 (set (subreg:DI (reg:SI 76) 0)
(ashiftrt:DI (reg:DI 78)
(const_int 43 [0x2b]))) -1 (nil))   - These two
instructions actually sign extend it

(insn 10 9 11 3 struct3.c:27 (set (reg:DI 79)
(ashift:DI (reg:SI 76)
(const_int 32 [0x20]))) -1 (nil))

(insn 11 10 12 3 struct3.c:27 (set (reg:DI 74)
(ashiftrt:DI (reg:DI 79)
(const_int 32 [0x20]))) -1 (expr_list:REG_EQUAL
(sign_extend:DI (reg:SI 76))
(nil)))   - Because it's seen as a SI, these last two sign
extend it again...


And I get later on in the passes (the instructions are removed by the
combine pass):

(insn 6 3 7 2 struct3.c:27 (set (reg:SI 75)
(mem/s:SI (reg:DI 8 r8 [ a ]) [0 S4 A32])) 74
{movsi_internal2} (expr_list:REG_DEAD (reg:DI 8 r8 [ a ])
(nil)))

(note 7 6 8 2 NOTE_INSN_DELETED)

(note 8 7 9 2 NOTE_INSN_DELETED)

(note 9 8 10 2 NOTE_INSN_DELETED)

(note 10 9 11 2 NOTE_INSN_DELETED)

(note 11 10 16 2 NOTE_INSN_DELETED)

(insn 16 11 22 2 struct3.c:30 (set (reg/i:DI 6 r6)
(zero_extract:DI (subreg:DI (reg:SI 75) 0)
(const_int 20 [0x14])
(const_int 12 [0xc]))) 63 {extzvdi} (expr_list:REG_DEAD (reg:SI 75)
(nil)))

So now I have two issues that I can't seem to figure out :

- Why can combine remove these 4 instructions ?

- Why do I have such a difference between a local variable that is not
a pointer, a pointer and a global variable ?

I remember having a different behavior if the variable was a global
variable or if it was a parameter. It seems that this is the case also
for here. However, this is worse, since it transforms my signed
extract into a simple zero_extract.

Thanks for your help,
Jc

PS: here is the combine pass debug information:

;; Function bar2 (bar2)

starting the processing of deferred insns
ending the processing of deferred insns
df_analyze called
insn_cost 2: 4
insn_cost 6: 4
insn_cost 7: 36
insn_cost 8: 4
insn_cost 9: 4
insn_cost 10: 4
insn_cost 11: 4
insn_cost 16: 4
insn_cost 22: 0
deferring deletion of insn with uid = 2.
modifying insn i3 6 r75:SI=[r8:DI]
  REG_DEAD: r8:DI
deferring rescan insn with uid = 6.
deferring deletion of insn with uid = 8.
modifying insn i3 9 r76:SI#0=r77:DI
  REG_DEAD: r77:DI
deferring rescan insn with uid = 9.
deferring deletion of insn with uid = 7.
modifying insn i3 9 r76:SI#0=zero_extract(r75:SI#0,0x14,0xc)
  REG_DEAD: r75:SI
deferring rescan insn with uid = 9.
deferring deletion of insn with uid = 10.
modifying insn i311 r74:DI=r76:SI#00xf
  REG_DEAD: r76:SI
deferring rescan insn with uid = 11.
deferring deletion of insn with uid = 9.
modifying insn i311 r74:DI=zero_extract(r75:SI#0,0x14,0xc)
  REG_DEAD: r75:SI
deferring rescan insn with uid = 11.
deferring deletion of insn with uid = 11.
modifying insn i316 r6:DI=zero_extract(r75:SI#0,0x14,0xc)
  REG_DEAD: r75:SI
deferring rescan insn with uid = 16.
(note 1 0 4 NOTE_INSN_DELETED)

(note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK)

(note 2 4 3 2 NOTE_INSN_DELETED)

(note 3 2 6 2 NOTE_INSN_FUNCTION_BEG)

(insn 6 3 7 2 struct3.c:27 (set (reg:SI 75)
(mem/s:SI (reg:DI 8 r8 [ a ]) [0 S4 A32])) 74
{movsi_internal2} (expr_list:REG_DEAD (reg:DI 8 r8 [ a ])
(nil)))

(note 7 6 8 2 NOTE_INSN_DELETED)

(note 8 7 9 2 NOTE_INSN_DELETED)

(note 9 8 10 2 NOTE_INSN_DELETED)

(note 10 9 11 2 NOTE_INSN_DELETED)

(note 11 10 16 2 NOTE_INSN_DELETED)

(insn 16 11 22 2 struct3.c:30 (set (reg/i:DI 6 r6)
(zero_extract:DI (subreg:DI (reg:SI 75) 0)
(const_int 20 [0x14])
(const_int 12 [0xc]))) 63 {extzvdi} (expr_list:REG_DEAD (reg:SI 75)
(nil)))

(insn 22 16 0 2 struct3.c:30 (use (reg/i:DI 6 r6)) -1 (nil))
starting the processing of deferred insns
deleting insn with uid = 2.
deleting insn with uid = 7.
deleting insn with uid = 8.
deleting insn with uid = 9.
deleting insn with uid = 10.
deleting insn with uid = 11.
rescanning insn with uid = 6.
deleting insn with uid = 6.
rescanning insn with uid = 16.
deleting insn with uid = 16.
ending the processing of deferred insns

;; Combiner totals: 16 attempts, 16 substitutions (2 requiring new space),
;; 6 successes.


On Fri, Dec 11, 2009 at 11:57 AM, Jean Christophe 

Re: Bad mailing list index?

2009-12-11 Thread Nicholas Sherlock

On 10/12/2009 7:43 a.m., H.J. Lu wrote:

Hi,

When I visit:

http://gcc.gnu.org/ml/gcc-bugs/
http://gcc.gnu.org/ml/gcc-cvs/

at Wed Dec  9 10:41:43 PST 2009, I didn't see December, 2009.
It was there yesterday. Has anyone else seen it? You may need to
clear browser cache first.


The page sends a Last-Modified time but no Expires header, so some 
aggressive proxies, browsers and other caches could end up caching it 
for a long time. Adding an Expires header set for the 1st of the next 
month would be a good idea.


Cheers,
Nicholas Sherlock



[Bug c++/42350] The attached file causes an internal compiler error

2009-12-11 Thread jwakely dot gcc at gmail dot com


--- Comment #5 from jwakely dot gcc at gmail dot com  2009-12-11 09:30 
---
there's no ICE with 4.1.2 or 4.4.2


-- 


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



[Bug regression/42351] 64 bit arm gcc consumes huge memory

2009-12-11 Thread ramana at gcc dot gnu dot org


--- Comment #1 from ramana at gcc dot gnu dot org  2009-12-11 09:53 ---
Is a dup of PR41399

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


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug target/41399] [4.5 Regression] Internal error compiling fortran/intrinsic.c

2009-12-11 Thread ramana at gcc dot gnu dot org


--- Comment #15 from ramana at gcc dot gnu dot org  2009-12-11 09:53 ---
*** Bug 42351 has been marked as a duplicate of this bug. ***


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||carrot at google dot com


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



[Bug bootstrap/42093] bootstrap hangs in stage2 run of build/gengtype

2009-12-11 Thread ramana at gcc dot gnu dot org


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |ramana at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Priority|P3  |P2
   Last reconfirmed|2009-11-20 16:00:02 |2009-12-11 10:17:51
   date||


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



[Bug target/41939] EABI violation in accessing values below the stack.

2009-12-11 Thread ramana at gcc dot gnu dot org


--- Comment #1 from ramana at gcc dot gnu dot org  2009-12-11 10:31 ---
Subject: Bug 41939

Author: ramana
Date: Fri Dec 11 10:31:13 2009
New Revision: 155154

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=155154
Log:
2009-12-11  Ramana Radhakrishnan  ramana.radhakrish...@arm.com

PR target/41939
Backport from mainline:
2009-06-05  Julian Brown  jul...@codesourcery.com

* config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
* config/arm/ieee754-sf.S (cmpsf2): Likewise.

Modified:
branches/gcc-4_4-branch/gcc/ChangeLog
branches/gcc-4_4-branch/gcc/config/arm/ieee754-df.S
branches/gcc-4_4-branch/gcc/config/arm/ieee754-sf.S


-- 


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



[Bug c++/36587] Feature: add warning for constructor call with discarded return.

2009-12-11 Thread jwakely dot gcc at gmail dot com


--- Comment #5 from jwakely dot gcc at gmail dot com  2009-12-11 10:39 
---
(In reply to comment #4)
  But I'm not convinced that doing this is always a mistake.
 
 Since we don't care about the object, we must care about the constructor side
 effect. I seem to be under the impression that ISO C++ allows the construction
 of temporary objects to be optimized away---even if there are side effects in
 the constructor or destructor! Therefore, it's hard to see a valid use case 
 for
 this.

Certain temporaries (such as those created during copying or reference binding)
can be optimised away, I don't think it's true of temporaries created
explicitly like this.  e.g. I think this should work:

std::ofstream(lockfile);  // creates ./lockfile if it doesn't exist

(assuming write permission in the directory, and ignoring races and other
reasons it might be a bad idea)


-- 


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



[Bug middle-end/42320] link error with -flto (undefined reference to 'non-virtual thunk ...)

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2009-12-11 10:56 ---
Subject: Bug 42320

Author: rguenth
Date: Fri Dec 11 10:56:17 2009
New Revision: 155155

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=155155
Log:
2009-12-11  Richard Guenther  rguent...@suse.de

PR lto/42320
* lto-symtab.c (lto_symtab_resolve_can_prevail_p): Properly
detect non-prevailing decls.

* g++.dg/lto/20091210-1_0.h: New testcase.
* g++.dg/lto/20091210-1_0.C: Likewise.
* g++.dg/lto/20091210-1_1.C: Likewise.

Added:
trunk/gcc/testsuite/g++.dg/lto/20091210-1_0.C
trunk/gcc/testsuite/g++.dg/lto/20091210-1_0.h
trunk/gcc/testsuite/g++.dg/lto/20091210-1_1.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/lto-symtab.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug middle-end/42320] link error with -flto (undefined reference to 'non-virtual thunk ...)

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2009-12-11 10:56 ---
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=42320



[Bug middle-end/42228] [4.5 Regression] verify_cgraph_node failed:node has wrong clone_of

2009-12-11 Thread hubicka at gcc dot gnu dot org


--- Comment #6 from hubicka at gcc dot gnu dot org  2009-12-11 11:17 ---
Fixed.


-- 

hubicka at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug middle-end/42110] [4.5 Regression] ICE with inlining

2009-12-11 Thread hubicka at gcc dot gnu dot org


--- Comment #13 from hubicka at gcc dot gnu dot org  2009-12-11 11:17 
---
Fixed.


-- 

hubicka at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug rtl-optimization/41574] Distribute floating point expressions causes bad code [4.4 only]

2009-12-11 Thread ramana at gcc dot gnu dot org


--- Comment #11 from ramana at gcc dot gnu dot org  2009-12-11 11:21 ---
Subject: Bug 41574

Author: ramana
Date: Fri Dec 11 11:21:33 2009
New Revision: 155157

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=155157
Log:
Fix PR41574 on 4.4 branch.

2009-12-11  Ramana Radhakrishnan  ramana.radhakrish...@arm.com

2009-10-05  Doug Kwan  dougk...@google.com

PR rtl-optimization/41574
* combine.c (distribute_and_simplify_rtx): Quit if RTX mode is
floating point and we are not doing unsafe math optimizations.


2009-12-11  Ramana Radhakrishnan  ramana.radhakrish...@arm.com

2009-10-08  Doug Kwan  dougk...@google.com

PR rtl-optimization/41574
* gcc.dg/pr41574.c: New test.



Added:
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr41574.c
  - copied unchanged from r152580, trunk/gcc/testsuite/gcc.dg/pr41574.c
Modified:
branches/gcc-4_4-branch/gcc/ChangeLog
branches/gcc-4_4-branch/gcc/combine.c
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug tree-optimization/42250] [4.5 Regression] segfault in ipa-type-escape.c for several cpu2000 tests

2009-12-11 Thread hubicka at gcc dot gnu dot org


--- Comment #5 from hubicka at gcc dot gnu dot org  2009-12-11 11:30 ---
I am testing the attached patch.  We should not re-walk bodies of clones.  I
wonder if this makes struct-reorg useable?

Honza

Index: ipa-type-escape.c
===
--- ipa-type-escape.c   (revision 155138)
+++ ipa-type-escape.c   (working copy)
@@ -1984,7 +1984,7 @@ type_escape_execute (void)
  they may cause a type variable to escape.
   */
   for (node = cgraph_nodes; node; node = node-next)
-if (node-analyzed)
+if (node-analyzed  !node-clone_of)
   analyze_function (node);


-- 


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



[Bug middle-end/42177] [C++0x] ICE in function_and_variable_visibility, at ipa.c:296

2009-12-11 Thread hubicka at gcc dot gnu dot org


--- Comment #2 from hubicka at gcc dot gnu dot org  2009-12-11 11:34 ---
Seems to work in today snapshot. The ICE meant visibility bug produced by
frotnend, so probably it was fixed in meantime.


-- 

hubicka at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WORKSFORME


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



[Bug tree-optimization/41835] ICE with -flto -O3 (BB N can not throw but has an EH edge)

2009-12-11 Thread hubicka at gcc dot gnu dot org


--- Comment #2 from hubicka at gcc dot gnu dot org  2009-12-11 11:37 ---
ipa nothrow is hidden in ipa-pure-const (that should be renamed eventually).
However issue here is that at IPA stage we should not touch function bodies, so
we should not do these updates.  This is why fixup pass exists to resolve these
cases after we get into local compilation.

This however seems like LTO is getting something wrong, we do make throw flags
to disappear at IPA for quite some time.


-- 


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



[Bug lto/41756] LTO: -flto -O1 linking files compiled with -fno-exceptions with ones compiled with exceptions yields error BB 14 can not throw but has an EH edge

2009-12-11 Thread hubicka at gcc dot gnu dot org


--- Comment #7 from hubicka at gcc dot gnu dot org  2009-12-11 11:39 ---
I would vote for LTO frotnend simply sorrying when seeing units with and
without exceptions.

Honza


-- 


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



[Bug target/42074] gcc.dg/torture/builtin-math-7.c fails on darwin

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #12 from rguenth at gcc dot gnu dot org  2009-12-11 11:46 
---
This is now darwin specific, the lto issue is PR41915.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|lto |target
 GCC target triplet||x86_64-apple-darwin10
Summary|gcc.dg/torture/builtin-math-|gcc.dg/torture/builtin-math-
   |7.c fails with -flto or -   |7.c fails on darwin
   |fwhopr  |


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



[Bug lto/41915] FAIL: gcc.dg/torture/builtin-math-7.c -O2 -flto execution test

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2009-12-11 11:49 ---
Confirmed.  Fails everywhere.

The issue is that flag_complex_method is not the same in lto1 compared to cc1
so we lower the complex multiplication differently.

The specific issue is that we fold

  D.2036_6 = __complex__ ( Inf, 0.0) * __complex__ (0.0, 1.0e+0);
  D.2035_7 = D.2036_6 * D.2036_6;

to

  D.2036_6 = COMPLEX_EXPR  Nan,  Inf;
  D.2035_7 = COMPLEX_EXPR  Nan,  Nan;

with -fcx-fortran-rules (flag_complex_method == 1).

So the particular issue is a middle-end one while the general
flag_complex_method issue remains.  In the end we need to move
flag_complex_method into the IL just like flag_wrapv.

I'm going to try fix the testcase at least.


-- 

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-12-11 11:49:25
   date||


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



[Bug target/41196] The use of ARM NEON vshll_n_u8 intrinsic results in compile error on valid code [4.4 only]

2009-12-11 Thread ramana at gcc dot gnu dot org


--- Comment #9 from ramana at gcc dot gnu dot org  2009-12-11 11:54 ---
Subject: Bug 41196

Author: ramana
Date: Fri Dec 11 11:53:46 2009
New Revision: 155158

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=155158
Log:
Fix target/41196

 2009-12-11  Ramana Radhakrishnan  ramana.radhakrish...@arm.com

   PR target/41196
   2009-10-14  Daniel Gutson  dgut...@codesourcery.com

   * config/arm/neon.md (neon_vshll_nmode): Checking Bounds
   fixed.

 2009-12-11  Ramana Radhakrishnan  ramana.radhakrish...@arm.com

   PR target/41196
   2009-10-14  Daniel Gutson  dgut...@codesourcery.com
   * testsuite/gcc.target/arm/neon/vfp-shift-a2t2.c: New test case.

Modified:
branches/gcc-4_4-branch/gcc/ChangeLog
branches/gcc-4_4-branch/gcc/config/arm/neon.md
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug target/41196] The use of ARM NEON vshll_n_u8 intrinsic results in compile error on valid code [4.4 only]

2009-12-11 Thread ramana at gcc dot gnu dot org


--- Comment #10 from ramana at gcc dot gnu dot org  2009-12-11 11:54 ---
Fixed.


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||FIXED


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



[Bug c++/36587] Feature: add warning for constructor call with discarded return.

2009-12-11 Thread kkylheku at gmail dot com


--- Comment #6 from kkylheku at gmail dot com  2009-12-11 11:57 ---
(In reply to comment #5)
 (In reply to comment #4)
   But I'm not convinced that doing this is always a mistake.
  
  Since we don't care about the object, we must care about the constructor 
  side
  effect. I seem to be under the impression that ISO C++ allows the 
  construction
  of temporary objects to be optimized away---even if there are side effects 
  in
  the constructor or destructor! Therefore, it's hard to see a valid use case 
  for
  this.
 Certain temporaries (such as those created during copying or reference 
 binding)
 can be optimised away, I don't think it's true of temporaries created
 explicitly like this.

I've gone over the relevant 14882:2003 sections and have come to the same
conclusion.


-- 


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



[Bug lto/41756] LTO: -flto -O1 linking files compiled with -fno-exceptions with ones compiled with exceptions yields error BB 14 can not throw but has an EH edge

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #8 from rguenth at gcc dot gnu dot org  2009-12-11 12:16 ---
I wonder if we should simply ignore -fno-exceptions/-fexceptions passed to
lto1 and rely on the automated discovery.

The testcase btw works for me on i?86.

The proposed patch would delete handling of OPT_fexceptions from
register_user_option_p and add flag_exceptions = 0 to lto_init_options
in case you can still reproduce the issue.


-- 


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



[Bug c++/42251] [4.5 Regression] failure detecting constant integral expression

2009-12-11 Thread dodji at gcc dot gnu dot org


--- Comment #7 from dodji at gcc dot gnu dot org  2009-12-11 12:25 ---
Subject: Bug 42251

Author: dodji
Date: Fri Dec 11 12:25:19 2009
New Revision: 155159

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=155159
Log:
Fix PR c++/42251

gcc/cp/ChangeLog:
PR c++/42251
* pt.c (convert_template_argument): Avoid missing folding of
SCOPE_REFs.

gcc/testsuite/ChangeLog:
PR c++/42251
* g++.dg/template/const3.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/template/const3.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/42251] [4.5 Regression] failure detecting constant integral expression

2009-12-11 Thread dodji at gcc dot gnu dot org


--- Comment #8 from dodji at gcc dot gnu dot org  2009-12-11 12:27 ---
Fixed in 4.5


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug testsuite/42348] Syntax of dg-skip-if in two obj-c++ tests

2009-12-11 Thread developer at sandoe-acoustics dot co dot uk


--- Comment #2 from developer at sandoe-acoustics dot co dot uk  2009-12-11 
13:35 ---
(In reply to comment #1)
 In general you can answer what we think is best by checking the llvm-gcc
 sources from llvm, and in this case, we are using:
 
 /* { dg-options -fnext-runtime -fno-constant-cfstrings } */

delete -fno-constant-cfstrings

   For template-4.mm:
 
 /* { dg-do run { target powerpc*-*-darwin* } } */

why is this being restricted to darwin (and powerpc at that)?  The testcase
appears to cater for gnu runtime too...

 /* { dg-require-effective-target ilp32 } */

Having said this -- we have a global problem with using ?lp32/64 in ObjC/ObjC++
testcases along with -fgnu-runtime.  This flag causes xgcc/g++ to print a
warning - which means that these target supports tests always fail for
-fgnu-runtime.


-- 


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



[Bug testsuite/42348] Syntax of dg-skip-if in two obj-c++ tests

2009-12-11 Thread developer at sandoe-acoustics dot co dot uk


--- Comment #3 from developer at sandoe-acoustics dot co dot uk  2009-12-11 
14:08 ---
(In reply to comment #2)
 (In reply to comment #1)
For template-4.mm:
  
  /* { dg-do run { target powerpc*-*-darwin* } } */
 
 why is this being restricted to darwin (and powerpc at that)?  The testcase
 appears to cater for gnu runtime too...

well.. it does work for -fgnu-runtime, on i686 darwin9 at least...  so {
target powerpc*-*-darwin* } should probably be deleted.

However, it ONLY works if the compiler is installed -- objc/NXConstStr.h is not
found otherwise (this is a separate problem, of course).


-- 


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



[Bug lto/41658] Execution testsuite fails with -O2 -fwhopr

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2009-12-11 14:25 ---
The issue with strcpy-chk.c is that with WHOPR we end up streaming

const char s1[] = 123;

as DECL_WEAK which causes string_constant () to not look at DECL_INITIAL
and thus the test fails.  Likely the other two are similar.

We do that here:

make_decl_one_only (decl=0xb77d, comdat_group=0xb77c8a64)
at /home/richard/src/trunk/gcc/varasm.c:5765
5762#ifdef MAKE_DECL_ONE_ONLY
5763  MAKE_DECL_ONE_ONLY (decl);
5764#endif

which sets DECL_WEAK on elfos.  Called from

#0  make_decl_one_only (decl=0xb77d, comdat_group=0xb77c8a64)
at /home/richard/src/trunk/gcc/varasm.c:5765
#1  0x083cbd8e in write_global_stream (ob=0x8dd8478, encoder=0x8d9a18c)
at /home/richard/src/trunk/gcc/lto-streamer-out.c:2174

  if (pointer_set_insert (decls_already_emitted, t))
make_decl_one_only (t, DECL_ASSEMBLER_NAME (t));

rather than making the decl one-only we should emit true external references
here (or for this particular case localize the variable if we know its
address is not refered to).  We could maybe also resort to TREE_ASM_WRITTEN
(that's the only thing that fixes this testcase).

This bug isn't particularly bad but the testsuite FAILs are annoying at least.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||dnovillo at gcc dot gnu dot
   ||org
  GCC build triplet|hppa-unknown-linux-gnu  |
   GCC host triplet|hppa-unknown-linux-gnu  |
 GCC target triplet|hppa-unknown-linux-gnu  |
   Keywords||lto, missed-optimization


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



[Bug lto/41657] FAIL: gcc.c-torture/execute/builtins/memmove-2.c compilation, -O2 -fwhopr

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2009-12-11 14:30 ---
Seems to fail everywhere.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

  GCC build triplet|hppa-unknown-linux-gnu  |
   GCC host triplet|hppa-unknown-linux-gnu  |
 GCC target triplet|hppa-unknown-linux-gnu  |
   Keywords||lto


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



[Bug lto/41658] Execution testsuite fails with -O2 -fwhopr

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2009-12-11 14:33 ---
I'm going to test the TREE_ASM_WRITTEN variant.


-- 

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|2009-10-10 17:08:53 |2009-12-11 14:33:43
   date||


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



[Bug c++/42225] [4.5 Regression] GCC 4.5 ICE (segfault) on C++ templated code

2009-12-11 Thread dodji at gcc dot gnu dot org


--- Comment #6 from dodji at gcc dot gnu dot org  2009-12-11 14:36 ---
Subject: Bug 42225

Author: dodji
Date: Fri Dec 11 14:36:05 2009
New Revision: 155160

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=155160
Log:
Fix PR c++/42225

gcc/cp/ChangeLog:
PR c++/42225
* typeck.c (incompatible_dependent_typedefs_p): New function.
(structural_comptypes): Use it.
* cp-tree.h (cp_set_underlying_type): Declare ...
* tree.c (cp_set_underlying_type): ... new function.
* class.c (build_self_reference): Use cp_set_underlying_type
instead of set_underlying_type.
* decl2.c (grokfield): Likewise.
* name-lookup.c (pushdecl_maybe_friend): Likewise.

gcc/testsuite/ChangeLog:
PR c++/42225
* g++.dg/template/typedef24.C: New test.
* g++.dg/template/typedef25.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/template/typedef24.C
trunk/gcc/testsuite/g++.dg/template/typedef25.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/class.c
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl2.c
trunk/gcc/cp/name-lookup.c
trunk/gcc/cp/tree.c
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/42225] [4.5 Regression] GCC 4.5 ICE (segfault) on C++ templated code

2009-12-11 Thread dodji at gcc dot gnu dot org


--- Comment #7 from dodji at gcc dot gnu dot org  2009-12-11 14:37 ---
Fixed in trunk (4.5)


-- 

dodji at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/42335] [OOP] ICE on CLASS IS (bad_identifier)

2009-12-11 Thread janus at gcc dot gnu dot org


--- Comment #4 from janus at gcc dot gnu dot org  2009-12-11 14:40 ---
Subject: Bug 42335

Author: janus
Date: Fri Dec 11 14:40:36 2009
New Revision: 155162

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=155162
Log:
gcc/fortran/
2009-12-11 Janus Weil  ja...@gcc.gnu.org

PR fortran/42335
* symbol.c (select_type_insert_tmp): Add an extra check for
error recovery.


gcc/testsuite/
2009-12-11  Janus Weil  ja...@gcc.gnu.org

PR fortran/42335
* gfortran.dg/select_type_11.f03: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/select_type_11.f03
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/symbol.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/22552] Would like warning when an undeclared function is called

2009-12-11 Thread dfranke at gcc dot gnu dot org


--- Comment #7 from dfranke at gcc dot gnu dot org  2009-12-11 14:42 ---
Daniel, is there anything going to happen with those patches you attached? :)


-- 

dfranke at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||dfranke at gcc dot gnu dot
   ||org


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



[Bug lto/41657] FAIL: gcc.c-torture/execute/builtins/memmove-2.c compilation, -O2 -fwhopr

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2009-12-11 14:35 ---
I will look at this.


-- 

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|2009-10-10 17:09:13 |2009-12-11 14:35:54
   date||


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



[Bug lto/41662] FAIL: g++.dg/lto/20081109 cp_lto_20081109_0.o-cp_lto_20081109_1.o execute -O2 -fwhopr

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2009-12-11 14:46 ---
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=41662



[Bug lto/41662] FAIL: g++.dg/lto/20081109 cp_lto_20081109_0.o-cp_lto_20081109_1.o execute -O2 -fwhopr

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2009-12-11 14:46 ---
Subject: Bug 41662

Author: rguenth
Date: Fri Dec 11 14:46:09 2009
New Revision: 155163

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=155163
Log:
2009-12-11  Richard Guenther  rguent...@suse.de

PR lto/41662
* lto-streamer-in.c (lto_init_eh): Move eh_initialized_p
handling here.
(input_eh_regions): Adjust.
(lto_input_ts_function_decl_tree_pointers): Initialize EH
if a non-NULL DECL_FUNCTION_PERSONALITY was read in.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/lto-streamer-in.c


-- 


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



[Bug lto/41915] FAIL: gcc.dg/torture/builtin-math-7.c -O2 -flto execution test

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2009-12-11 14:49 ---
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=41915



[Bug lto/41915] FAIL: gcc.dg/torture/builtin-math-7.c -O2 -flto execution test

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2009-12-11 14:49 ---
Subject: Bug 41915

Author: rguenth
Date: Fri Dec 11 14:49:35 2009
New Revision: 155164

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=155164
Log:
2009-12-11  Richard Guenther  rguent...@suse.de

PR lto/41915
* lto-lang.c (lto_init_options): Initialize flag_complex_method
to the C99 default.  Do not set flag_unit_at_a_time.

Modified:
trunk/gcc/lto/ChangeLog
trunk/gcc/lto/lto-lang.c


-- 


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



[Bug fortran/22552] Would like warning when an undeclared function is called

2009-12-11 Thread domob at gcc dot gnu dot org


--- Comment #8 from domob at gcc dot gnu dot org  2009-12-11 14:58 ---
Well, on 10th of August I posted this to the mailing list to get comments about
what to do with this PR and some other.  I did so far never get any replies :) 
So actually I'd like to work things out here and either fix or close the PR. 
But I've no real plan at the moment because I'd like to get other's opinions.

The patch itself seems fine to me, the point is whether we want that warning or
not.


-- 


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



[Bug fortran/42335] [OOP] ICE on CLASS IS (bad_identifier)

2009-12-11 Thread janus at gcc dot gnu dot org


--- Comment #5 from janus at gcc dot gnu dot org  2009-12-11 15:02 ---
Fixed with r155162. Thanks for the report.


-- 

janus at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug target/36047] -pg does not work on large binaries and m68k

2009-12-11 Thread mkuvyrkov at gcc dot gnu dot org


--- Comment #6 from mkuvyrkov at gcc dot gnu dot org  2009-12-11 15:32 
---
Subject: Bug 36047

Author: mkuvyrkov
Date: Fri Dec 11 15:32:08 2009
New Revision: 155165

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=155165
Log:
2009-12-11  Sebastian Andrzej Siewior  bige...@linutronix.de

PR target/36047

* config/m68k/linux.h: Remove LABELNO from the mcount statement. It is
not used by glibc/uclibc and does not work with large binaries.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/m68k/linux.h


-- 


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



[Bug target/36047] -pg does not work on large binaries and m68k

2009-12-11 Thread mkuvyrkov at gcc dot gnu dot org


--- Comment #7 from mkuvyrkov at gcc dot gnu dot org  2009-12-11 15:35 
---
This is now fixed with the above patch by Sebastian.


-- 

mkuvyrkov at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug lto/42020] field not merged causes cc1 to be miscompiled

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2009-12-11 15:44 ---
Nothing new.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||WORKSFORME


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



[Bug lto/42037] grow domain error in lto1

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2009-12-11 15:53 ---
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=42037



[Bug lto/42037] grow domain error in lto1

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2009-12-11 15:53 ---
Subject: Bug 42037

Author: rguenth
Date: Fri Dec 11 15:52:57 2009
New Revision: 155166

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=155166
Log:
2009-12-11  Richard Guenther  rguent...@suse.de

PR lto/42037
* lto.c (lto_resolution_read): Properly grow the vector.

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


-- 


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



[Bug fortran/42257] [OOP] Compiler segmentation fault due missing public statement

2009-12-11 Thread janus at gcc dot gnu dot org


--- Comment #2 from janus at gcc dot gnu dot org  2009-12-11 15:54 ---
Here is a patch which fixes the ICE:

Index: gcc/fortran/module.c
===
--- gcc/fortran/module.c(revision 155160)
+++ gcc/fortran/module.c(working copy)
@@ -4670,6 +4670,10 @@ write_equiv (void)
 static void
 write_dt_extensions (gfc_symtree *st)
 {
+  if (!gfc_check_access (st-n.sym-attr.access,
+st-n.sym-ns-default_access))
+return;
+
   mio_lparen ();
   mio_pool_string (st-n.sym-name);
   if (st-n.sym-module != NULL)


-- 

janus at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |janus at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2009-12-03 07:32:13 |2009-12-11 15:54:55
   date||


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



[Bug lto/41670] FAIL: gcc.c-torture/execute/builtins/memcpy-chk.c compilation, -O2 -fwhopr

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2009-12-11 15:55 ---
I believe this should get fixed with the fix for PR41657 I am going to check
in soon.  Please update this PR accordingly.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

  BugsThisDependsOn||41657
 Status|UNCONFIRMED |WAITING


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



[Bug fortran/41781] [OOP] bogus undefined label error with SELECT TYPE.

2009-12-11 Thread janus at gcc dot gnu dot org


--- Comment #10 from janus at gcc dot gnu dot org  2009-12-11 16:09 ---
I think this one can be closed.


-- 

janus at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug lto/36468] [LTO] ICE in force_decl_die, at dwarf2out.c:13976

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2009-12-11 16:21 ---
I can't reproduce this, thus 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=36468



[Bug c++/42219] [4.5 Regression] ICE with const void as parameter type

2009-12-11 Thread jason at gcc dot gnu dot org


--- Comment #3 from jason at gcc dot gnu dot org  2009-12-11 16:31 ---
The problem is that we create a FUNCTION_TYPE with error_mark_node parameter
type for error recovery, and then ptr_reasonably_similar tries to consider
conversions that are almost right in order to give better error messages (and
allow some with -fpermissive), and it thinks any function types are close
enough without noticing that we're dealing with an erroneous one.


-- 

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|2009-11-30 03:39:26 |2009-12-11 16:31:31
   date||


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



[Bug lto/40409] [LTO] ICE in expand_shift, at expmed.c:2263, -O0 vs -Ox misses tree lowering phases

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #12 from rguenth at gcc dot gnu dot org  2009-12-11 16:40 
---
I can confirm the ICE from comment #8 still is present on i?86-linux.

#1  0x0820c740 in expand_mult (mode=XCmode, op0=0x0, op1=0xb77d3ba0, 
target=0xb77d3b7c, unsignedp=0)
at /home/richard/src/trunk/gcc/expmed.c:3253
3253  gcc_assert (op0);

which is because expand_binop seems to fail.

3246  /* This used to use umul_optab if unsigned, but for non-widening
multiply
3247 there is no difference between signed and unsigned.  */
(gdb) l
3248  op0 = expand_binop (mode,
3249  ! unsignedp
3250   flag_trapv  (GET_MODE_CLASS(mode) ==
MODE_INT)
3251  ? smulv_optab : smul_optab,
3252  op0, op1, target, unsignedp, OPTAB_LIB_WIDEN);
3253  gcc_assert (op0);

expand_binop (mode=XCmode, binoptab=0x8c72de0, op0=0xb77d3b88, op1=0xb77d3ba0, 
target=0xb77d3b7c, unsignedp=0, methods=OPTAB_LIB_WIDEN)
at /home/richard/src/trunk/gcc/optabs.c:1552
(gdb) call debug_rtx (op0)
(mem/s/c:XC (plus:SI (reg/f:SI 54 virtual-stack-vars)
(const_int -32 [0xffe0])) [0 w+0 S24 A32])
(gdb) call debug_rtx (op1)
(mem/s/c:XC (plus:SI (reg/f:SI 54 virtual-stack-vars)
(const_int -64 [0xffc0])) [0 z+0 S24 A32])
(gdb) call debug_rtx (target)
(concat:XC (reg:XF 80 [ D.2040 ])
(reg:XF 81 [ D.2040+12 ]))

the optab expansion fails because there is no optab_libfunc for
smul_optab and XCmode or TCmode.


We arrive here because at -O1 we lower complex operations after writing
LTO IL and at -O0 we do so before.  So if you combine that we never
lower complex operations properly.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |NEW
   Last reconfirmed|2009-09-17 09:44:37 |2009-12-11 16:40:07
   date||
Summary|[LTO] ICE in expand_shift,  |[LTO] ICE in expand_shift,
   |at expmed.c:2263|at expmed.c:2263, -O0 vs -Ox
   ||misses tree lowering phases


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



[Bug lto/39000] internal compiler error: in output_expr_operand, at lto-function-out.c:1200

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2009-12-11 16:42 ---
Works for me with a cross.


-- 

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



[Bug target/42074] gcc.dg/torture/builtin-math-7.c fails on darwin

2009-12-11 Thread ghazi at gcc dot gnu dot org


--- Comment #13 from ghazi at gcc dot gnu dot org  2009-12-11 16:44 ---
The Darwin issue is being tracked in PR42333.  Since the LTO issue is fixed, to
avoid confusion I'll close this one as a dup.


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


-- 

ghazi at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


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



[Bug other/42333] complex division failure on darwin10 with -lm

2009-12-11 Thread ghazi at gcc dot gnu dot org


--- Comment #31 from ghazi at gcc dot gnu dot org  2009-12-11 16:44 ---
*** Bug 42074 has been marked as a duplicate of this bug. ***


-- 

ghazi at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||hjl dot tools at gmail dot
   ||com


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



[Bug lto/40818] internal compiler error: in lto_output_tree_ref, at lto-streamer-out.c:821

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2009-12-11 16:47 ---
Fixed thus.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||FIXED


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



[Bug lto/41376] collect2 (and maybe lto1) do not handle static libraries

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2009-12-11 16:50 ---
It works when you use the linker plugin


-- 

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-12-11 16:50:03
   date||


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



[Bug lto/41554] -flto and -fwhopr should be moved to common.opt

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #7 from rguenth at gcc dot gnu dot org  2009-12-11 16:54 ---
Fixed.  -Wabi and -Wpsabi is a non-LTO specific issue.


-- 

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



[Bug lto/41591] documentation should document interaction of -flto and -fwhole-program

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2009-12-11 16:56 ---
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=41591



[Bug lto/41593] slightly confusing configure message about lto

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2009-12-11 16:56 ---
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=41593



[Bug libstdc++/22634] [DR 539] partial_sum is too constrained

2009-12-11 Thread paolo dot carlini at oracle dot com


--- Comment #19 from paolo dot carlini at oracle dot com  2009-12-11 17:02 
---
This is now [Ready]:

  http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#539

and we are already *almost* doing the right thing, besides a std::move call in
std::adjacent_difference, which I'm going to add...


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |paolo dot carlini at oracle
   |dot org |dot com
 Status|SUSPENDED   |ASSIGNED


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



[Bug c++/42225] [4.5 Regression] GCC 4.5 ICE (segfault) on C++ templated code

2009-12-11 Thread jacob dot benoit dot 1 at gmail dot com


--- Comment #8 from jacob dot benoit dot 1 at gmail dot com  2009-12-11 
17:07 ---
(In reply to comment #7)
 Fixed in trunk (4.5)
 

Thanks for fixing this bug!

Maybe I'm just ignorant, but I can't get the fix to work for me. I have SVN
r155167. I am still getting a ICE, albeit at a slightly different line number
now:

# 12:01:44 ~/build/eigen$ make product_small_1
Building CXX object test/CMakeFiles/product_small_1.dir/product_small.cpp.o
In file included from /home/bjacob/eigen/test/product_small.cpp:26:0:
/home/bjacob/eigen/test/product.h: In function ‘void product(const MatrixType)
[with MatrixType = Eigen::Matrixfloat, 3, 2, 0]’:
/home/bjacob/eigen/test/product_small.cpp:31:5:   instantiated from here
/home/bjacob/eigen/test/product.h:45:60: internal compiler error: tree check:
accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9822
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=42225



[Bug c++/42225] [4.5 Regression] GCC 4.5 ICE (segfault) on C++ templated code

2009-12-11 Thread jacob dot benoit dot 1 at gmail dot com


--- Comment #9 from jacob dot benoit dot 1 at gmail dot com  2009-12-11 
17:10 ---
I also confirm that I still have the ICE with the .ii file attached to this bug
report.


-- 


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



[Bug c++/42225] [4.5 Regression] GCC 4.5 ICE (segfault) on C++ templated code

2009-12-11 Thread hjl dot tools at gmail dot com


--- Comment #10 from hjl dot tools at gmail dot com  2009-12-11 17:24 
---
Confirmed.


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |


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



[Bug bootstrap/42068] [4.5 regression] ICE in function_and_variable_visibility breaks Tru64 UNIX Ada bootstrap

2009-12-11 Thread ro at CeBiTec dot Uni-Bielefeld dot DE


--- Comment #4 from ro at CeBiTec dot Uni-Bielefeld dot DE  2009-12-11 
17:25 ---
Subject: Re:  [4.5 regression] ICE in function_and_variable_visibility breaks
Tru64 UNIX Ada bootstrap

 --- Comment #3 from rguenth at gcc dot gnu dot org  2009-11-27 11:20 
 ---
 Is this still an issue?

Yes, the problem still exists on alpha-dec-osf4.0f as of 20091210.

 Rainer


-- 


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



[Bug target/42263] Wrong code bugs in SMP support

2009-12-11 Thread ramana at gcc dot gnu dot org


--- Comment #2 from ramana at gcc dot gnu dot org  2009-12-11 17:37 ---
Subject: Bug 42263

Author: ramana
Date: Fri Dec 11 17:37:34 2009
New Revision: 155171

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=155171
Log:
2009-12-11  Ramana Radhakrishnan  ramana.radhakrish...@arm.com

PR target/42263
2009-08-11  Andrew Haley  a...@redhat.com
* config/arm/arm.c (arm_init_libfuncs): Add __sync_synchronize.

Modified:
branches/gcc-4_4-branch/gcc/ChangeLog
branches/gcc-4_4-branch/gcc/config/arm/arm.c


-- 


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



[Bug target/42263] Wrong code bugs in SMP support

2009-12-11 Thread ramana at gcc dot gnu dot org


--- Comment #3 from ramana at gcc dot gnu dot org  2009-12-11 17:45 ---
Subject: Bug 42263

Author: ramana
Date: Fri Dec 11 17:45:32 2009
New Revision: 155172

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=155172
Log:
2009-12-11  Ramana Radhakrishnan  ramana.radhakrish...@arm.com

PR target/42263
Backport from mainline

2009-12-03  Richard Earnshaw  rearn...@arm.com

* arm/linux-atomic.c (SYNC_LOCK_RELEASE): Place memory barrier
before the lock release.

Modified:
branches/gcc-4_4-branch/gcc/ChangeLog
branches/gcc-4_4-branch/gcc/config/arm/linux-atomic.c


-- 


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



[Bug target/42263] Wrong code bugs in SMP support

2009-12-11 Thread ramana at gcc dot gnu dot org


--- Comment #4 from ramana at gcc dot gnu dot org  2009-12-11 17:46 ---
Fixed.


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug rtl-optimization/41574] Distribute floating point expressions causes bad code [4.4 only]

2009-12-11 Thread ramana at gcc dot gnu dot org


--- Comment #12 from ramana at gcc dot gnu dot org  2009-12-11 17:46 ---
Fixed .


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug libstdc++/22634] [DR 539] partial_sum is too constrained

2009-12-11 Thread paolo at gcc dot gnu dot org


--- Comment #20 from paolo at gcc dot gnu dot org  2009-12-11 17:55 ---
Subject: Bug 22634

Author: paolo
Date: Fri Dec 11 17:54:37 2009
New Revision: 155173

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=155173
Log:
2009-12-11  Paolo Carlini  paolo.carl...@oracle.com

PR libstdc++/22634, DR 539 [Ready]
* include/bits/stl_numeric.h (adjacent_difference): Use std::move
at the end of the loop body, per the Ready resolution.
* include/std/numeric: Do not include unnecessarily cstddef.
* doc/xml/manual/intro.xml: Add an entry for DR 539.

Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/doc/xml/manual/intro.xml
trunk/libstdc++-v3/include/bits/stl_numeric.h
trunk/libstdc++-v3/include/std/numeric


-- 


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



[Bug bootstrap/41771] Bootstrap with Sun Studio 12.1 fails

2009-12-11 Thread ro at gcc dot gnu dot org


--- Comment #13 from ro at gcc dot gnu dot org  2009-12-11 17:55 ---
Mine, fix in progress.


-- 

ro at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |ro at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2009-11-29 16:34:25 |2009-12-11 17:55:41
   date||


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



[Bug libstdc++/22634] [DR 539] partial_sum is too constrained

2009-12-11 Thread paolo dot carlini at oracle dot com


--- Comment #21 from paolo dot carlini at oracle dot com  2009-12-11 17:56 
---
Done.


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

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


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



[Bug lto/41657] FAIL: gcc.c-torture/execute/builtins/memmove-2.c compilation, -O2 -fwhopr

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2009-12-11 18:00 ---
Subject: Bug 41657

Author: rguenth
Date: Fri Dec 11 18:00:24 2009
New Revision: 155174

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=155174
Log:
2009-12-11  Richard Guenther  rguent...@suse.de

PR lto/41658
PR lto/41657
* lto-streamer-out.c (write_global_stream): Do not make decls
weak but resort to TREE_ASM_WRITTEN to avoid multiple definitions.
Make sure to mark all decls that we have written.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/lto-streamer-out.c


-- 


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



[Bug lto/41658] Execution testsuite fails with -O2 -fwhopr

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2009-12-11 18:00 ---
Subject: Bug 41658

Author: rguenth
Date: Fri Dec 11 18:00:24 2009
New Revision: 155174

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=155174
Log:
2009-12-11  Richard Guenther  rguent...@suse.de

PR lto/41658
PR lto/41657
* lto-streamer-out.c (write_global_stream): Do not make decls
weak but resort to TREE_ASM_WRITTEN to avoid multiple definitions.
Make sure to mark all decls that we have written.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/lto-streamer-out.c


-- 


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



[Bug lto/41658] Execution testsuite fails with -O2 -fwhopr

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2009-12-11 18:00 ---
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=41658



[Bug lto/41657] FAIL: gcc.c-torture/execute/builtins/memmove-2.c compilation, -O2 -fwhopr

2009-12-11 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2009-12-11 18:01 ---
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=41657



[Bug c++/42352] New: -std=c++0x reference binding problem

2009-12-11 Thread rwgk at yahoo dot com
Platform:
  Fedora release 12 (Constantine)
  Linux cage.lbl.gov 2.6.31.5-127.fc12.x86_64 #1 SMP Sat Nov 7 21:11:14 EST
2009 x86_64 x86_64 x86_64 GNU/Linux

URL: svn://gcc.gnu.org/svn/gcc/trunk
Revision: 150327 or higher

gcc version 4.5.0 20090801 (experimental) (GCC)

I'll attach a reproducer.

g++ -c -std=c++0x list_sort_bind.cpp
...
include/c++/4.5.0/bits/list.tcc:392:3: error: cannot bind 'std::listint'
lvalue to 'std::listint'
...

It works without -std=c++0x.
svn rev. 150326 works, 150327 does not.

The critical svn revision was:

% svn log -v -c150327

r150327 | jason | 2009-07-31 19:26:42 -0700 (Fri, 31 Jul 2009) | 16 lines
Changed paths:
   M /trunk/gcc/cp/ChangeLog
   M /trunk/gcc/cp/call.c
   M /trunk/gcc/cp/cp-tree.h
   M /trunk/gcc/cp/typeck.c
   M /trunk/gcc/testsuite/ChangeLog
   M /trunk/gcc/testsuite/g++.dg/cpp0x/initlist22.C
   M /trunk/gcc/testsuite/g++.dg/cpp0x/named.C
   M /trunk/gcc/testsuite/g++.dg/cpp0x/overload.C
   A /trunk/gcc/testsuite/g++.dg/cpp0x/overloadn.C (from
/trunk/gcc/testsuite/g++.dg/cpp0x/overload.C:150326)
   A /trunk/gcc/testsuite/g++.dg/cpp0x/rv-cast.C
   M /trunk/gcc/testsuite/g++.dg/cpp0x/rv1n.C
   M /trunk/gcc/testsuite/g++.dg/cpp0x/rv1p.C
   M /trunk/gcc/testsuite/g++.dg/cpp0x/rv2n.C
   M /trunk/gcc/testsuite/g++.dg/cpp0x/rv2p.C
   M /trunk/gcc/testsuite/g++.dg/cpp0x/rv3n.C
   M /trunk/gcc/testsuite/g++.dg/cpp0x/rv3p.C
   M /trunk/gcc/testsuite/g++.dg/cpp0x/rv4n.C
   M /trunk/gcc/testsuite/g++.dg/cpp0x/rv4p.C
   M /trunk/gcc/testsuite/g++.dg/cpp0x/rv5n.C
   M /trunk/gcc/testsuite/g++.dg/cpp0x/rv5p.C
   M /trunk/gcc/testsuite/g++.dg/cpp0x/rv6n.C
   M /trunk/gcc/testsuite/g++.dg/cpp0x/rv6p.C
   M /trunk/gcc/testsuite/g++.dg/cpp0x/rv7n.C
   M /trunk/gcc/testsuite/g++.dg/cpp0x/rv7p.C
   M /trunk/gcc/testsuite/g++.dg/cpp0x/rv8p.C
   M /trunk/gcc/testsuite/g++.dg/cpp0x/template_deduction.C
   M /trunk/gcc/testsuite/g++.dg/cpp0x/unnamed_refs.C
   M /trunk/libstdc++-v3/ChangeLog
   M /trunk/libstdc++-v3/include/bits/move.h
   M /trunk/libstdc++-v3/include/std/istream
   M /trunk/libstdc++-v3/include/std/ostream
   A /trunk/libstdc++-v3/testsuite/27_io/rvalue_streams.cc

* call.c (convert_class_to_reference): Binding an lvalue to an
rvalue reference is bad.  If the user-defined conversion is bad,
set bad_p before merging conversions.
(maybe_handle_ref_bind): Don't push down bad_p.
(reference_binding): Binding an lvalue to an rvalue reference is bad.
(convert_like_real): Give a helpful error about binding lvalue
to rvalue reference.
(reference_related_p): No longer static.
* typeck.c (build_typed_address): New.
(build_static_cast_1): Add static_cast from lvalue to .
* cp-tree.h: Adjust.

* include/bits/move.h (forward): Implement as in N2835.
(move): Implement as in N2831.
* include/std/istream (rvalue stream operator): New.
* include/std/ostream (rvalue stream operator): New.



-- 
   Summary: -std=c++0x reference binding problem
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rwgk at yahoo 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=42352



[Bug c++/42352] -std=c++0x reference binding problem

2009-12-11 Thread rwgk at yahoo dot com


--- Comment #1 from rwgk at yahoo dot com  2009-12-11 18:05 ---
Created an attachment (id=19277)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19277action=view)
reproducer


-- 


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



[Bug target/41151] Gas fails to consume the assembly Error: offset too big

2009-12-11 Thread ramana at gcc dot gnu dot org


--- Comment #5 from ramana at gcc dot gnu dot org  2009-12-11 18:10 ---
Needed an update to a newer version of binutils. Invalid.


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||INVALID


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



[Bug target/41482] ICE in libgfortran arm thumb multilib compile

2009-12-11 Thread ramana at gcc dot gnu dot org


--- Comment #4 from ramana at gcc dot gnu dot org  2009-12-11 18:11 ---
arm-elf is in maintenance only mode. Marking it as P4 -


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P3  |P4


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



[Bug target/36697] SIGSEGV on program exit with gcc 4.3.1

2009-12-11 Thread ramana at gcc dot gnu dot org


--- Comment #2 from ramana at gcc dot gnu dot org  2009-12-11 18:15 ---
No feedback in more than 6 months .


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||WORKSFORME


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



[Bug target/37386] Interrupt service routine for arm target corrupts program counter

2009-12-11 Thread ramana at gcc dot gnu dot org


--- Comment #4 from ramana at gcc dot gnu dot org  2009-12-11 18:16 ---
Fixed with 4.3.2 apparently.


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.3.2


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




[Bug c++/42352] -std=c++0x reference binding problem

2009-12-11 Thread paolo dot carlini at oracle dot com


--- Comment #2 from paolo dot carlini at oracle dot com  2009-12-11 18:17 
---
The std::, c++0x, version, is in flux. If you want the old behavior, just use
std::tr1::bind for now, and do not expect and C++0x-conforming behavior.
Really, no point in keeping open issues vs ongoing C++0x work.


-- 

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



[Bug libgcj/36658] Building gcj for arm linux from trunk (gcc 4.4.0): libjava/gcj/array.h:24: internal compiler error: verify_gimple failed

2009-12-11 Thread ramana at gcc dot gnu dot org


--- Comment #3 from ramana at gcc dot gnu dot org  2009-12-11 18:19 ---
No feedback in over a year and don't have more information . Hence Suspended.


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |UNCONFIRMED


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



[Bug target/36527] gcc 4.2.x generates wrong code for ARM target

2009-12-11 Thread ramana at gcc dot gnu dot org


--- Comment #10 from ramana at gcc dot gnu dot org  2009-12-11 18:21 ---
No feedback in over 6 months and appears to work fine in later versions of the
tools.


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||WONTFIX
   Target Milestone|--- |4.3.1


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



[Bug c++/42352] -std=c++0x reference binding problem

2009-12-11 Thread paolo dot carlini at oracle dot com


--- Comment #3 from paolo dot carlini at oracle dot com  2009-12-11 18:22 
---
:) Sorry, this issue has nothing to do with std::bind (ansd std::tr1::bind) of
course. This is actually about list::splcie and list::merge, which indeed are
still in flux in the WP, see DR 1133, or:

  http://gcc.gnu.org/ml/libstdc++/2009-12/msg00011.html


-- 


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



[Bug target/35586] seg fault when compiling liboil 0.3.13, file conv_c.c

2009-12-11 Thread ramana at gcc dot gnu dot org


--- Comment #5 from ramana at gcc dot gnu dot org  2009-12-11 18:23 ---
No feedback in over 6 months.


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |UNCONFIRMED


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



[Bug target/35623] RTL check failure in arm_const_double_rtx

2009-12-11 Thread ramana at gcc dot gnu dot org


--- Comment #6 from ramana at gcc dot gnu dot org  2009-12-11 18:27 ---
As it could not be reproduced and a later comment indicates it works for 4.4.0.
Resolved as INVALID.


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||INVALID
   Target Milestone|--- |4.4.0


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



[Bug bootstrap/41771] Bootstrap with Sun Studio 12.1 fails

2009-12-11 Thread ro at CeBiTec dot Uni-Bielefeld dot DE


--- Comment #14 from ro at CeBiTec dot Uni-Bielefeld dot DE  2009-12-11 
18:37 ---
Subject: Re:  Bootstrap with Sun Studio 12.1 fails

Patch here: http://gcc.gnu.org/ml/gcc-patches/2009-12/msg00625.html.


-- 


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



[Bug target/35623] RTL check failure in arm_const_double_rtx

2009-12-11 Thread rmansfield at qnx dot com


--- Comment #7 from rmansfield at qnx dot com  2009-12-11 18:38 ---
The PR valid and it is still reproducible on the 4.3 branch and AFAIK the 4.3
branch is still open. A resolution of WONTFIX makes sense, but INVALID doesnt..


-- 


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



[Bug c++/42352] -std=c++0x reference binding problem

2009-12-11 Thread paolo dot carlini at oracle dot com


--- Comment #4 from paolo dot carlini at oracle dot com  2009-12-11 18:43 
---
Bah, we can use some std::move(s) in the splice and merge calls used by sort,
and solve this. We'll be reverted as unnecessary when DR 1133 will be resolved,
but maybe can make people more happy for the time being...


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|INVALID |


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



[Bug c++/42352] -std=c++0x reference binding problem

2009-12-11 Thread paolo dot carlini at oracle dot com


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |paolo dot carlini at oracle
   |dot org |dot com
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-12-11 18:43:47
   date||


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



[Bug fortran/40290] Spurious warning on REAL*COMPLEX with -Wconversion

2009-12-11 Thread dfranke at gcc dot gnu dot org


--- Comment #2 from dfranke at gcc dot gnu dot org  2009-12-11 18:56 ---
Using -O3 -fno-signed-zeros (the latter being set by -ffast-math) gets rid of
all the additional computations and results in

bb 2:
  D.1504_2 = *a_1(D);
  D.1514_10 = REALPART_EXPR *b_4(D);
  D.1515_11 = IMAGPART_EXPR *b_4(D);
  D.1516_12 = D.1504_2 * D.1514_10;
  D.1517_13 = D.1504_2 * D.1515_11;
  __result_op.0_6 = COMPLEX_EXPR D.1516_12, D.1517_13;
  return __result_op.0_6;


With the patch below, the warning would be disabled. However is this warning a
feature (then keep it), or an artefact of an implementation detail (then remove
it)?

Index: expr.c
===
--- expr.c  (revision 155148)
+++ expr.c  (working copy)
@@ -720,9 +720,9 @@ gfc_type_convert_binary (gfc_expr *e)
   else
 e-ts.kind = op2-ts.kind;
   if (op1-ts.type != BT_COMPLEX || op1-ts.kind != e-ts.kind)
-gfc_convert_type (e-value.op.op1, e-ts, 2);
+gfc_convert_type_warn (e-value.op.op1, e-ts, 2, 0);
   if (op2-ts.type != BT_COMPLEX || op2-ts.kind != e-ts.kind)
-gfc_convert_type (e-value.op.op2, e-ts, 2);
+gfc_convert_type_warn (e-value.op.op2, e-ts, 2, 0);

 done:
   return;


-- 

dfranke at gcc dot gnu dot org changed:

   What|Removed |Added

   Keywords|missed-optimization |
  Known to fail|4.5.0   |
Summary|Bogus conversion of |Spurious warning on
   |REAL*COMPLEX to |REAL*COMPLEX with -
   |COMPLEX*COMPLEX |Wconversion


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



  1   2   >