[Bug c/50521] -fstrict-volatile-bitfields is not strict

2011-10-29 Thread kikairoya at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50521

--- Comment #13 from Tomohiro Kashiwada kikairoya at gmail dot com 2011-10-29 
06:50:11 UTC ---
(In reply to comment #12)
 Regarding the double load. In a statement like a = b, both a  be should be
 individually accessed even if they refer to the same storage. So  
 bitfield.bits.a = bitfield.bits.c should load the bitfield variable twice, 
 once
 for reading the rvalue and once for masking the lvalue assignment.
 
 See 7.1.7.5 second and third paragraph and the note just after.

Is that means a statement
  a = b;
always should be treat as if
  tmp = b;
  a = tmp;
two individual statements?


 Regarding STRICT_ALIGNMENT, not strictly needed on ARM i think. Smaller
 accesses than the base type is acceptable, as long as it's aligned to the
 matching access size (8/16/32/64 bit) and on ARMv7 unaligned access is 
 allowed,
 but at a performance penalty. And this change is technically unrelated to
 strict-volatile-bitfields even if there is overlap.

I think STRICT_ALIGNMENT is not only for ARM, but also MIPS, SH and others.
I'll create new ticket later about STRICT_ALIGNMENT.


[Bug libgcj/35367] Linux x86 build (with --enable-targets=all, so also building with cross-to-x64 multilib configuration) fails in libjava (prims.cc)

2011-10-29 Thread belyshev at depni dot sinp.msu.ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35367

--- Comment #3 from Serge Belyshev belyshev at depni dot sinp.msu.ru 
2011-10-29 06:55:58 UTC ---
Created attachment 25657
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25657
taken from debian's config-ml.diff

Similar bug in libffi (misdetection of target when using --enable-targets=all)
produces lots of failures in libgo and libffi testsuite.

Both issues are fixed with the attached hack, which is present in debian's set
of patches.

With this hack current trunk passess bootstrap with --enable-targets=all
--enable-languages=all,obj-c++,go  and regtest with
RUNTESTFLAGS=--target_board 'unix{,-m64}' just fine on i686.


[Bug middle-end/50907] [4.7 Regression] EDGE_CROSSING incorrectly set across same section with -freorder-blocks-and-partition -fPIC -fprofile-use

2011-10-29 Thread belyshev at depni dot sinp.msu.ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50907

Serge Belyshev belyshev at depni dot sinp.msu.ru changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011-10-29
 CC||rth at gcc dot gnu.org
  Known to work||4.6.0
   Target Milestone|--- |4.7.0
 Ever Confirmed|0   |1
  Known to fail||4.7.0

--- Comment #1 from Serge Belyshev belyshev at depni dot sinp.msu.ru 
2011-10-29 08:12:18 UTC ---
git bisect points at r176696:
http://gcc.gnu.org/viewcvs?view=revisionrevision=176696

2011-07-23  Richard Henderson  r...@redhat.com

* basic-block.h (EDGE_PRESERVE): New.
(EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
* bb-reorder.c: Include except.h.
(fix_up_crossing_landing_pad): New.
...


[Bug c/50521] -fstrict-volatile-bitfields is not strict

2011-10-29 Thread henrik at henriknordstrom dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50521

--- Comment #14 from Henrik Nordström henrik at henriknordstrom dot net 
2011-10-29 10:45:53 UTC ---
(In reply to comment #13)

  See 7.1.7.5 second and third paragraph and the note just after.
 
 Is that means a statement
   a = b;
 always should be treat as if
   tmp = b;
   a = tmp;
 two individual statements?

That's my understanding of the text.

Further, given

struct {
   volatile int bits:32;
} a;
int result;

my understanding is that the note means that

  result = ++a.bits;

should be translated into

  int tmp = a.bits;
  a.bits = tmp + 1;
  result = a.bits;

and a++ into

  result = a.bits;
  tmp = a.bits;
  a.bits = tmp + 1;

suitable expanded for aligned container loads  stores on each access to
a.bits, with each access to the a container int handled as a volatile access.

Also, from in the second sentence of the note the load of the container on
write may not be optimized away even if it's entirely masked by the write
operation. I.e. 

a.bits = x;

translates into

  int tmp = *(int *)(int aligned address of a.bits);
  tmp = ~0x;
  tmp |= x;
  *(int *)(int aligned address of a.bits) = tmp;

which is the same load  store memory access sequence as used when a.bits is
not filling the entire container.

  int tmp = *(int *)(int aligned address of a.bits);
  tmp = ~a_bits_mask;
  tmp |= (x  shift)  ~a_bits_mask;
  *(int *)(int aligned address of a.bits) = tmp;

where it's not allowed to optimize away the initial load if the result of that
load is entirely masked away by the bit-field assignment (32 bit ~0x ==
0). Operations on tmp between the load  store of the a.bits container may be
optimized freely as tmp itself is not a volatile.

 I think STRICT_ALIGNMENT is not only for ARM, but also MIPS, SH and others.
 I'll create new ticket later about STRICT_ALIGNMENT.

agreed

none of this is only about ARM I think. But the ARM AAPCS specification is
suitable to use as reference for the implementation as it's very detailed on
how to operate on volatile bit-fields and also alignment requirements on
bit-field accesses in general. Not sure the others are as detailed, and it's
very likely the rules from the ARM specification can be applied there as well.


[Bug tree-optimization/50644] ICE in set_is_used added today

2011-10-29 Thread andi-gcc at firstfloor dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50644

--- Comment #14 from Andi Kleen andi-gcc at firstfloor dot org 2011-10-29 
11:31:31 UTC ---
Created attachment 25658
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25658
3 files

I managed to reduce a test case to 3 LTO files now

unpack the tar on x86-64 and
gcc47 -O2 -flto arch/x86/kernel/tsc_sync.i arch/x86/kernel/smp.i
arch/x86/kernel/smpboot.i


[Bug tree-optimization/50602] ICE in tree_nrv, at tree-nrv.c:155 during large LTO build

2011-10-29 Thread andi-gcc at firstfloor dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50602

--- Comment #7 from Andi Kleen andi-gcc at firstfloor dot org 2011-10-29 
12:12:09 UTC ---
Created attachment 25659
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25659
reproducer


Managed to minimize now

Unpack the tar file and on x86-64

% gcc47 -m32 -O2 -flto arch/x86/kernel/apic/io_apic.i -c
% gcc47 -m32 -O2 -flto arch/x86/kernel/apic/io_apic.o
In file included from :10:0:
/home/ak/lsrc/git/linux-lto-2.6/arch/x86/kernel/apic/io_apic.c: In function
'ioapic_read_entry':
/home/ak/lsrc/git/linux-lto-2.6/arch/x86/kernel/apic/io_apic.c:397:35: internal
compiler error: in tree_nrv, at tree-nrv.c:155

The strange thing is that it doesn't reproduce if you copy the .i file to
another file name?!? And see also the weird :10:0. Some memory corruption?


[Bug target/50910] New: [avr] inefficient division by 2

2011-10-29 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50910

 Bug #: 50910
   Summary: [avr] inefficient division by 2
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: g...@gcc.gnu.org
ReportedBy: g...@gcc.gnu.org
CC: eric.wedding...@atmel.com
Target: avr


The following source

char c;

void bar_c (int x)
{
c = x ? x/2 : c+1;
}

reveals two issues

== 1 == 

Compiled with

$ avr-gcc -S -Os

there is a call to libgcc's division routine. RTX costs of division has to be
checked and costs of loading the constant added to the costs of division.

bar_c:
sbiw r24,0
breq .L2
ldi r22,lo8(2)
clr r23
rcall __divmodhi4
rjmp .L3
.L2:
lds r22,c
subi r22,lo8(-(1))
.L3:
sts c,r22
ret

== 1 == 

Compiled with

$ avr-gcc -S -O2

the code is happily jumping around to L7 and then back to L3.

bar_c:
sbiw r24,0
brne .L6
lds r24,c
subi r24,lo8(-(1))
sts c,r24
ret
.L6:
sbrc r25,7
rjmp .L7
.L3:
asr r25
ror r24
sts c,r24
ret
.L7:
adiw r24,1
rjmp .L3

Presumably, the cause is 
#define BRANCH_COST 0
in avr.h, and the sequence could be instead:

...
.L6:
sbrc r25,7
adiw r24,1
.L3:
asr r25
ror r24
sts c,r24
ret


[Bug target/50910] [avr] inefficient division by 2

2011-10-29 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50910

Georg-Johann Lay gjl at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P4
 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011-10-29
   Target Milestone|--- |4.7.0
 Ever Confirmed|0   |1
  Known to fail||4.3.3, 4.5.2, 4.6.2, 4.7.0
   Severity|normal  |minor


[Bug rtl-optimization/50764] [4.7 Regression] ICE: in maybe_record_trace_start, at dwarf2cfi.c:2243 with -O2 -fsched2-use-superblocks -ftree-tail-merge

2011-10-29 Thread vries at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50764

vries at gcc dot gnu.org changed:

   What|Removed |Added

  Component|tree-optimization   |rtl-optimization

--- Comment #7 from vries at gcc dot gnu.org 2011-10-29 12:28:23 UTC ---
Using this patch, the dead label introduced by cfg_layout_finalize is removed:
...
Index: gcc/bb-reorder.c
===
--- gcc/bb-reorder.c (revision 180521)
+++ gcc/bb-reorder.c (working copy)
@@ -2328,6 +2328,7 @@ rest_of_handle_reorder_blocks (void)
 if (bb-next_bb != EXIT_BLOCK_PTR)
   bb-aux = bb-next_bb;
   cfg_layout_finalize ();
+  cleanup_cfg (0);

   /* Add NOTE_INSN_SWITCH_TEXT_SECTIONS notes.  */
   insert_section_boundary_note ();
...
and the assert triggers for -O2 -fsched2-use-superblocks -fno-tree-tail-merge.
Changing component to rtl-optimization.


[Bug rtl-optimization/50764] [4.7 Regression] ICE: in maybe_record_trace_start, at dwarf2cfi.c:2243 with -O2 -fsched2-use-superblocks -ftree-tail-merge

2011-10-29 Thread vries at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50764

--- Comment #8 from vries at gcc dot gnu.org 2011-10-29 12:32:37 UTC ---
 Using this patch, the dead label introduced by cfg_layout_finalize is removed:

To be more precise: Using this patch, the dead label introduced by
cfg_layout_finalize is removed before sched2 (in pass_reorder_blocks) rather
than after sched2 (in pass_duplicate_computed_gotos).


[Bug tree-optimization/50644] ICE in set_is_used added today

2011-10-29 Thread markus at trippelsdorf dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50644

Markus Trippelsdorf markus at trippelsdorf dot de changed:

   What|Removed |Added

 CC||markus at trippelsdorf dot
   ||de

--- Comment #15 from Markus Trippelsdorf markus at trippelsdorf dot de 
2011-10-29 12:58:43 UTC ---
Further reduced:

markus@x4 testcase % cat smpboot.i 
struct _ddebug {
 const char *modname;
 const char *function;
 const char *filename;
 const char *format;
 char enabled;
}
cpumask_t;
extern void check_tsc_sync_source(int cpu);
int native_cpu_up(unsigned int cpu)
{
 int err;
 static struct _ddebug descriptor  = {
 , __func__, , , 866, 0};
   if (__builtin_expect(!!(descriptor.enabled), 0))
 __dynamic_pr_debug(descriptor, , err);
 check_tsc_sync_source(cpu);
}

markus@x4 testcase % cat smp.i 
struct smp_ops {
 void (*smp_prepare_boot_cpu)(void);
 void (*smp_prepare_cpus)(unsigned max_cpus);
 void (*smp_cpus_done)(unsigned max_cpus);
 void (*stop_other_cpus)(int wait);
 void (*smp_send_reschedule)(int cpu);
 int (*cpu_up)(unsigned cpu);
 int (*cpu_disable)(void);
 void (*cpu_die)(unsigned int cpu);
 void (*play_dead)(void);
 void (*send_call_func_ipi)(const struct cpumask *mask);
 void (*send_call_func_single_ipi)(int cpu);
};
int native_cpu_up(unsigned int cpunum);
void native_cpu_die(unsigned int cpu);
struct kernel_symbol {
 unsigned long value;
};
struct smp_ops smp_ops = {
 .cpu_up = native_cpu_up,  .cpu_die = native_cpu_die,
};
static const char __kstrtab_smp_ops[] =  smp_ops;
static const struct kernel_symbol 
__ksymtab_smp_ops __attribute__((__used__)) = {
 (unsigned long)smp_ops
};

markus@x4 testcase % cat tsc_sync.i 
typedef struct {} atomic_t;
struct _ddebug {
 const char *modname;
 const char *function;
 const char *filename;
 const char *format;
 char enabled;
};
extern __typeof__(int) cpu_number;
static atomic_t start_count;
void check_tsc_sync_source(int cpu)
{
 if (unsynchronized_tsc())   return;
  else {
do {
static struct _ddebug descriptor = {
, __func__, , 151, 0 };
if (__builtin_expect(!!(descriptor.enabled), 0))
__dynamic_pr_debug(descriptor, , 
(({
typeof(cpu_number) pfo_ret__;
switch (sizeof(cpu_number)) {
 case 4:
  asm(mov l %%gs: %P 1,%0 :
  =r (pfo_ret__) : m (cpu_number));
 }
 pfo_ret__;
 })), cpu);
 } while (0);
  }
 atomic_set(start_count, 0);
}

markus@x4 testcase % gcc smpboot.i smp.i tsc_sync.i -w -Os -flto
In file included from :0:0:
smpboot.i: In function ‘native_cpu_up’:
smpboot.i:10:5: internal compiler error: Segmentation fault
Please submit a full bug report


[Bug target/47997] gcc on macosx: ld: warning: -fwritable-strings not compatible with literal CF/NSString

2011-10-29 Thread iains at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47997

--- Comment #26 from Iain Sandoe iains at gcc dot gnu.org 2011-10-29 12:59:33 
UTC ---
Author: iains
Date: Sat Oct 29 12:59:30 2011
New Revision: 180653

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

gcc/objc:

PR target/47997
* objc-act.c (objc_build_string_object): Remove redundant second
call to fix_string_type ().  Add a checking assert that we are,
indeed, passed a STRING_CST.


Modified:
trunk/gcc/objc/ChangeLog
trunk/gcc/objc/objc-act.c


[Bug target/47997] gcc on macosx: ld: warning: -fwritable-strings not compatible with literal CF/NSString

2011-10-29 Thread iains at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47997

--- Comment #27 from Iain Sandoe iains at gcc dot gnu.org 2011-10-29 13:03:27 
UTC ---
let's give it a few weeks on trunk - and then back-port to 4.6 if all is OK
(since we just missed the 4.6.2 release).


[Bug tree-optimization/50644] ICE in set_is_used added today

2011-10-29 Thread markus at trippelsdorf dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50644

--- Comment #16 from Markus Trippelsdorf markus at trippelsdorf dot de 
2011-10-29 13:08:13 UTC ---
Or as one file:

 % cat test.i
struct _ddebug {
 const char *modname;
 const char *function;
 const char *filename;
 const char *format;
 char enabled;
}
cpumask_t;
int native_cpu_up(unsigned int cpu)
{
 int err;
 static struct _ddebug descriptor  = {
  , __func__, , , 866, 0
 };
 if (__builtin_expect(!!(descriptor.enabled), 0))
 __dynamic_pr_debug(descriptor, , err);
 check_tsc_sync_source(cpu);
}
struct smp_ops {
 int (*cpu_up)(unsigned cpu);
 void (*cpu_die)(unsigned int cpu);
};
void native_cpu_die(unsigned int cpu);
struct kernel_symbol {
 unsigned long value;
};
struct smp_ops smp_ops = {
 .cpu_up = native_cpu_up,  .cpu_die = native_cpu_die,
};
static const struct kernel_symbol
__ksymtab_smp_ops __attribute__((__used__)) = {
 (unsigned long)smp_ops
};
typedef struct {
}
atomic_t;
extern __typeof__(int) cpu_number;
static atomic_t start_count;
void check_tsc_sync_source(int cpu)
{
 if (unsynchronized_tsc())   return;
 else {
  do {
   static struct _ddebug descriptor = {
, __func__, , 151, 0
   };
   if (__builtin_expect(!!(descriptor.enabled), 0))
   __dynamic_pr_debug(descriptor, ,  (( {
typeof(cpu_number) pfo_ret__;
switch (sizeof(cpu_number)) {
case 4:
 asm(mov l %%gs: %P 1,%0 :
 =r (pfo_ret__) : m (cpu_number));
}
pfo_ret__;
   }
   )), cpu);
  } while (0);
 }
 atomic_set(start_count, 0);
}

 % gcc test.i -w -O2 -flto
In file included from :0:0:
test.i: In function ‘native_cpu_up’:
test.i:9:5: internal compiler error: Segmentation fault
Please submit a full bug report


[Bug middle-end/50708] Infinite loop between rshift_double and lshift_double if count is LONG_MIN

2011-10-29 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50708

Mikael Pettersson mikpe at it dot uu.se changed:

   What|Removed |Added

 CC||mikpe at it dot uu.se

--- Comment #3 from Mikael Pettersson mikpe at it dot uu.se 2011-10-29 
13:29:20 UTC ---
The reduced test case throws 4.6.1 and 4.6-20111021 in a loop on i686-linux,
but 4.4/4.5/4.7 don't loop.  On m68k-linux both 4.6-20111021 and 4.7-20111022
loop.  I haven't been able to reproduce the loop on armv5tel-linux-gnueabi with
any of 4.4/4.5/4.6/4.7.


[Bug bootstrap/50903] configure:14607: error: GNU Fortran is not working;

2011-10-29 Thread chadjidakis at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50903

Cynthia chadjidakis at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #5 from Cynthia chadjidakis at gmail dot com 2011-10-29 13:32:12 
UTC ---

Thanks for the answers. And, indeed, running make check for gmp did not work
using llvm-gcc system compiler in Lion. Following
http://beardedcodewarrior.net/2011/07/25/building-gcc-4-6-1-on-mac-os-x-lion/
(using gcc-4.2 installed previously with Snow Leopard instead of llvm-gcc)
makes gmp work.

Cheers,
Cynthia


[Bug debug/49951] [4.5/4.6/4.7 Regression] Debug stepping behavior regarding g++ Class destructor has changed for the worse starting at gcc 4.5.0

2011-10-29 Thread asmwarrior at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49951

--- Comment #5 from asmwarrior asmwarrior at gmail dot com 2011-10-29 
14:06:53 UTC ---
Hi, all, I think this bug happened about more than one years, I have test in
both gcc 4.5 and gcc 4.6.x under Windows.

I have both post an issue in GDB maillist and GCC-help maillist. see:

http://gcc.gnu.org/ml/gcc-help/2011-10/msg00239.html

and

http://sourceware.org/ml/gdb/2011-10/msg00209.html

The GDB guys thoughts that this is a bug in GCC, and GCC emit wrong debug_line
information.

When I use GDB under Codeblocks, it will always do some extra jump to variable
declaration, and quite unfriendly.

asmwarrior
ollydbg from codeblocks' forum


[Bug middle-end/50708] Infinite loop between rshift_double and lshift_double if count is LONG_MIN

2011-10-29 Thread rmansfield at qnx dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50708

--- Comment #4 from Ryan Mansfield rmansfield at qnx dot com 2011-10-29 
14:28:57 UTC ---
(In reply to comment #3)
 I haven't been able to reproduce the loop on armv5tel-linux-gnueabi with
 any of 4.4/4.5/4.6/4.7.

arm eabi targets force 64bit HOST_WIDE_INT which is why the reduced testcase
didn't fail.


[Bug target/50887] [avr] Support ACCUMULATE_OUTGOING_ARGS

2011-10-29 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50887

--- Comment #2 from Georg-Johann Lay gjl at gcc dot gnu.org 2011-10-29 
14:36:05 UTC ---
Author: gjl
Date: Sat Oct 29 14:35:59 2011
New Revision: 180654

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=180654
Log:
PR target/50887
* config/avr/avr.opt (-maccumulate-args): New option.
* config/avr/avr.h (STARTING_FRAME_OFFSET): Redefine to
avr_starting_frame_offset.
(ACCUMULATE_OUTGOING_ARGS): Define to avr_accumulate_outgoing_args.
* config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): Remove.
(UNSPECV_WRITE_SP_IRQ_OFF): Remove.
(UNSPECV_WRITE_SP): New constant.
(*addhi3_sp_R): Rewrite to...
(*addhi3_sp): ...this new insn.
(movhi_sp_r_irq_off, movhi_sp_r_irq_on): Combine to...
(movhi_sp_r): ...this new insn.
* config/avr/avr-protos.h (avr_accumulate_outgoing_args): New.
(avr_starting_frame_offset): New.
* config/avr/avr.c (avr_accumulate_outgoing_args): New function.
(avr_starting_frame_offset): New function.
(avr_outgoing_args_size): New static function.
(avr_initial_elimination_offset): Use it.
(avr_simple_epilogue): Use it.
(avr_asm_function_end_prologue): Use it.
(expand_epilogue): Use it.
(expand_prologue): Use it.  Break out code to...
(avr_prologue_setup_frame): ...this new static function.
(avr_can_eliminate): Allow eliminating to frame pointer if there
is one.
(avr_frame_pointer_required_p): Use frame pointer if target has a
nonlocal label.
* config/avr/constraints.md (R): Remove.
(Csp): New constraint.
* config/avr/predicates.md (avr_sp_immediate_operand): Use it.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/avr/avr-protos.h
trunk/gcc/config/avr/avr.c
trunk/gcc/config/avr/avr.h
trunk/gcc/config/avr/avr.md
trunk/gcc/config/avr/avr.opt
trunk/gcc/config/avr/constraints.md
trunk/gcc/config/avr/predicates.md


[Bug c/50521] -fstrict-volatile-bitfields is not strict

2011-10-29 Thread kikairoya at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50521

--- Comment #15 from Tomohiro Kashiwada kikairoya at gmail dot com 2011-10-29 
14:37:15 UTC ---
I see. Thanks detail exposition.
I think the behavior of my patch seems correct and it should be merged.


[Bug fortran/50556] cannot save namelist group name

2011-10-29 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50556

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||accepts-invalid
 CC||burnus at gcc dot gnu.org

--- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org 2011-10-29 
14:47:52 UTC ---
 One might argue that a SAVE namelist-group-name should mean that all
 namelist-group-objects associate this namelist-group-name gets the SAVE
 attribute.  If this interpretation was correct, then one would expect that
 text in the Standard would make this clear.

Well, I see in the standard:

C553   An entity with the SAVE attribute shall be a common block, variable, or
procedure pointer.

And I would argue that a namelist-group-name is neither a common block, a
variable nor a procedure pointer.

Thus, I believe that the code in comment 0 is invalid.

Regarding the patch in comment 1: I think it will not work if one swaps the
order of NAMELIST and SAVE.

Untested patch:

--- a/gcc/fortran/symbol.c
+++ b/gcc/fortran/symbol.c
@@ -441,6 +441,7 @@ check_conflict (symbol_attribute *attr, const char *name,
locus *where)
  case FL_LABEL:
  case FL_DERIVED:
  case FL_PARAMETER:
+ case FL_NAMELIST:
 a1 = gfc_code2string (flavors, attr-flavor);
 a2 = save;
goto conflict;
@@ -449,7 +450,6 @@ check_conflict (symbol_attribute *attr, const char *name,
locus *where)
/* Conflicts between SAVE and PROCEDURE will be checked at
   resolution stage, see resolve_fl_procedure.  */
  case FL_VARIABLE:
- case FL_NAMELIST:
  default:
break;
}


[Bug fortran/50892] Internal compiler error: in gimplify_expr, at gimplify.c:7477

2011-10-29 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50892

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
 CC||burnus at gcc dot gnu.org
  Known to fail||4.3.4

--- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org 2011-10-29 
15:04:34 UTC ---
(In reply to comment #0)
 In addition to the internal compiler error, there is a problem mentioned in a
 comment.  According to a Fortran language lawyer, Fortran 2008 allows two 
 local
 definitions of procedures to have the same binding label.  This problem is
 illustrated in a comment.

I think that's PR 48858.

 I'm mainly filing this bug because of the internal compiler error

Simplified test case below. Dump shows:


test ()
{
  character(kind=1)[1:1] * str;
  void * text;
  static void fortranchar (character(kind=1)[1:] * , integer(kind=4), void *);

  {
character(kind=1)[1:MAX_EXPR D.1732, 0] * pstr.0;
integer(kind=4) D.1732;
void * D.1730;

D.1730 = text;
D.1732 = strlen (*D.1730);
fortranchar (pstr.0, MAX_EXPR D.1732, 0, D.1730);
str = (character(kind=1)[1:1] *) pstr.0;
  }
}



program test
  use, intrinsic :: ISO_C_Binding, only: c_ptr, c_int, c_char
  type(c_ptr) :: text
  character, pointer :: str
  interface
pure integer(c_int) function strlen (c) bind(c,name='strlen')
  import
  type(c_ptr), intent(in), value :: c
end function strlen
  end interface
  str = FortranChar(text)
contains
  function FortranChar ( C )
type(c_ptr), intent(in), value :: C
character(len=strlen(c),kind=c_char), pointer :: FortranChar
  end function FortranChar
end program test


[Bug target/50911] New: [4.7 regression] assertion failure in expand_vec_perm_interleave2 with -msse

2011-10-29 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50911

 Bug #: 50911
   Summary: [4.7 regression] assertion failure in
expand_vec_perm_interleave2 with -msse
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: ebotca...@gcc.gnu.org
Target: i?86-*-* x86_64-*-*


Created attachment 25660
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25660
Concatenated testcase

This is a regression introduced by the recent changes in the x86 back-end which
are related to vectorization.  If you compile the to-be-gnatchoped testcase
with -O3 -msse, you get:

eric@atlantis:~/build/gcc gcc -S -gnatws -O3 -msse loop_optimization9.adb
+===GNAT BUG DETECTED==+
| 4.7.0 20111028 (experimental) [trunk revision 180610] (i586-suse-linux-gnu)
GCC error:|
| in expand_vec_perm_interleave2, at config/i386/i386.c:35573  |
| Error detected around gcc/ada/rts/s-string.ads:58:4  

This compiles fine with -O3 -msse2 instead.  The testcase can directly be added
to the testsuite as gnat.dg/loop_optimization9.ad[sb].


[Bug fortran/50556] cannot save namelist group name

2011-10-29 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50556

--- Comment #3 from Tobias Burnus burnus at gcc dot gnu.org 2011-10-29 
15:17:19 UTC ---
(In reply to comment #2)
 Well, I see in the standard:
[Fortran 2008]
 C553   An entity with the SAVE attribute shall be a common block, variable, 
 or
 procedure pointer.
 
 And I would argue that a namelist-group-name is neither a common block, a
 variable nor a procedure pointer.

See also
http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/07da50d1aaf3870d
- there, the argument seems to be the same, though the reference is R544.

 * * *

From c.l.f:
 Unfortunately, I also found that gfortran has interpreted something like
  namelist /cmd/ i, j, k
  save cmd
 to mean
 namelist /cmd/ i, j, k
 save i, j, k

The question is whether one needs to allow it.

g95 and gfortran allow the code
ifort, NAG f95, g77 (!), pathf95/openf95/crayftn reject it.
PGI warns Symbol, i, appears illegally in a SAVE statement

Thus, I wouldn't mind breaking the backward compatibility.


[Bug fortran/50753] dshiftl/dshiftr: Rejects valid BOZ, accepts double BOZ

2011-10-29 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50753

--- Comment #3 from Tobias Burnus burnus at gcc dot gnu.org 2011-10-29 
15:18:28 UTC ---
Submitted patch:
http://gcc.gnu.org/ml/fortran/2011-10/msg00203.html


[Bug tree-optimization/50912] New: [4.7 regression] gimple assertion failure at gimple.h:1940 with -msse2

2011-10-29 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50912

 Bug #: 50912
   Summary: [4.7 regression] gimple assertion failure at
gimple.h:1940 with -msse2
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: ebotca...@gcc.gnu.org
Target: i?86-*-* x86_64-*-*


Created attachment 25661
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25661
Concatenated testcase

This is a regression introduced by the recent changes related to vectorization.
 If you compile the to-be-gnatchoped testcase with -O3 -msse2, you get:

eric@atlantis:~/build/gcc gcc/xgcc -Bgcc -S loop_optimization10.adb -O3 -msse2
+===GNAT BUG DETECTED==+
| 4.7.0 20111028 (experimental) [trunk revision 180610] (i586-suse-linux-gnu)
GCC error:|
| gimple check: expected gimple_assign(error_mark), have   |
| gimple_call(block) in gimple_assign_rhs_code, at gimple.h:1940   |
| Error detected around loop_optimization10.adb:7:4  

This compiles fine without -msse2.  The testcase can directly be added to the
testsuite as gnat.dg/loop_optimization10.ad[sb].


[Bug c/50913] New: ICE: compiling libgfortran for i686-w64-mingw32

2011-10-29 Thread vanboxem.ruben at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50913

 Bug #: 50913
   Summary: ICE: compiling libgfortran for i686-w64-mingw32
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: critical
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: vanboxem.ru...@gmail.com


Created attachment 25662
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25662
Preprocessed source for file causing ICE

I get an ICE compiling this:

/home/ruben/mingw-w64/toolchain/linux64mingw32/gcc/./gcc/xgcc
-B/home/ruben/mingw-w64/toolchain/linux64mingw32/gcc/./gcc/
-L/home/ruben/mingw-w64/toolchain/linux64mingw32/mingw32/i686-w64-mingw32/lib
-L/home/ruben/mingw-w64/toolchain/linux64mingw32/mingw32/mingw/lib -isystem
/home/ruben/mingw-w64/toolchain/linux64mingw32/mingw32/i686-w64-mingw32/include
-isystem /home/ruben/mingw-w64/toolchain/linux64mingw32/mingw32/mingw/include
-B/home/ruben/mingw-w64/toolchain/linux64mingw32/mingw32/i686-w64-mingw32/bin/
-B/home/ruben/mingw-w64/toolchain/linux64mingw32/mingw32/i686-w64-mingw32/lib/
-isystem
/home/ruben/mingw-w64/toolchain/linux64mingw32/mingw32/i686-w64-mingw32/include
-isystem
/home/ruben/mingw-w64/toolchain/linux64mingw32/mingw32/i686-w64-mingw32/sys-include
-DHAVE_CONFIG_H -I. -I/home/ruben/mingw-w64/toolchain/src/gcc/libgfortran
-iquote/home/ruben/mingw-w64/toolchain/src/gcc/libgfortran/io
-I/home/ruben/mingw-w64/toolchain/src/gcc/libgfortran/../gcc
-I/home/ruben/mingw-w64/toolchain/src/gcc/libgfortran/../gcc/config
-I/home/ruben/mingw-w64/toolchain/src/gcc/libgfortran/../libquadmath
-I../.././gcc -std=gnu99 -Wall -Wstrict-prototypes -Wmissing-prototypes
-Wold-style-definition -Wextra -Wwrite-strings -fcx-fortran-rules
-ffunction-sections -fdata-sections -g -O2 -mtune=core2 -fomit-frame-pointer
-momit-leaf-frame-pointer -fgraphite-identity -floop-interchange -floop-block
-floop-parallelize-all -MT spread_i2.lo -MD -MP -MF .deps/spread_i2.Tpo -c
/home/ruben/mingw-w64/toolchain/src/gcc/libgfortran/generated/spread_i2.c 
-DDLL_EXPORT -DPIC -o ./libs/spread_i2.o

xgcc -v output:
Using built-in specs.
COLLECT_GCC=/home/ruben/mingw-w64/toolchain/linux64mingw32/gcc/./gcc/xgcc
Target: i686-w64-mingw32
Configured with: /home/ruben/mingw-w64/toolchain/src/gcc/configure
--host=x86_64-linux-gnu --build=x86_64-linux-gnu --target=i686-w64-mingw32
--with-sysroot=/home/ruben/mingw-w64/toolchain/linux64mingw32/mingw32
--prefix=/home/ruben/mingw-w64/toolchain/linux64mingw32/mingw32
--with-libiconv-prefix=/home/ruben/mingw-w64/toolchain/linux64mingw32/prereq_install
--with-gmp=/home/ruben/mingw-w64/toolchain/linux64mingw32/prereq_install
--with-mpfr=/home/ruben/mingw-w64/toolchain/linux64mingw32/prereq_install
--with-mpc=/home/ruben/mingw-w64/toolchain/linux64mingw32/prereq_install
--with-ppl=/home/ruben/mingw-w64/toolchain/linux64mingw32/prereq_install
--with-cloog=/home/ruben/mingw-w64/toolchain/linux64mingw32/prereq_install
--enable-cloog-backend=isl --with-host-libstdcxx='-lstdc++ -lsupc++ -lm
-lgcc_eh' --enable-shared --enable-static --enable-threads=posix
--disable-multilib --enable-languages=c,lto,c++,fortran,objc,obj-c++,java
--enable-libgomp --enable-sjlj-exceptions --enable-fully-dynamic-string
--disable-nls --disable-werror --enable-checking=release CFLAGS='-O2
-mtune=core2 -fomit-frame-pointer -momit-leaf-frame-pointer -fgraphite-identity
-floop-interchange -floop-block -floop-parallelize-all' LDFLAGS=
Thread model: posix
gcc version 4.7.0 20111029 (experimental) (GCC)

Preprocessed source attached. Same thing happens for spread_i1.c.


[Bug target/50691] Incorrect argument evaluation in call with __thread argument

2011-10-29 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50691

--- Comment #6 from John David Anglin danglin at gcc dot gnu.org 2011-10-29 
15:57:04 UTC ---
Author: danglin
Date: Sat Oct 29 15:57:00 2011
New Revision: 180655

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=180655
Log:
PR target/50691
config/pa/pa.c (emit_move_sequence): Legitimize TLS symbol references.
(pa_legitimate_constant_p): Return false for TLS_MODEL_GLOBAL_DYNAMIC
and TLS_MODEL_LOCAL_DYNAMIC symbol references.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/pa/pa.c


[Bug fortran/50556] cannot save namelist group name

2011-10-29 Thread sgk at troutmask dot apl.washington.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50556

--- Comment #4 from Steve Kargl sgk at troutmask dot apl.washington.edu 
2011-10-29 16:49:38 UTC ---
On Sat, Oct 29, 2011 at 02:47:52PM +, burnus at gcc dot gnu.org wrote:
  One might argue that a SAVE namelist-group-name should mean that all
  namelist-group-objects associate this namelist-group-name gets the SAVE
  attribute.  If this interpretation was correct, then one would expect that
  text in the Standard would make this clear.
 
 Well, I see in the standard:
 
 C553   An entity with the SAVE attribute shall be a common block,
 variable, or procedure pointer.
 
 And I would argue that a namelist-group-name is neither a common block, a
 variable nor a procedure pointer.

Well, spotted.  I was scanning the standards for 'namelist-group',
so missed C553.

 Thus, I believe that the code in comment 0 is invalid.
 
 Regarding the patch in comment 1: I think it will not work if one swaps the
 order of NAMELIST and SAVE.

Confirmed.

 Untested patch:
 
 --- a/gcc/fortran/symbol.c
 +++ b/gcc/fortran/symbol.c
 @@ -441,6 +441,7 @@ check_conflict (symbol_attribute *attr, const char *name,
 locus *where)
   case FL_LABEL:
   case FL_DERIVED:
   case FL_PARAMETER:
 + case FL_NAMELIST:
  a1 = gfc_code2string (flavors, attr-flavor);
  a2 = save;
 goto conflict;
 @@ -449,7 +450,6 @@ check_conflict (symbol_attribute *attr, const char *name,
 locus *where)
 /* Conflicts between SAVE and PROCEDURE will be checked at
resolution stage, see resolve_fl_procedure.  */
   case FL_VARIABLE:
 - case FL_NAMELIST:
   default:
 break;
 }

I tested the above.  It catches both examples of invalid code
(namelist before save and save before namelist).  However, the
error message is a bit strange:

ab.f90:2.12:

  save i
1
Error: NAMELIST attribute conflicts with SAVE attribute in 'i' at (1)

NAMELIST is not an attribute.  With the attached patch, I get

laptop:kargl[239] gfc4x -c namelist_74.f90
namelist_74.f90:5.15:

   namelist /i/ ii! { dg-error cannot have a SAVE attribute }
   1
Error: Namelist group name at (1) cannot have a SAVE attribute
namelist_74.f90:9.9:

   save i ! { dg-error cannot have a SAVE attribute }
 1
Error: Namelist group name at (1) cannot have a SAVE attribute


[Bug fortran/50556] cannot save namelist group name

2011-10-29 Thread sgk at troutmask dot apl.washington.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50556

--- Comment #5 from Steve Kargl sgk at troutmask dot apl.washington.edu 
2011-10-29 16:51:10 UTC ---
On Sat, Oct 29, 2011 at 03:17:19PM +, burnus at gcc dot gnu.org wrote:
 From c.l.f:
  Unfortunately, I also found that gfortran has interpreted something like
   namelist /cmd/ i, j, k
   save cmd
  to mean
  namelist /cmd/ i, j, k
  save i, j, k
 
 The question is whether one needs to allow it.
 
 g95 and gfortran allow the code
 ifort, NAG f95, g77 (!), pathf95/openf95/crayftn reject it.
 PGI warns Symbol, i, appears illegally in a SAVE statement
 
 Thus, I wouldn't mind breaking the backward compatibility.

I vote that gfortran should follow the majority and simply
issue an error.


[Bug rtl-optimization/50764] [4.7 Regression] ICE: in maybe_record_trace_start, at dwarf2cfi.c:2243 with -O2 -fsched2-use-superblocks -ftree-tail-merge

2011-10-29 Thread vries at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50764

--- Comment #9 from vries at gcc dot gnu.org 2011-10-29 17:16:11 UTC ---
Using the bb-reorder patch, the assert is introduced/triggered by r177209:
...
r177209 | rth | 2011-08-02 21:56:29 +0200 (Tue, 02 Aug 2011) | 5 lines

h8300: Generate correct unwind info around swap_into/out_of_er6.

Minimal bug fix is to unset RTX_FRAME_RELATED_P on the PUSH
insn generated in h8300_swap_into_er6.  But with a tiny bit
of effort we can generate real unwind info around the sequence.
...


[Bug middle-end/50902] intVar/dinternal.cc ICEs at -O2 -ftree-vectorize

2011-10-29 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50902

--- Comment #6 from Jack Howarth howarth at nitro dot med.uc.edu 2011-10-29 
17:39:43 UTC ---
Confirmed that both the dinternal.ii and MarvinNOEPotential.ii test cases
reproduce this ICE using current gcc trunk under x86_64 Fedora 15.


[Bug c/50908] building emacs-23.3; gives msg: indent.c:1140:1: internal compiler error: in verify_dominators, at dominance.c:1041

2011-10-29 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50908

Georg-Johann Lay gjl at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011-10-29
 CC||gjl at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #1 from Georg-Johann Lay gjl at gcc dot gnu.org 2011-10-29 
18:15:02 UTC ---
Confired on x86-pc-linux-gnu with trunk revision 180654


[Bug target/50617] [4.5/4.6/4.7 Regression] ICE: RTL flag check: INSN_ANNULLED_BRANCH_P used with unexpected rtx code 'simplify_immed_subreg' in output_bb, at config/pa/pa.c:6631

2011-10-29 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50617

--- Comment #4 from John David Anglin danglin at gcc dot gnu.org 2011-10-29 
18:58:52 UTC ---
Author: danglin
Date: Sat Oct 29 18:58:48 2011
New Revision: 180660

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=180660
Log:
PR target/50617
* config/pa/protos.h (attr_length_save_restore_dltp): Delete.
(cmpib_comparison_operator): Likewise.
(following_cal, output_and, output_ior, output_move_double,
output_fp_move_double, output_block_move, output_block_clear,
output_cbranch, output_lbranch, output_bb, output_bvb, output_dbra,
output_movb, output_parallel_movb, output_parallel_addb, output_call,
output_indirect_call, output_millicode_call, output_mul_insn,
output_div_insn, output_mod_insn, singlemove_string,
output_arg_descriptor, output_global_address, print_operand,
legitimize_pic_address, hppa_encode_label, symbolic_expression_p,
fmpyaddoperands, fmpysuboperands, emit_bcond_fp, emit_move_sequence,
emit_hpdiv_const, is_function_label_plus_const, jump_in_call_delay,
hppa_fpstore_bypass_p, attr_length_millicode_call, attr_length_call,
attr_length_indirect_call, return_addr_rtx, function_arg_padding,
insn_refs_are_delayed, get_deferred_plabel, ldil_cint_p, zdepi_cint_p,
output_ascii, compute_frame_size, and_mask_p, cint_ok_for_move,
hppa_expand_prologue, hppa_expand_epilogue, ior_mask_p,
compute_zdepdi_operands, output_64bit_and, output_64bit_ior,
reloc_needed, magic_milli, shadd_constant_p): Consistently prefix
exported functions and variables with pa_.
* config/pa/predicates.md: Likewise.
* config/pa/pa64-hpux.h: likewise.
* config/pa/som.h: Likewise.
* config/pa/elf.h: Likewise.
* config/pa/pa64-linux.h: Likewise.
* config/pa/pa.md: Likewise.
* config/pa/pa.c: Likewise.
* config/pa/pa-linux.h: Likewise.
* config/pa/pa.h: Likewise.
* config/pa/constraints.md: Likewise.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/pa/constraints.md
trunk/gcc/config/pa/elf.h
trunk/gcc/config/pa/pa-linux.h
trunk/gcc/config/pa/pa-protos.h
trunk/gcc/config/pa/pa.c
trunk/gcc/config/pa/pa.h
trunk/gcc/config/pa/pa.md
trunk/gcc/config/pa/pa64-hpux.h
trunk/gcc/config/pa/pa64-linux.h
trunk/gcc/config/pa/predicates.md
trunk/gcc/config/pa/som.h


[Bug fortran/50914] New: Error while installing gcc-4.3.0

2011-10-29 Thread jdasu86 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50914

 Bug #: 50914
   Summary: Error while installing gcc-4.3.0
Classification: Unclassified
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: jdas...@gmail.com


Created attachment 25664
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25664
The config.log file picked from specified location in the error.

While installing gcc-4.3.0 following error had occurred. 

checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether the GNU Fortran compiler is working... no
configure: error: GNU Fortran is not working; please report a bug in
http://gcc.gnu.org/bugzilla, attaching
/home/dasu/gcc-4.3.0/i686-pc-linux-gnu/libgfortran/config.log
make[1]: *** [configure-target-libgfortran] Error 1
make[1]: Leaving directory `/home/dasu/gcc-4.3.0'
make: *** [all] Error 2


Regarding that error I am attching config.log with this report. 

Thank you,

--
With regards,
Dasu


[Bug fortran/50914] Error while installing gcc-4.3.0

2011-10-29 Thread jdasu86 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50914

--- Comment #1 from jdasu86 at gmail dot com 2011-10-29 19:08:39 UTC ---
I want to install ns-2.34 which requires gcc-4.3.0 but I am having gcc-4.6.0 in
fedora 15.
So I tried to install gcc-4.3.0, taht reported me above mentioned bug.


[Bug fortran/50914] Error while installing gcc-4.3.0

2011-10-29 Thread kargl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50914

kargl at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||kargl at gcc dot gnu.org
 Resolution||WONTFIX

--- Comment #2 from kargl at gcc dot gnu.org 2011-10-29 19:13:55 UTC ---
4.3.0 is no longer supported version.


[Bug libstdc++/50915] New: gcc fails at run time due to undefined libintl_textdomain

2011-10-29 Thread titu_senapati at yahoo dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50915

 Bug #: 50915
   Summary: gcc fails at run time due to undefined
libintl_textdomain
Classification: Unclassified
   Product: gcc
   Version: 3.4.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: titu_senap...@yahoo.com


Installed GCC 3.4.3 in one x86_64 machine with OS as Suse Linux SP1

I have configured as follows:
./configure --prefix=[path to installation] --host=x86_64-suse-linux
--build=x86_64-suse-linux target=x86_64-suse-linux --with-included-gettext

reason I have mentioned host, build and target is during configure it is not
able to detect the os type hence
it is setting target as x86_64-unknown-linux

Now the problem is when I am invoking gcc after installation, it is throwing
error

/vobs/tsp/tools/GCC/LINUX/3.4.3_SLES11/bin/gcc  -nodefaultlibs -m32  -o genbin
genbin.o -lstdc++ -lgcc -lc
/vobs/tsp/tools/GCC/LINUX/3.4.3_SLES11/lib/gcc/x86_64-suse-linux/3.4.3/../../../../lib/libstdc++.so:
undefined reference to `libintl_textdomain'
/vobs/tsp/tools/GCC/LINUX/3.4.3_SLES11/lib/gcc/x86_64-suse-linux/3.4.3/../../../../lib/libstdc++.so:
undefined reference to `libintl_bindtextdomain'
collect2: ld returned 1 exit status
*** Error code 1

In my system there is a libintl.so available at /usr/local/lib. can it be a
problem.

Can you please suggest any solution.


[Bug target/50691] Incorrect argument evaluation in call with __thread argument

2011-10-29 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50691

--- Comment #7 from John David Anglin danglin at gcc dot gnu.org 2011-10-29 
20:19:46 UTC ---
Author: danglin
Date: Sat Oct 29 20:19:38 2011
New Revision: 180662

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=180662
Log:
PR target/50691
* config/pa/pa.c (emit_move_sequence): Legitimize TLS symbol references.
* config/pa/pa.h (LEGITIMATE_CONSTANT_P): Return false for
TLS_MODEL_GLOBAL_DYNAMIC and TLS_MODEL_LOCAL_DYNAMIC symbol references.


Modified:
branches/gcc-4_6-branch/gcc/ChangeLog
branches/gcc-4_6-branch/gcc/config/pa/pa.c
branches/gcc-4_6-branch/gcc/config/pa/pa.h


[Bug target/50617] [4.5/4.6/4.7 Regression] ICE: RTL flag check: INSN_ANNULLED_BRANCH_P used with unexpected rtx code 'simplify_immed_subreg' in output_bb, at config/pa/pa.c:6631

2011-10-29 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50617

--- Comment #5 from John David Anglin danglin at gcc dot gnu.org 2011-10-29 
20:23:04 UTC ---
Author: danglin
Date: Sat Oct 29 20:23:00 2011
New Revision: 180663

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=180663
Log:
PR target/50617
* config/pa/pa-protos.h (output_bb): Rename to pa_output_bb.
* config/pa/pa.md: Likewise.
* config/pa/pa.c: Likewise.


Modified:
branches/gcc-4_6-branch/gcc/ChangeLog
branches/gcc-4_6-branch/gcc/config/pa/pa-protos.h
branches/gcc-4_6-branch/gcc/config/pa/pa.c
branches/gcc-4_6-branch/gcc/config/pa/pa.md


[Bug fortran/50914] Error while installing gcc-4.3.0

2011-10-29 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50914

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

 CC||burnus at gcc dot gnu.org
 Resolution|WONTFIX |INVALID

--- Comment #3 from Tobias Burnus burnus at gcc dot gnu.org 2011-10-29 
21:26:04 UTC ---
(In reply to comment #0)
 Created attachment 25664 [details]
 The config.log file picked from specified location in the error.

 While installing gcc-4.3.0 following error had occurred. 

If you look into the attached file, you find the error:

/home/dasu/gcc-4.3.0/host-i686-pc-linux-gnu/gcc/f951: symbol lookup error:
/home/dasu/gcc-4.3.0/host-i686-pc-linux-gnu/gcc/f951: undefined symbol:
mpfr_get_z_exp

Thus, you do not have properly installed the MPFR library, which is (rather
common) problem, but which you have to fix yourself.

 * * *

I don't know whether Fedora also allows installing an old GCC parallel with a
newer one; if so, you could try to install a 4.3 GCC from an old Fedora. If it
does not have to be i686 but can also be x86_64-linux: There are also 4.3
builds available at http://gcc.gnu.org/wiki/GFortranBinaries


[Bug target/50691] Incorrect argument evaluation in call with __thread argument

2011-10-29 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50691

--- Comment #8 from John David Anglin danglin at gcc dot gnu.org 2011-10-29 
21:29:00 UTC ---
Author: danglin
Date: Sat Oct 29 21:28:57 2011
New Revision: 180664

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=180664
Log:
PR target/50691
* config/pa/pa.c (emit_move_sequence): Legitimize TLS symbol references.
* config/pa/pa.h (LEGITIMATE_CONSTANT_P): Return false for
TLS_MODEL_GLOBAL_DYNAMIC and TLS_MODEL_LOCAL_DYNAMIC symbol references.


Modified:
branches/gcc-4_5-branch/gcc/ChangeLog
branches/gcc-4_5-branch/gcc/config/pa/pa.c
branches/gcc-4_5-branch/gcc/config/pa/pa.h


[Bug target/50617] [4.5/4.6/4.7 Regression] ICE: RTL flag check: INSN_ANNULLED_BRANCH_P used with unexpected rtx code 'simplify_immed_subreg' in output_bb, at config/pa/pa.c:6631

2011-10-29 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50617

John David Anglin danglin at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #6 from John David Anglin danglin at gcc dot gnu.org 2011-10-29 
21:44:24 UTC ---
Revision 180663 was reverted.  Fix is only needed for 4.7.


[Bug middle-end/50913] ICE: compiling libgfortran for i686-w64-mingw32

2011-10-29 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50913

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

  Component|c   |middle-end

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2011-10-29 
22:35:55 UTC ---
What was the ICE?


[Bug rtl-optimization/38644] [4.4/4.5/4.6/4.7 Regression] Optimization flag -O1 -fschedule-insns2 causes wrong code

2011-10-29 Thread davem at devkitpro dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38644

--- Comment #55 from Dave Murphy davem at devkitpro dot org 2011-10-29 
23:27:02 UTC ---
(In reply to comment #54)
 I tested with GCC 4.6.2 and the patch provided by Mikael Pettersson.  It works
 for -march=armv4t and -march=armv5t, but not for -march=armv5te:

For what it's worth I've been using Richard Earnshaw's patch from
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30282#c8 with my own gcc builds and
it's working fine for all -march values.

There's also Joern's patch at http://gcc.gnu.org/ml/gcc/2011-07/msg00461.html
which I haven't tested but looks like it should work.

I still don't understand why there seems to be so much resistance to Richard's
suggestion that targets with redzones should explicitly enable this behaviour.
How can it be a hack to treat stack moves specially? Isn't the stack generally
a special register?


[Bug other/50916] New: -Os, -D_FORTIFY_SOURCE breaks strcpy others if inlined

2011-10-29 Thread dezgeg at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50916

 Bug #: 50916
   Summary: -Os, -D_FORTIFY_SOURCE breaks strcpy  others if
inlined
Classification: Unclassified
   Product: gcc
   Version: 4.6.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: other
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: dez...@gmail.com


Created attachment 25665
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25665
The preprocessed source

Not totally sure if a glibc or gcc bug, but anyway: GCC 4.6.2 causes the
following code to get into an infinite loop in strcpy if compiled with
gcc -std=c99 -Os -D_FORTIFY_SOURCE=2

#include argp.h
#include string.h

int main (void) {
char buf[1024];
char* str = hello;
strcpy (buf, str);
return 0;
}

It seems that something in the #includes is pulling in the following definition
for strcpy:

extern __inline char *
 strcpy (char *__restrict __dest, const char *__restrict __src)
{
  return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest,
2  1));
}
...and then the __builtin_strcpy_chk seems to turn back into strcpy (due to
-Os?):

0035 strcpy:
  35:   55  push   %ebp
  36:   89 e5   mov%esp,%ebp
  38:   5d  pop%ebp
  39:   e9 fc ff ff ff  jmp3a strcpy+0x5
3a: R_386_PC32  strcpy
...which then causes the infinite loop.

gcc -v:

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i486-linux-gnu/4.6/lto-wrapper
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.6.2-2'
--with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++,go --prefix=/usr
--program-suffix=-4.6 --enable-shared --enable-linker-build-id
--with-system-zlib --libexecdir=/usr/lib --without-included-gettext
--enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6
--libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --enable-plugin --enable-objc-gc
--enable-targets=all --with-arch-32=i586 --with-tune=generic
--enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu
--target=i486-linux-gnu
Thread model: posix
gcc version 4.6.2 (Debian 4.6.2-2)


[Bug libstdc++/50915] gcc fails at run time due to undefined libintl_textdomain

2011-10-29 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50915

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2011-10-30
 Ever Confirmed|0   |1

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-30 
00:18:24 UTC ---
3.4.x is very, very, old and not maintained anymore. Thus, before anything
else, try something modern, like the just released 4.6.2.


[Bug c++/50901] [4.6/4.7 Regression] ICE: in build_new_op, at cp/call.c:5016

2011-10-29 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50901

--- Comment #2 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org 
2011-10-30 00:22:59 UTC ---
Author: paolo
Date: Sun Oct 30 00:22:53 2011
New Revision: 180670

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=180670
Log:
/cp
2011-10-29  Paolo Carlini  paolo.carl...@oracle.com

PR c++/50901
* call.c (build_new_op_1): Handle ABS_EXPR together with the
other unary EXPR.

/testsuite
2011-10-29  Paolo Carlini  paolo.carl...@oracle.com

PR c++/50901
* g++.dg/cpp0x/pr50901.C: New.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/pr50901.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/50901] [4.6/4.7 Regression] ICE: in build_new_op, at cp/call.c:5016

2011-10-29 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50901

--- Comment #3 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org 
2011-10-30 00:24:54 UTC ---
Author: paolo
Date: Sun Oct 30 00:24:51 2011
New Revision: 180671

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=180671
Log:
/cp
2011-10-29  Paolo Carlini  paolo.carl...@oracle.com

PR c++/50901
* call.c (build_new_op_1): Handle ABS_EXPR together with the
other unary EXPR.

/testsuite
2011-10-29  Paolo Carlini  paolo.carl...@oracle.com

PR c++/50901
* g++.dg/cpp0x/pr50901.C: New.

Added:
branches/gcc-4_6-branch/gcc/testsuite/g++.dg/cpp0x/pr50901.C
Modified:
branches/gcc-4_6-branch/gcc/cp/ChangeLog
branches/gcc-4_6-branch/gcc/cp/call.c
branches/gcc-4_6-branch/gcc/testsuite/ChangeLog


[Bug c++/50901] [4.6/4.7 Regression] ICE: in build_new_op, at cp/call.c:5016

2011-10-29 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50901

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-30 
00:25:48 UTC ---
Fixed 4.6.3 and mainline.


[Bug middle-end/45631] devirtualization with profile feedback does not work for function pointers

2011-10-29 Thread andi-gcc at firstfloor dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45631

--- Comment #3 from Andi Kleen andi-gcc at firstfloor dot org 2011-10-30 
02:33:29 UTC ---
Honza, any further ideas how to proceed? Should the threshold just be lowered?


[Bug target/50691] Incorrect argument evaluation in call with __thread argument

2011-10-29 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50691

--- Comment #9 from John David Anglin danglin at gcc dot gnu.org 2011-10-30 
03:21:49 UTC ---
Author: danglin
Date: Sun Oct 30 03:21:45 2011
New Revision: 180672

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=180672
Log:
PR target/50691
* config/pa/pa.c (emit_move_sequence): Legitimize TLS symbol references.
* config/pa/pa.h (LEGITIMATE_CONSTANT_P): Return false for
TLS_MODEL_GLOBAL_DYNAMIC and TLS_MODEL_LOCAL_DYNAMIC symbol references.


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


[Bug target/50691] Incorrect argument evaluation in call with __thread argument

2011-10-29 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50691

John David Anglin danglin at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #10 from John David Anglin danglin at gcc dot gnu.org 2011-10-30 
03:24:44 UTC ---
Fixed.