[Bug tree-optimization/56935] Basic block is not SLP-vectorizeed after r197635.

2013-04-16 Thread rguenther at suse dot de


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



--- Comment #5 from rguenther at suse dot de rguenther at suse dot de 
2013-04-16 07:48:47 UTC ---

On Mon, 15 Apr 2013, ysrumyan at gmail dot com wrote:



 

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

 

 --- Comment #4 from Yuri Rumyantsev ysrumyan at gmail dot com 2013-04-15 
 14:54:50 UTC ---

 Richard,

 

 both subq's are accessed the same cash line and it means that after 1st 

 store tthe 2nd load will stall till finish updating data cash (this is 

 not exact explanation but if you'd like I can find out more strong and 

 correct definition of memory conflict). In result non-vectorizable code 

 will run much slower adn we saw such slowdown on 253.perl from cpu2000.



I fear this is beyond the scope of the vectorizer cost model in

its current form.  Clearly what it computes is correct if the

cost is defined as a sum of individual stmt costs (which is

how the scalar cost is computed).  The vectorizer cost model

now gives the target the power to look at the whole vectorized

sequence and compute something better than the sum of the individual

vectorized stmt costs, but currently the x86 target does not

use this power.



Factoring in instruction cache it's still not clear that a possible

extra cache miss for ifetch is worth avoiding the stall due to

the store forwarding issue.  (btw, your explanation looks odd -

there is no dependency between the two - yes, if the share the

same slot as the store buffers granularity then maybe a failed

store forward (due to _no_ dependency) may cause that issue?)



Note that for basic-block vectorization we want to even more

keep an eye on code-size, and the same cost model is used for

basic-block and loop SLP.



Richard.


[Bug target/56975] New: [regression] dllimport broken on i686-pc-cygwin

2013-04-16 Thread davek at gcc dot gnu.org

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

 Bug #: 56975
   Summary: [regression] dllimport broken on i686-pc-cygwin
Classification: Unclassified
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: da...@gcc.gnu.org


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

Attempting to reference a dllimported symbol with current HEAD causes an ICE
with an unrecognized insn.  This breaks bootstrap at stage1 building libgcc. 
Here's a testcase using stage1 cc1.exe from a failed build dir:

$ cat foo.i

void *foo (void);

__attribute__((dllimport)) void * __attribute__((__stdcall__)) bar(const char *
lpModuleName);

void *
foo (void)
{
  void *ptr = bar ((const char *)0);
  return ptr;
}

DKAdmin@ubik /gnu/gcc/obj/i686-pc-cygwin/libgcc
$ /gnu/gcc/obj/./gcc/cc1.exe -fpreprocessed foo.i -quiet  -mtune=generic
-march=i686 -auxbase-strip crtbegin.o -g -g -g0 -O2 -O2 -O2 -Wextra -Wall
-Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes
-Wmissing-prototypes -Wold-style-definition -version -finhibit-size-directive
-fno-inline -fno-exceptions -fno-zero-initialized-in-bss -fno-toplevel-reorder
-fno-tree-vectorize -fno-stack-protector -fno-omit-frame-pointer -o foo.s
GNU C (GCC) version 4.9.0 20130416 (experimental) (i686-pc-cygwin)
compiled by GNU C version 4.7.2, GMP version 4.3.2, MPFR version
3.0.1-p4, MPC version 0.8
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
GNU C (GCC) version 4.9.0 20130416 (experimental) (i686-pc-cygwin)
compiled by GNU C version 4.7.2, GMP version 4.3.2, MPFR version
3.0.1-p4, MPC version 0.8
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: 31da135ea647c81f0b254283fbd2bab6
foo.i: In function ‘foo’:
foo.i:11:1: error: unrecognizable insn:
 }
 ^
(insn 6 5 7 2 (set (reg:SI 61)
(symbol_ref:SI (bar@4) [flags 0x441] function_decl 0x7fdf9c00 bar))
foo.i:9 -1
 (nil))
foo.i:11:1: internal compiler error: in extract_insn, at recog.c:2150

foo.i:11:1: internal compiler error: Aborted
Aborted (core dumped)

DKAdmin@ubik /gnu/gcc/obj/i686-pc-cygwin/libgcc
$

[Bug fortran/50410] [4.7/4.8/4.9 Regression] ICE in record_reference

2013-04-16 Thread zeccav at gmail dot com


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



Vittorio Zecca zeccav at gmail dot com changed:



   What|Removed |Added



Version|4.7.0   |4.8.0



--- Comment #14 from Vittorio Zecca zeccav at gmail dot com 2013-04-16 
08:47:09 UTC ---

I still have the same bug on gfortran 4.8.0.


[Bug fortran/50406] ld undefined reference to __MOD_str

2013-04-16 Thread zeccav at gmail dot com


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



Vittorio Zecca zeccav at gmail dot com changed:



   What|Removed |Added



Version|4.7.0   |4.8.0



--- Comment #1 from Vittorio Zecca zeccav at gmail dot com 2013-04-16 
08:48:14 UTC ---

I still have the same bug on gfortran 4.8.0.


[Bug fortran/44348] ICE in build_function_decl

2013-04-16 Thread zeccav at gmail dot com


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



Vittorio Zecca zeccav at gmail dot com changed:



   What|Removed |Added



Version|4.5.0   |4.8.0



--- Comment #5 from Vittorio Zecca zeccav at gmail dot com 2013-04-16 
08:49:29 UTC ---

I still have the same bug on gfortran 4.8.0.

And a tree check if gfortran built with -fsanitize.


[Bug fortran/44350] accepts illegal fortran in BLOCK DATA

2013-04-16 Thread zeccav at gmail dot com


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



Vittorio Zecca zeccav at gmail dot com changed:



   What|Removed |Added



Version|4.5.0   |4.8.0



--- Comment #2 from Vittorio Zecca zeccav at gmail dot com 2013-04-16 
08:50:22 UTC ---

I still have the same bug on gfortran 4.8.0.

This is same as 50516.


[Bug fortran/56968] [4.7/4.8/4.9 Regression] [F03] Issue with a procedure defined with a generic name returning procedure pointer

2013-04-16 Thread janus at gcc dot gnu.org


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



--- Comment #7 from janus at gcc dot gnu.org 2013-04-16 08:50:35 UTC ---

(In reply to comment #6)

  I think you should directly use

  

  if (rvalue-value.function.esym)

s2 = rvalue-value.function.esym-result;

 

 yes, I also thought about this variant. Might indeed be the better choice.



Ok, I have verified that this also regtests cleanly and fixes the test case (as

expected). Will commit the following patch later today (unless further

suggestions come up):



Index: gcc/fortran/expr.c

===

--- gcc/fortran/expr.c(revision 197988)

+++ gcc/fortran/expr.c(working copy)

@@ -3540,7 +3540,11 @@ gfc_check_pointer_assign (gfc_expr *lvalue, gfc_ex

 }

   else if (rvalue-expr_type == EXPR_FUNCTION)

 {

-  s2 = rvalue-symtree-n.sym-result;

+  if (rvalue-value.function.esym)

+s2 = rvalue-value.function.esym-result;

+  else

+s2 = rvalue-symtree-n.sym-result;

+

   name = s2-name;

 }

   else


[Bug fortran/50069] FORALL fails on a character array

2013-04-16 Thread zeccav at gmail dot com


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



Vittorio Zecca zeccav at gmail dot com changed:



   What|Removed |Added



Version|4.6.1   |4.8.0



--- Comment #4 from Vittorio Zecca zeccav at gmail dot com 2013-04-16 
08:50:50 UTC ---

I still have the same bug on gfortran 4.8.0.


[Bug fortran/50392] SIGSEGV in gfc_trans_label_assign

2013-04-16 Thread zeccav at gmail dot com


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



Vittorio Zecca zeccav at gmail dot com changed:



   What|Removed |Added



Version|4.7.0   |4.8.0



--- Comment #6 from Vittorio Zecca zeccav at gmail dot com 2013-04-16 
08:51:08 UTC ---

I still have the same bug on gfortran 4.8.0.


[Bug fortran/50402] ICE in gfc_conv_expr_descriptor

2013-04-16 Thread zeccav at gmail dot com


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



Vittorio Zecca zeccav at gmail dot com changed:



   What|Removed |Added



Version|4.7.0   |4.8.0



--- Comment #1 from Vittorio Zecca zeccav at gmail dot com 2013-04-16 
08:51:27 UTC ---

I still have the same bug on gfortran 4.8.0.


[Bug fortran/50539] Internal error gfc_match_entry(): Bad state (r178939)

2013-04-16 Thread zeccav at gmail dot com


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



Vittorio Zecca zeccav at gmail dot com changed:



   What|Removed |Added



Version|4.7.0   |4.8.0



--- Comment #1 from Vittorio Zecca zeccav at gmail dot com 2013-04-16 
08:52:43 UTC ---

I still have the same bug on gfortran 4.8.0.


[Bug fortran/50541] gfortran should not accept a pointer as a generic-name (r178939)

2013-04-16 Thread zeccav at gmail dot com


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



Vittorio Zecca zeccav at gmail dot com changed:



   What|Removed |Added



Version|4.7.0   |4.8.0



--- Comment #4 from Vittorio Zecca zeccav at gmail dot com 2013-04-16 
08:53:16 UTC ---

I still have the same bug on gfortran 4.8.0.


[Bug fortran/56968] [4.7/4.8/4.9 Regression] [F03] Issue with a procedure defined with a generic name returning procedure pointer

2013-04-16 Thread burnus at gcc dot gnu.org


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



--- Comment #8 from Tobias Burnus burnus at gcc dot gnu.org 2013-04-16 
08:54:19 UTC ---

(In reply to comment #7)

 Ok, I have verified that this also regtests cleanly and fixes the test case 
 (as

 expected). Will commit the following patch later today (unless further

 suggestions come up):



Looks good to me (with a test case ;-). After committal, please copy the output

from your commit message at http://gcc.gnu.org/ml/gcc-cvs/current to the PR.

Thanks for the patch!


[Bug target/56975] [regression] dllimport broken on i686-pc-cygwin

2013-04-16 Thread ktietz at gcc dot gnu.org


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



Kai Tietz ktietz at gcc dot gnu.org changed:



   What|Removed |Added



 CC||ktietz at gcc dot gnu.org



--- Comment #1 from Kai Tietz ktietz at gcc dot gnu.org 2013-04-16 09:37:38 
UTC ---

Hmm, as this bug seems not to happen for mingw 32-bit, it might be related to

definition of DEFAULT_ABI for 32-bit.  Does it help to set in cygming.h header

the line '#define DEFAULT_ABI (TARGET_64BIT ? MS_ABI : SYSV_ABI)' to '#define

DEFAULT_ABI (TARGET_64BIT ? MS_ABI : MS_ABI)' ?

If so, we need an new definition to indicate pe-coff ABI instead.  At some

places we are using here check DEFAULT_ABI == MS_ABI etc, which might cause for

32-bit here the issue.  See for example the code in predicate.md, i386.c, etc.


[Bug target/55144] opening glibc-c.o: No such file or directory

2013-04-16 Thread mans at mansr dot com


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



Mans Rullgard mans at mansr dot com changed:



   What|Removed |Added



 CC||mans at mansr dot com



--- Comment #1 from Mans Rullgard mans at mansr dot com 2013-04-16 10:15:55 
UTC ---

This fixes this problem (still fails building libgcc) for bfin-uclibc:



--- a/gcc/config.gcc

+++ b/gcc/config.gcc

@@ -966,7 +966,7 @@ bfin*-uclinux*)

;;

 bfin*-linux-uclibc*)

tm_file=${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h

glibc-stdint.h bfin/linux.h ./linux-sysroot-suffix.h

-   tmake_file=bfin/t-bfin-linux t-slibgcc

+   tmake_file=${tmake_file} bfin/t-bfin-linux t-slibgcc

use_collect2=no

;;

 bfin*-rtems*)


[Bug c++/56976] New: using braces to initialize a reference forces copy construction

2013-04-16 Thread akim.demaille at gmail dot com


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



 Bug #: 56976

   Summary: using braces to initialize a reference forces copy

construction

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: c++

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: akim.demai...@gmail.com





Hi all,



I hope this is not yet another buggy bug report.  I have browsed the draft (I

don't have the current standard), and saw nothing clear cut, yet the principle

of least surprise tends to think this is really a bug.



Below, using braces to initialize a const-ref forces a call to a

copy-constructor.  clang compiles this without error/warning.  Cheers!





$ cat bar.cc

struct bar

{

  bar() = default;

  bar(const bar) = delete;

};



int main()

{

  bar b;

  const bar b1_(b);

  const bar b2_{b};

}

$ g++-mp-4.8 -std=c++11 -Wall -Wno-unused-variable bar.cc

bar.cc: In function 'int main()':

bar.cc:11:19: error: use of deleted function 'bar::bar(const bar)'

   const bar b2_{b};

   ^

bar.cc:4:3: error: declared here

   bar(const bar) = delete;

   ^

$ clang++-mp-3.2 -std=c++11 -Wall bar.cc -Wno-unused-variable

$


[Bug c/56977] New: gcc -Og incorrectly warns about 'constant zero length parameter'

2013-04-16 Thread baugesta at cisco dot com

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

 Bug #: 56977
   Summary: gcc -Og incorrectly warns about 'constant zero length
parameter'
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: bauge...@cisco.com


Created attachment 29881
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=29881
Preprocessed version of snippet in the Description field.

Compiling this tiny snippet with the command 'gcc -v -Og' produces an incorrect
warning about zero length parameter:

#include string.h

void foo(char *buf, size_t w, size_t h)
{
size_t n = w * h;
if (n  0)
memset(buf, 123, n);
}

The warning looks like this:
/usr/include/bits/string3.h:81:30: warning: call to ‘__warn_memset_zero_len’
declared with attribute warning: memset used with constant zero length
parameter; this could be due to transposed parameters [enabled by default]
   __warn_memset_zero_len ();


Output from gcc -v:
$ gcc -v
Using built-in specs.
COLLECT_GCC=/usr/x86_64-pc-linux-gnu/gcc-bin/4.8.0/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/4.8.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /var/tmp/portage/sys-devel/gcc-4.8.0/work/gcc-4.8.0/configure
--prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/4.8.0
--includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/include
--datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.8.0
--mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.8.0/man
--infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.8.0/info
--with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0/include/g++-v4
--host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-altivec
--disable-fixed-point --without-ppl --without-cloog --enable-lto --enable-nls
--without-included-gettext --with-system-zlib --enable-obsolete
--disable-werror --enable-secureplt --enable-multilib
--with-multilib-list=m32,m64 --enable-libmudflap --disable-libssp
--enable-libgomp
--with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/4.8.0/python
--enable-checking=release --disable-libgcj --enable-libstdcxx-time
--disable-libquadmath --enable-languages=c,c++,objc --enable-shared
--enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu
--enable-targets=all --with-bugurl=http://bugs.gentoo.org/
--with-pkgversion='Gentoo 4.8.0 p1.1, pie-0.5.5'
Thread model: posix
gcc version 4.8.0 (Gentoo 4.8.0 p1.1, pie-0.5.5)

[Bug middle-end/56978] New: memset-chk.c failure since r197671

2013-04-16 Thread krebbel at gcc dot gnu.org

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

 Bug #: 56978
   Summary: memset-chk.c failure since r197671
Classification: Unclassified
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: kreb...@gcc.gnu.org


/home/andreas/clean/gcc-head-build/gcc/xgcc
-B/home/andreas/clean/gcc-head-build/gcc/
/home/andreas/clean/gcc-head/gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk.c
/home/andreas/clean/gcc-head/gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk-lib.c
/home/andreas/clean/gcc-head/gcc/testsuite/gcc.c-torture/execute/builtins/lib/main.c
-fno-diagnostics-show-caret -w -O3 -fomit-frame-pointer -funroll-loops
-fno-tree-loop-distribute-patterns -lm -o
/home/andreas/clean/gcc-head-build/gcc/testsuite/gcc5/memset-chk.x

/home/andreas/clean/gcc-head/gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk.c:
In function ‘test5’:
/home/andreas/clean/gcc-head/gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk.c:552:1:
internal compiler error: in emit_move_insn_1, at expr.c:3428
0x802f712b emit_move_insn_1(rtx_def*, rtx_def*)
/home/andreas/clean/gcc-head/gcc/expr.c:3428
0x802f71c5 emit_move_insn(rtx_def*, rtx_def*)
/home/andreas/clean/gcc-head/gcc/expr.c:3526
0x802d68bb force_reg
/home/andreas/clean/gcc-head/gcc/explow.c:676
0x802f8053 convert_move(rtx_def*, rtx_def*, int)
/home/andreas/clean/gcc-head/gcc/expr.c:590
0x802f87b9 convert_modes(machine_mode, machine_mode, rtx_def*, int)
/home/andreas/clean/gcc-head/gcc/expr.c:781
0x804bd919 expand_binop_directly
/home/andreas/clean/gcc-head/gcc/optabs.c:1427
0x804bb57f expand_binop(machine_mode, optab_tag, rtx_def*, rtx_def*, rtx_def*,
int, optab_methods)
/home/andreas/clean/gcc-head/gcc/optabs.c:1543
0x804bd70d expand_simple_binop(machine_mode, rtx_code, rtx_def*, rtx_def*,
rtx_def*, int, optab_methods)
/home/andreas/clean/gcc-head/gcc/optabs.c:1291
0x802fb645 force_operand(rtx_def*, rtx_def*)
/home/andreas/clean/gcc-head/gcc/expr.c:7054
0x8094d3c3 doloop_modify
/home/andreas/clean/gcc-head/gcc/loop-doloop.c:480
0x8094d3c3 doloop_optimize
/home/andreas/clean/gcc-head/gcc/loop-doloop.c:750
0x8094d3c3 doloop_optimize_loops()
/home/andreas/clean/gcc-head/gcc/loop-doloop.c:764
0x804549d7 rtl_doloop
/home/andreas/clean/gcc-head/gcc/loop-init.c:543
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See http://gcc.gnu.org/bugs.html for instructions.

Reghunt indicates that the error has been introduced with:

2013-04-10  Richard Biener  rguent...@suse.de

* passes.c (execute_todo): Do not call ggc_collect conditional here.
(execute_one_ipa_transform_pass): But unconditionally here.
(execute_one_pass): And here.
(init_optimization_passes): Remove reload pass.
* tree-pass.h (TODO_ggc_collect): Remove.
(pass_reload): Likewise.
* ira.c (do_reload): Merge into ...
(ira): ... this.
(rest_of_handle_reload): Remove.
(pass_reload): Likewise.
* config/i386/i386.c (ix86_option_override): Refer to ira instead
of reload for vzeroupper pass placement.
* everywhere: Remove TODO_ggc_collect from todo_flags_start
and todo_flags_finish of all passes.

* g++.dg/pr55604.C: Use -fdump-rtl-ira.

[Bug fortran/56969] [4.9 Regression] ISO_C_BINDING regression with current trunk

2013-04-16 Thread burnus at gcc dot gnu.org


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



--- Comment #3 from Tobias Burnus burnus at gcc dot gnu.org 2013-04-16 
11:13:34 UTC ---

Draft patch:



--- a/gcc/fortran/intrinsic.c

+++ b/gcc/fortran/intrinsic.c

@@ -4238,3 +4238,4 @@ got_specific:

   expr-value.function.isym = specific;

-  gfc_intrinsic_symbol (expr-symtree-n.sym);

+  if (!expr-symtree-n.sym-module)

+gfc_intrinsic_symbol (expr-symtree-n.sym);


[Bug middle-end/56978] memset-chk.c failure since r197671

2013-04-16 Thread rguenth at gcc dot gnu.org


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



--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org 2013-04-16 
11:13:46 UTC ---

Related to PR56921?  Can you try the attached patch?


[Bug tree-optimization/56756] [4.9 Regression] ICE: verify_ssa failed (definition in block n follows the use !)

2013-04-16 Thread rguenth at gcc dot gnu.org


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



--- Comment #10 from Richard Biener rguenth at gcc dot gnu.org 2013-04-16 
11:56:26 UTC ---

The issue is that



static void

execute_sm (struct loop *loop, vecedge exits, mem_ref_p ref)

{

...

  /* Emit the load code into the latch, so that we are sure it will

 be processed after all dependencies.  */

  latch_edge = loop_latch_edge (loop);



is no longer working.  It wasn't working by design before either.

We temporarily create



header ---\

   | |

  if ()  |

 /   \   |

 _17 = *q_8(D);  |

 \   /   |

 D__lsm.5 = *_17;-



that is invalid SSA form and expect a dominator walk to visit

_17 = *q_8(D) before visiting D__lsm.5 = *_17;



So a simpler fix than the attached one finds a better temporary

insertion place for D__lsm.5 =  *_17;



Placing the load at a random existing load or store would be the

best.  I'm reworking the patch to do that.


[Bug target/56979] New: ICE in output_operand: invalid operand for code 'P'

2013-04-16 Thread mgretton at gcc dot gnu.org

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

 Bug #: 56979
   Summary: ICE in output_operand: invalid operand for code 'P'
Classification: Unclassified
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: mgret...@gcc.gnu.org


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

The attached testcase causes the following ICE when compiled as shown:

$ arm-none-linux-gnueabi-g++ -fsigned-char -march=armv7-a -mfloat-abi=hard
-mfpu=neon -ftree-vectorize -fPIC besttry.c
besttry.c: In function ‘float2 operator-(float, float2)’:
besttry.c:7:1: internal compiler error: output_operand: invalid operand for
code 'P'
 }
 ^
0x86acde output_operand_lossage(char const*, ...)
/work/sources/gcc-fsf/master/gcc/final.c:3303
0xcdf7ba arm_print_operand
/work/sources/gcc-fsf/master/gcc/config/arm/arm.c:18336
0x86ad2e output_operand(rtx_def*, int)
/work/sources/gcc-fsf/master/gcc/final.c:3725
0x86b70b output_asm_insn
/work/sources/gcc-fsf/master/gcc/final.c:3604
0x86b70b output_asm_insn(char const*, rtx_def**)
/work/sources/gcc-fsf/master/gcc/final.c:3493
0xcd6864 output_move_vfp(rtx_def**)
/work/sources/gcc-fsf/master/gcc/config/arm/arm.c:15383
0x86c6e8 final_scan_insn(rtx_def*, _IO_FILE*, int, int, int*)
/work/sources/gcc-fsf/master/gcc/final.c:2853
0x86da15 final(rtx_def*, _IO_FILE*, int)
/work/sources/gcc-fsf/master/gcc/final.c:1957
0x86de29 rest_of_handle_final
/work/sources/gcc-fsf/master/gcc/final.c:4332

Issue also seen on 4.7, and 4.8.

arm-none-linux-g++ -v: 
Using built-in specs.
COLLECT_GCC=/work/builds/gcc-fsf-master/tools/bin/arm-none-linux-gnueabi-g++
COLLECT_LTO_WRAPPER=/work/builds/gcc-fsf-master/tools/libexec/gcc/arm-none-linux-gnueabi/4.9.0/lto-wrapper
Target: arm-none-linux-gnueabi
Configured with: /work/sources/gcc-fsf/master/configure
--target=arm-none-linux-gnueabi --prefix=/work/builds/gcc-fsf-master/tools
--with-sysroot=/work/builds/gcc-fsf-master/sysroot-arm-none-linux-gnueabi
--disable-libssp --disable-libgomp --disable-libmudflap
--enable-languages=c,c++ --with-arch=armv7-a --with-fpu=vfpv3-d16
--with-float=softfp --with-thumb : (reconfigured)
/work/sources/gcc-fsf/master/configure --target=arm-none-linux-gnueabi
--prefix=/work/builds/gcc-fsf-master/tools
--with-sysroot=/work/builds/gcc-fsf-master/sysroot-arm-none-linux-gnueabi
--disable-libssp --disable-libgomp --disable-libmudflap --with-arch=armv7-a
--with-fpu=vfpv3-d16 --with-float=softfp --with-thumb
target_alias=arm-none-linux-gnueabi CC=gcc --enable-languages=c,c++,lto
--no-create --no-recursion
Thread model: posix
gcc version 4.9.0 20130416 (experimental) (GCC)

[Bug target/56979] ICE in output_operand: invalid operand for code 'P'

2013-04-16 Thread mgretton at gcc dot gnu.org


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



--- Comment #1 from mgretton at gcc dot gnu.org 2013-04-16 12:45:38 UTC ---

Command line can be further reduced to



$ arm-none-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=hard -mfpu=neon

reduced-testcase.c


[Bug target/56979] ICE in output_operand: invalid operand for code 'P'

2013-04-16 Thread ktkachov at gcc dot gnu.org


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



ktkachov at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-04-16

 CC||ktkachov at gcc dot gnu.org

  Known to work||4.6.4

 Ever Confirmed|0   |1

  Known to fail||4.7.3, 4.8.0, 4.9.0



--- Comment #2 from ktkachov at gcc dot gnu.org 2013-04-16 13:13:42 UTC ---

Reproduced on arm-none-eabi with trunk, 4.8, 4.7.

4.6 does not ICE.


[Bug c++/56857] Crash in resolve_args

2013-04-16 Thread rmansfield at qnx dot com


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



--- Comment #3 from Ryan Mansfield rmansfield at qnx dot com 2013-04-16 
13:35:47 UTC ---

(In reply to comment #2)

 ICE started happening at rev196747

 

 http://gcc.gnu.org/viewcvs/gcc?view=revisionrevision=196747



ICE no longer happens after rev197811



http://gcc.gnu.org/viewcvs/gcc?view=revisionrevision=197811


[Bug ada/40986] [4.6 regression] Assert_Failure sinfo.adb:360, error detected at a-unccon.ads:23:27

2013-04-16 Thread markus.schoepflin at comsoft dot de

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

--- Comment #13 from Markus Schöpflin markus.schoepflin at comsoft dot de 
2013-04-16 13:38:21 UTC ---
I get a different result for the 4.7 branch (built from gcc.git with configure
--disable-bootstrap --disable-nls --enable-languages=ada):

- PATH=/var/tmp/build/gcc:$PATH ADA_INCLUDE_PATH=/var/tmp/build/gcc/ada/rts
xgcc -v -c -I/var/tmp/test -gnato -gnatwl -gnatwauJF -gnatef -g
-fno-strict-aliasing -gnatwA -I- /var/tmp/test/test.adb
Using built-in specs.
COLLECT_GCC=xgcc
Target: i686-pc-linux-gnu
Configured with: /var/tmp/gcc.git/configure --disable-bootstrap --disable-nls
--enable-languages=ada
Thread model: posix
gcc version 4.7.4 20130415 (prerelease) (GCC) 
COLLECT_GCC_OPTIONS='-v' '-c' '-I' '/var/tmp/test' '-gnato' '-gnatwl'
'-gnatwauJF' '-gnatef' '-g' '-fno-strict-aliasing' '-gnatwA' '-I' '-'
'-mtune=generic' '-march=pentiumpro'
 gnat1 -I /var/tmp/test -I - -quiet -dumpbase test.adb -auxbase test
-fno-strict-aliasing -gnato -gnatwl -gnatwauJF -gnatef -g -gnatwA
-mtune=generic -march=pentiumpro /var/tmp/test/test.adb -o /tmp/cckbceia.s
+===GNAT BUG DETECTED==+
| 4.7.4 20130415 (prerelease) (i686-pc-linux-gnu) Assert_Failure sinfo.adb:388|
| Error detected at a-unccon.ads:23:27 |
| Please submit a bug report; see http://gcc.gnu.org/bugs.html.|
| Use a subject line meaningful to you and us to track the bug.|
| Include the entire contents of this bug box in the report.   |
| Include the exact gcc or gnatmake command that you entered.  |
| Also include sources listed below in gnatchop format |
| (concatenated together with no headers between files).   |
+==+

Please include these source files with error report
Note that list may not be accurate in some cases,
so please double check that the problem can still
be reproduced with the set of files listed.
Consider also -gnatd.n switch (see debug.adb).

/var/tmp/build/gcc/ada/rts/system.ads
/var/tmp/test/test.adb
/var/tmp/test/language.ads
/var/tmp/build/gcc/ada/rts/s-auxdec.ads
/var/tmp/build/gcc/ada/rts/ada.ads
/var/tmp/build/gcc/ada/rts/a-unccon.ads

compilation abandoned

[Bug middle-end/56978] memset-chk.c failure since r197671

2013-04-16 Thread krebbel at gcc dot gnu.org


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



Andreas Krebbel krebbel at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 Resolution||DUPLICATE



--- Comment #2 from Andreas Krebbel krebbel at gcc dot gnu.org 2013-04-16 
13:40:27 UTC ---

The patch from PR56921 fixes the issue on S/390. Thanks!



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


[Bug rtl-optimization/56921] [4.9 Regression] ICE in rtx_cost called by doloop_optimize_loops for PPC

2013-04-16 Thread krebbel at gcc dot gnu.org


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



Andreas Krebbel krebbel at gcc dot gnu.org changed:



   What|Removed |Added



 CC||krebbel at gcc dot gnu.org



--- Comment #14 from Andreas Krebbel krebbel at gcc dot gnu.org 2013-04-16 
13:40:27 UTC ---

*** Bug 56978 has been marked as a duplicate of this bug. ***


[Bug ada/40986] [4.6 regression] Assert_Failure sinfo.adb:360, error detected at a-unccon.ads:23:27

2013-04-16 Thread markus.schoepflin at comsoft dot de

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

--- Comment #14 from Markus Schöpflin markus.schoepflin at comsoft dot de 
2013-04-16 13:45:13 UTC ---
Note that the error only shows up when language.ads contains the two pragmas as
given in the first note. They are removed when the test case is processed by
gnatchop, so you have to make sure that you are using a valid test case.

[Bug c/56980] New: Misleading note

2013-04-16 Thread jakub at gcc dot gnu.org

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

 Bug #: 56980
   Summary: Misleading note
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: ja...@gcc.gnu.org
CC: m...@gcc.gnu.org


Starting with http://gcc.gnu.org/r139729 we get:
typedef struct A { int i; } B;
void foo (B *);

void bar (B *x)
{
  foo ((struct B *) x);
}
rh952692.c:2:6: note: expected ‘struct B *’ but argument is of type ‘struct B
*’
which is misleading, it should be either B * or struct A * in the first case.

[Bug fortran/56981] New: Slow I/O: Unformatted 5x slower, large sys component; formatted slow as well

2013-04-16 Thread burnus at gcc dot gnu.org


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



 Bug #: 56981

   Summary: Slow I/O: Unformatted 5x slower, large sys component;

formatted slow as well

Classification: Unclassified

   Product: gcc

   Version: 4.9.0

Status: UNCONFIRMED

  Keywords: missed-optimization

  Severity: normal

  Priority: P3

 Component: fortran

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: bur...@gcc.gnu.org

CC: j...@gcc.gnu.org, jvdeli...@gcc.gnu.org





Found at

https://groups.google.com/forum/?fromgroups=#!topic/comp.lang.fortran/ORw0Y2k2CI4

 The following examples are taken from Robert Corbett.



The large amount spend in system for unformatted I/O is surprising, compared

with other compilers. But in general, unformatted I/O is much slower.

(Formatted I/O is slow as well.)





 Timing in sec 

Unformatted  Formatted

real / user  real / user  Compiler

---  ---  -

1.467/0.448  3.205/2.780  GCC 4.8.0 (-Ofast, 20130308, Rev. 196547)

0.309/0.308  1.297/1.296  g95 4.0.3 (g95 0.93!) Aug 17 2010 (-O3)

0.199/0.188  0.562/0.548  Sun Fortran 95 8.3 Linux_i386 2007/05/03

0.177/0.172  0.904/0.900  PathScale 3.2.99

0.177/0.176  2.201/2.200  NAGWare Fortran 5.1

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

0.578/0.205  1.229/1.121  GCC 4.9 (trunk, -Ofast)

0.115/0.113  0.517/0.513  g95 4.0.3 (g95 0.94!) Dec 17 2012

0.130/0.129  0.522/0.517  PathScale EKOPath 4.9.0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

1.035/0.524  3.014/2.928  GCC 4.7.2 20120920 (Cray Inc.)

0.194/0.184  0.634/0.632  Cray Fortran : Version 8.1.6

0.372/0.260  0.703/0.564  Intel 64, Version 13.1.1.163

0.437/0.432  0.938/0.932  pgf90 12.10-0

---





  PROGRAM MAIN

REAL X

OPEN (10, FILE='/dev/null', FORM='FORMATTED')

X = 0.0

DO 10 I = 1, 100

  WRITE (10, '(E13.7)') X

  X = X + 1.0

   10   CONTINUE

  END



---



  PROGRAM MAIN

REAL X

OPEN (10, FILE='/dev/null', FORM='UNFORMATTED')

X = 0.0

DO 10 I = 1, 100

  WRITE (10) X

  X = X + 1.0

   10   CONTINUE

  END


[Bug fortran/56969] [4.9 Regression] ISO_C_BINDING regression with current trunk

2013-04-16 Thread burnus at gcc dot gnu.org


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



--- Comment #4 from Tobias Burnus burnus at gcc dot gnu.org 2013-04-16 
14:18:12 UTC ---





Author: burnus

Date: Tue Apr 16 14:17:15 2013

New Revision: 198000



URL: http://gcc.gnu.org/viewcvs?rev=198000root=gccview=rev

Log:

2013-04-16  Tobias Burnus  bur...@net-b.de



PR fortran/56969

* intrinsic.c (gfc_intrinsic_func_interface): Don't set

module name to (intrinsic) for intrinsics from intrinsic

modules.



2013-04-16  Tobias Burnus  bur...@net-b.de



PR fortran/56969

* gfortran.dg/c_assoc_5.f90: New.





Added:

trunk/gcc/testsuite/gfortran.dg/c_assoc_5.f90

Modified:

trunk/gcc/fortran/ChangeLog

trunk/gcc/fortran/intrinsic.c

trunk/gcc/testsuite/ChangeLog


[Bug fortran/56969] [4.9 Regression] ISO_C_BINDING regression with current trunk

2013-04-16 Thread burnus at gcc dot gnu.org


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



Tobias Burnus burnus at gcc dot gnu.org changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||FIXED



--- Comment #5 from Tobias Burnus burnus at gcc dot gnu.org 2013-04-16 
14:18:35 UTC ---

FIXED.



Thanks for the report!


[Bug tree-optimization/56982] New: Bad optimization with setjmp()

2013-04-16 Thread jdemeyer at cage dot ugent.be


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



 Bug #: 56982

   Summary: Bad optimization with setjmp()

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: tree-optimization

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: jdeme...@cage.ugent.be

Target: x86_64-pc-linux-gnu





Created attachment 29883

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=29883

Bug program



Compile the example program with gcc -Og jmp.c -o jmp



Run the program ./jmp and the output is



Returning 1

x = 0, n = 1

Returning 0

x = 42, n = 1

Aborted



The function g() is returning 0 the second time (after longjmp()) but the

return value, assigned to n, equals 1. With other optimization levels or with

earlier versions of gcc or with -Og -fno-tree-dominator-opts, the output is

what I expect:



Returning 1

x = 0, n = 1

Returning 0

x = 42, n = 0



This is with gcc version 4.8.0, GNU libc version 2.15.


[Bug tree-optimization/56982] Bad optimization with setjmp()

2013-04-16 Thread jdemeyer at cage dot ugent.be


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



--- Comment #1 from Jeroen Demeyer jdemeyer at cage dot ugent.be 2013-04-16 
14:31:54 UTC ---

Created attachment 29884

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=29884

Bug program (preprocessed)


[Bug target/56897] unaligned memory access on alpha

2013-04-16 Thread ubizjak at gmail dot com


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



--- Comment #7 from Uros Bizjak ubizjak at gmail dot com 2013-04-16 15:15:14 
UTC ---

(In reply to comment #4)

 Hi,

 

 (In reply to comment #3)

  Please create a self-sufficient executable testcase, following the 
  instructions

  at [1]. I was not able to confirm the problem from the lines you posted.

 

 Thanks for the feedback, Uros.  Did you try it together with the frame 

 growing downwards diff posted in #56898?  If so, the locals are actually

 at the negative offsets and unaligned loads like foo%8-5 will expose this,

 instead of foo%8-1.



No, I am using unpatched compiler. Compiling your ab-pre.tgz test, I got:



~/gcc-build-47/gcc/xgcc -B ~/gcc-build-47/gcc -O a.c

uros@monolith ~/test $ ./a.out

0d0a

0d0a0401

0d0a0401



~/gcc-build-47/gcc/xgcc -B ~/gcc-build-47/gcc -O -mcpu=ev4 a.c

uros@monolith ~/test $ ./a.out

0d0a

0d0a0401

0d0a0401



with:



GNU C (GCC) version 4.7.3 20130228 (prerelease) [gcc-4_7-branch revision

196343] (alphaev68-unknown-linux-gnu)



and the same result (with the same flags) with:



GNU C (GCC) version 4.9.0 20130407 (experimental) [trunk revision 197551]

(alphaev68-unknown-linux-gnu)



The compilers imply -mcpu=ev67 when invoked without -mcpu command.


[Bug fortran/56981] Slow I/O: Unformatted 5x slower, large sys component; formatted slow as well

2013-04-16 Thread burnus at gcc dot gnu.org


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



Tobias Burnus burnus at gcc dot gnu.org changed:



   What|Removed |Added



 CC||burnus at gcc dot gnu.org



--- Comment #1 from Tobias Burnus burnus at gcc dot gnu.org 2013-04-16 
15:20:20 UTC ---

For unformatted pathf95 and g95 have (top 10 entries of strace):

  3 brk   4 close

  3 getrlimit 4 ioctl

  8 read  4 rt_sigaction

 10 close 6 fstat

 13 fstat 6 mprotect

 20 mprotect  7 brk

 21 stat 10 mmap

 22 mmap 17 stat

 46 open 23 open

367 write   734 write



gfortran has the following syscalls, which are at least invoked twice:

  3 brk

  5 read

  7 close

 10 rt_sigaction

 11 access

 11 fstat

 12 mprotect

 16 stat

 18 mmap

 26 open

200 lseek

400 write


[Bug c/56980] Misleading note

2013-04-16 Thread manu at gcc dot gnu.org

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

--- Comment #1 from Manuel López-Ibáñez manu at gcc dot gnu.org 2013-04-16 
15:24:46 UTC ---
Confirmed, but I seriously doubt it has anything to do with my patch. At the
moment of warning we get:

(gdb) p debug_tree(type)
 pointer_type 0x77511540
type record_type 0x77511498 B type_0 SI
size integer_cst 0x7740f0c0 constant 32
unit size integer_cst 0x7740f0e0 constant 4
align 32 symtab 0 alias set -1 canonical type 0x775113f0
fields field_decl 0x774195f0 i type integer_type 0x7740c5e8
int
SI file /home/manuel/pr56980.c line 1 col 24 size integer_cst
0x7740f0c0 32 unit size integer_cst 0x7740f0e0 4
align 32 offset_align 128
offset integer_cst 0x773f7d80 constant 0
bit offset integer_cst 0x773f7e00 constant 0 context
record_type 0x775113f0 A
pointer_to_this pointer_type 0x77511540 chain type_decl
0x7752a000 D.1714
unsigned DI
size integer_cst 0x773f7d40 type integer_type 0x7740c0a8
bitsizetype constant 64
unit size integer_cst 0x773f7d60 type integer_type 0x7740c000
sizetype constant 8
align 64 symtab 0 alias set -1 canonical type 0x775115e8
$9 = void
(gdb) p debug_tree(rhstype)
 pointer_type 0x775119d8
type record_type 0x77511930 B VOID
align 8 symtab 0 alias set -1 canonical type 0x77511930 context
function_decl 0x77510a00 bar
pointer_to_this pointer_type 0x775119d8 chain type_decl
0x7752a170 D.1722
unsigned DI
size integer_cst 0x773f7d40 type integer_type 0x7740c0a8
bitsizetype constant 64
unit size integer_cst 0x773f7d60 type integer_type 0x7740c000
sizetype constant 8
align 64 symtab 0 alias set -1 canonical type 0x775119d8

which seem correct to me, so the pretty-printer is printing the wrong thing and
not unwrapping the typedef as it should.

[Bug c/56980] Misleading note

2013-04-16 Thread manu at gcc dot gnu.org

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

Manuel López-Ibáñez manu at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-04-16
 Ever Confirmed|0   |1

--- Comment #2 from Manuel López-Ibáñez manu at gcc dot gnu.org 2013-04-16 
15:25:58 UTC ---
I think I have seen similar bugs in the pretty-printer with typedefs.

BTW, Clang gets it perfect:

pr56980.c:6:8: warning: incompatible pointer types passing 'struct B *' to
parameter of type 'B *' (aka 'struct A *') [-Wincompatible-pointer-types]
  foo ((struct B *) x);
   ^~
pr56980.c:2:14: note: passing argument to parameter here
void foo (B *);
 ^
pr56980.c:11:7: warning: incompatible pointer types initializing 'B *' (aka
'struct A *') with an expression of type 'struct B *'
[-Wincompatible-pointer-types]
  B * y = (struct B *) x;
  ^   ~~

[Bug c/56980] Misleading note

2013-04-16 Thread manu at gcc dot gnu.org

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

Manuel López-Ibáñez manu at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||diagnostic

--- Comment #3 from Manuel López-Ibáñez manu at gcc dot gnu.org 2013-04-16 
15:33:16 UTC ---
void baz (B *x)
{
  int y = x  x;
}

/home/manuel/pr56980.c:11:13: error: invalid operands to binary  (have
‘struct B *’ and ‘struct B *’)
   int y = x  x;
 ^

The C pretty-printer cannot deal correctly with pointers to typedefs of
structs.

[Bug c/56980] Misleading note

2013-04-16 Thread manu at gcc dot gnu.org

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

--- Comment #4 from Manuel López-Ibáñez manu at gcc dot gnu.org 2013-04-16 
15:34:56 UTC ---
while the C++ pretty-printer can:

pr56980.c:4:16: error: invalid operands of types ‘B* {aka A*}’ and ‘B* {aka
A*}’ to binary ‘operator’
   int y = x  x;
^

[Bug tree-optimization/56756] [4.9 Regression] ICE: verify_ssa failed (definition in block n follows the use !)

2013-04-16 Thread rguenth at gcc dot gnu.org


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



Richard Biener rguenth at gcc dot gnu.org changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #11 from Richard Biener rguenth at gcc dot gnu.org 2013-04-16 
15:41:05 UTC ---

Author: rguenth

Date: Tue Apr 16 15:32:26 2013

New Revision: 198001



URL: http://gcc.gnu.org/viewcvs?rev=198001root=gccview=rev

Log:

2013-04-16  Richard Biener  rguent...@suse.de



PR tree-optimization/56756

* tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.

(first_mem_ref_loc): New.

(execute_sm): Place the load temporarily before a previous

access instead of in the latch edge to ensure its SSA dependencies

are defined at points dominating the load.



* gcc.dg/torture/pr56756.c: New testcase.



Added:

trunk/gcc/testsuite/gcc.dg/torture/pr56756.c

Modified:

trunk/gcc/ChangeLog

trunk/gcc/testsuite/ChangeLog

trunk/gcc/tree-ssa-loop-im.c


[Bug c/48778] gcc 4.6 -Waddress adds unhelpful new warning case when using from a macro

2013-04-16 Thread manu at gcc dot gnu.org

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

Manuel López-Ibáñez manu at gcc dot gnu.org changed:

   What|Removed |Added

 CC||manu at gcc dot gnu.org

--- Comment #2 from Manuel López-Ibáñez manu at gcc dot gnu.org 2013-04-16 
15:41:37 UTC ---
We have the capability to do this now since GCC 4.7, but someone needs to
implement it for this case.

[Bug c/52825] incorrect message for incompatible pointer type with extra struct for a typedeffed struct

2013-04-16 Thread manu at gcc dot gnu.org

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

Manuel López-Ibáñez manu at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||manu at gcc dot gnu.org
 Resolution||DUPLICATE

--- Comment #2 from Manuel López-Ibáñez manu at gcc dot gnu.org 2013-04-16 
15:41:51 UTC ---
Dup

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

[Bug c/56980] Misleading note

2013-04-16 Thread manu at gcc dot gnu.org

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

Manuel López-Ibáñez manu at gcc dot gnu.org changed:

   What|Removed |Added

 CC||guest at mailinator dot com

--- Comment #5 from Manuel López-Ibáñez manu at gcc dot gnu.org 2013-04-16 
15:41:51 UTC ---
*** Bug 52825 has been marked as a duplicate of this bug. ***

[Bug c++/53822] Diagnostic: spell out type in ambiguous call

2013-04-16 Thread manu at gcc dot gnu.org

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

Manuel López-Ibáñez manu at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-04-16
 CC||manu at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #2 from Manuel López-Ibáñez manu at gcc dot gnu.org 2013-04-16 
15:46:30 UTC ---
We could say something like 'f(NT) with [NT = unsigned]' like we do for
templates.

[Bug tree-optimization/56982] [4.8/4.9 Regression] Bad optimization with setjmp()

2013-04-16 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-04-16

 CC||jakub at gcc dot gnu.org

   Target Milestone|--- |4.8.1

Summary|Bad optimization with   |[4.8/4.9 Regression] Bad

   |setjmp()|optimization with setjmp()

 Ever Confirmed|0   |1



--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2013-04-16 
15:46:43 UTC ---

Also happens with -Os.  Started with http://gcc.gnu.org/r190284

Eyeballing the difference between r190283 and r190284 -Os dumps, I see that

*.copyrename4 is still the same appart from losing some SSA_NAME_VARs, but

*.uncprop has one difference:

-  # n_13 = PHI 0(5), 1(6)

+  # _13 = PHI _3(5), 1(6)



The missing n is fine, but _3 instead of 0 there supposedly isn't.

_3 is set before the setjmp call, while this PHI is after the returns-twice

function, and while for non-zero _3 the code before setjmp exits early, so _3

should contain 0, perhaps while extending the lifetime of _3 over the returns

twice function it should have added SSA_NAME_OCCURS_IN_ABNORMAL_PHI or give up

on it.  Richard, can you please have a look?


[Bug tree-optimization/56982] [4.8/4.9 Regression] Bad optimization with setjmp()

2013-04-16 Thread jakub at gcc dot gnu.org


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



--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2013-04-16 
16:04:10 UTC ---

At RTL time (besides it being a pessimization), the thing is that _3 is

assigned a pseudo (compared to before the change, where it had only a single

use and thus has been TERed), that pseudo is initialized from *e, and

initialized to 1 in the bb where the PHI had 1, and the pseudo is spilled to

the stack.  So it will initially contain the 0 value (correct), then that is

overwritten with 1 (fine for the first setjmp returning case), but when setjmp

returns second time, the value is still 1 rather than 0.



So the questions are:

- is it desirable that uncprop does anything to SSA_NAME_VAR == NULL phis?

- shouldn't something like that be not performed if current function calls

setjmp (or more narrowly, if there is a returns twice function somewhere in

between the considered setter and user)?

- what other optimizations might be similarly problematic across returns twice

calls?


[Bug fortran/56386] [F03] ICE with ASSOCIATE construct and an derived type array component

2013-04-16 Thread burnus at gcc dot gnu.org


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



Tobias Burnus burnus at gcc dot gnu.org changed:



   What|Removed |Added



   Keywords||rejects-valid

 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-04-16

 CC||burnus at gcc dot gnu.org

 Ever Confirmed|0   |1



--- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org 2013-04-16 
17:17:52 UTC ---

Related test case by the bug reporterm

https://groups.google.com/forum/?fromgroups=#!topic/comp.lang.fortran/UvBX1kfuFqs





This time rejecting the code instead of ICEing:



   print *,x%i

 1

Error: Symbol 'x' at (1) has no IMPLICIT type







program p

  type t

integer :: i = 0

  end type



  associate (x=f())

print *,x%i

  end associate



  contains

function f()

  type(t) f

  f%i = 5

end function

end program


[Bug fortran/56386] [F03] ICE with ASSOCIATE construct and an derived type array component

2013-04-16 Thread vladimir.fuka at gmail dot com


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



--- Comment #3 from Vladimir Fuka vladimir.fuka at gmail dot com 2013-04-16 
17:40:04 UTC ---

Thanks, I didn't realize they might be connected. I even forgotten I have

this bug opened when I asked.



  Vladimir

Dne 16.4.2013 19:17 burnus at gcc dot gnu.org gcc-bugzi...@gcc.gnu.org

napsal(a):





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



 Tobias Burnus burnus at gcc dot gnu.org changed:



What|Removed |Added



 

Keywords||rejects-valid

  Status|UNCONFIRMED |NEW

Last reconfirmed||2013-04-16

  CC||burnus at gcc dot gnu.org

  Ever Confirmed|0   |1



 --- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org 2013-04-16

 17:17:52 UTC ---

 Related test case by the bug reporterm



 https://groups.google.com/forum/?fromgroups=#!topic/comp.lang.fortran/UvBX1kfuFqs





 This time rejecting the code instead of ICEing:



print *,x%i

  1

 Error: Symbol 'x' at (1) has no IMPLICIT type







 program p

   type t

 integer :: i = 0

   end type



   associate (x=f())

 print *,x%i

   end associate



   contains

 function f()

   type(t) f

   f%i = 5

 end function

 end program



 --

 Configure bugmail: http://gcc.gnu.org/bugzilla/userprefs.cgi?tab=email

 --- You are receiving this mail because: ---

 You are on the CC list for the bug.

 You reported the bug.




[Bug c/56983] New: Label in asm deleted after call to non-returning function

2013-04-16 Thread silvioricardoc at gmail dot com


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



 Bug #: 56983

   Summary: Label in asm deleted after call to non-returning

function

Classification: Unclassified

   Product: gcc

   Version: 4.7.2

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: c

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: silvioricar...@gmail.com





gcc -v:

Using built-in specs.

COLLECT_GCC=gcc

COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.7/lto-wrapper

Target: i686-linux-gnu

Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro

4.7.2-2ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs

--enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr

--program-suffix=-4.7 --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.7

--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu

--enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object

--enable-plugin --enable-objc-gc --enable-targets=all --disable-werror

--with-arch-32=i686 --with-tune=generic --enable-checking=release

--build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu

Thread model: posix

gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1) 



uname -a:

Linux silvioricardoc-laptop 3.5.0-27-generic #46-Ubuntu SMP Mon Mar 25 20:00:05

UTC 2013 i686 i686 i686 GNU/Linux



Command-line:

gcc -Wall -Wextra code.c





Description:

GCC eliminates all code following a call to a non-returning function, even if

this code includes an asm label that can be jumped to. In the latter case, it

will generate the jump-to-label assembly output, but the code will fail to

link due to the missing label.



The problem may be the fact that GCC does not know when an asm label can be

jumped into, but in this case, the correct solution should be to act

conservatively and keep that part of the code intact.


[Bug c/56983] Label in asm deleted after call to non-returning function

2013-04-16 Thread silvioricardoc at gmail dot com


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



--- Comment #1 from silvioricardoc at gmail dot com 2013-04-16 18:39:50 UTC ---

Created attachment 29885

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=29885

Sample bug-causing code.


[Bug c/56983] Label in asm deleted after call to non-returning function

2013-04-16 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 CC||jakub at gcc dot gnu.org

 Resolution||INVALID



--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2013-04-16 
18:42:41 UTC ---

The testcase is of course invalid, you can't jump out of inline asm without

telling the compiler about it.

You can use asm goto to tell the compiler about it, then it wouldn't optimize

it away (of course, the label is then a C label, not one hidden in assembly).


[Bug fortran/56968] [4.7/4.8/4.9 Regression] [F03] Issue with a procedure defined with a generic name returning procedure pointer

2013-04-16 Thread janus at gcc dot gnu.org


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



--- Comment #9 from janus at gcc dot gnu.org 2013-04-16 19:14:33 UTC ---

Fixed on trunk with:



Author: janus

Date: Tue Apr 16 19:07:34 2013

New Revision: 198008



URL: http://gcc.gnu.org/viewcvs?rev=198008root=gccview=rev

Log:

2013-04-16  Janus Weil  ja...@gcc.gnu.org



PR fortran/56968

* expr.c (gfc_check_pointer_assign): Handle generic functions returning

procedure pointers.





2013-04-16  Janus Weil  ja...@gcc.gnu.org



PR fortran/56968

* gfortran.dg/proc_ptr_41.f90: New.



Added:

trunk/gcc/testsuite/gfortran.dg/proc_ptr_41.f90

Modified:

trunk/gcc/fortran/ChangeLog

trunk/gcc/fortran/expr.c

trunk/gcc/testsuite/ChangeLog







Will backport to 4.8 and 4.7 in a few days if no problems show up.


[Bug middle-end/56729] [4.9 Regression] ICE in df_insn_delete

2013-04-16 Thread steven at gcc dot gnu.org


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



--- Comment #6 from Steven Bosscher steven at gcc dot gnu.org 2013-04-16 
19:48:53 UTC ---

r197942 should have fixed this properly.

I'm testing powerpc64 unix/-m32 to confirm.


[Bug middle-end/43631] var-tracking inserts notes with non-NULL BLOCK_FOR_INSN in between basic blocks

2013-04-16 Thread steven at gcc dot gnu.org


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



Steven Bosscher steven at gcc dot gnu.org changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||FIXED



--- Comment #25 from Steven Bosscher steven at gcc dot gnu.org 2013-04-16 
20:12:47 UTC ---

Three years. Three years! Apparently wrong-debug is more important

to fix than wrong compiler...  But oh well.  Fixed now.  var-tracking.c

now runs with TODO_verify_flow_info, so that the machine dependent reorg

passes don't inherit the messy excuse for a CFG that var-tracking used to

leave behind!


[Bug rtl-optimization/52139] [4.5 Regression] ICE: in remove_insn, at emit-rtl.c:3960 with -O -fPIC -fno-tree-dominator-opts -fno-tree-fre

2013-04-16 Thread steven at gcc dot gnu.org


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



Steven Bosscher steven at gcc dot gnu.org changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 CC|steven at gcc dot gnu.org   |

 Resolution||FIXED

   Target Milestone|4.5.4   |4.9.0



--- Comment #13 from Steven Bosscher steven at gcc dot gnu.org 2013-04-16 
20:15:41 UTC ---

Now properly fixed, xf. r197995


[Bug rtl-optimization/56957] [4.9 regression] ICE in add_insn_after, at emit-rtl.c:3783

2013-04-16 Thread steven at gcc dot gnu.org


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



Steven Bosscher steven at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |ASSIGNED

   Last reconfirmed||2013-04-16

 CC|steven at gcc dot gnu.org   |

 AssignedTo|unassigned at gcc dot   |steven at gcc dot gnu.org

   |gnu.org |

 Ever Confirmed|0   |1


[Bug c++/56388] [4.7/4.8/4.9 regression] catch(...) in lambda rejected

2013-04-16 Thread jason at gcc dot gnu.org


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



Jason Merrill jason at gcc dot gnu.org changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #3 from Jason Merrill jason at gcc dot gnu.org 2013-04-16 
20:30:12 UTC ---

Fixed for 4.7.4/4.8.1/4.9.0.


[Bug rtl-optimization/56957] [4.9 regression] ICE in add_insn_after, at emit-rtl.c:3783

2013-04-16 Thread steven at gcc dot gnu.org


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



--- Comment #1 from Steven Bosscher steven at gcc dot gnu.org 2013-04-16 
20:35:02 UTC ---

Bug in the selective scheduler, merely exposed by my patch:



Breakpoint 1, fancy_abort (file=0x11017130 ../../trunk/gcc/emit-rtl.c,

line=3840, function=0x110174f8 add_insn_after_nobb(rtx_def*,

rtx_def*)::__FUNCTION__ add_insn_after_nobb) at

../../trunk/gcc/diagnostic.c:1177

1177  internal_error (in %s, at %s:%d, function, trim_filename (file),

line);

(gdb) up

#1  0x103e616c in add_insn_after_nobb (insn=0x3fffb5da6150,

after=0x3fffb5da4e78) at ../../trunk/gcc/emit-rtl.c:3840

3840  gcc_assert (!optimize || !INSN_DELETED_P (after));

(gdb) p after

$1 = (rtx) 0x3fffb5da4e78

(gdb) p debug_rtx(after)

(insn/v 303 30 32 10 (set (reg:DF 165 f37 [421])

(unspec:DF [

(mem:DF (reg/f:DI 18 r18 [420]) [2 *a_7(D) S8 A64])

] UNSPEC_LDA)) 13 {movdf_advanced}

 (nil))

$2 = void

(gdb) p INSN_DELETED_P (after)

$3 = 1

(gdb)



The selective scheduler is trying to re-emit an insn it had previously

deleted permanently.


[Bug rtl-optimization/56957] [4.9 regression] ICE in add_insn_after, at emit-rtl.c:3783

2013-04-16 Thread steven at gcc dot gnu.org


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



Steven Bosscher steven at gcc dot gnu.org changed:



   What|Removed |Added



 Status|ASSIGNED|NEW

 CC||abel at gcc dot gnu.org

 AssignedTo|steven at gcc dot gnu.org   |unassigned at gcc dot

   ||gnu.org



--- Comment #2 from Steven Bosscher steven at gcc dot gnu.org 2013-04-16 
20:54:17 UTC ---

Breakpoint 5, sel_remove_insn (insn=0x3fffb5da4e78, only_disconnect=false,

full_tidying=false) at ../../trunk/gcc/sel-sched-ir.c:3938

3938  delete_insn (insn);

1: debug_rtx(insn) = (insn 303 190 191 10 (set (reg:DF 165 f37 [421])

(unspec:DF [

(mem:DF (reg/f:DI 18 r18 [420]) [2 *a_7(D) S8 A64])

] UNSPEC_LDA)) 13 {movdf_advanced}

 (nil))

void

(gdb) up

#1  0x10843984 in remove_insn_from_stream (insn=0x3fffb5da4e78,

only_disconnect=false) at ../../trunk/gcc/sel-sched.c:6042

6042  sel_remove_insn (insn, only_disconnect, false);

(gdb) up

#2  0x10843af0 in move_op_orig_expr_found (insn=0x3fffb5da4e78,

expr=0x115f9fd8, lparams=0x3fffda78, static_params=0x3fffdaa8) at

../../trunk/gcc/sel-sched.c:6066

6066  remove_insn_from_stream (insn, only_disconnect);

gdb) p only_disconnect

$19 = false

(gdb) l 6060

6055  moveop_static_params_p params = (moveop_static_params_p)

static_params;

6056

6057  copy_expr_onside (params-c_expr, INSN_EXPR (insn));

6058  track_scheduled_insns_and_blocks (insn);

6059  insn_emitted = handle_emitting_transformations (insn, expr, params);

6060  only_disconnect = (params-uid == INSN_UID (insn)

6061  ! insn_emitted   ! EXPR_WAS_CHANGED (expr));

6062

6063  /* Mark that we've disconnected an insn.  */

6064  if (only_disconnect)

(gdb) p params-uid

$20 = 303

(gdb) p insn_emitted

$21 = false

(gdb) p EXPR_WAS_CHANGED(expr)

$22 = true



No idea what to make of this. sel-sched deliberately chooses to discard

the insn instead of only disconnecting it, but it re-emits the insn

later anyway.  That's wrong.



CC sel-sched guru.


[Bug c++/15272] lookup, dependent base

2013-04-16 Thread redi at gcc dot gnu.org


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



Jonathan Wakely redi at gcc dot gnu.org changed:



   What|Removed |Added



 CC||jason at gcc dot gnu.org



--- Comment #9 from Jonathan Wakely redi at gcc dot gnu.org 2013-04-16 
21:08:40 UTC ---

Jason, we apparently still do lookup in dependent bases inside virtual

functions.


[Bug c++/56189] Infinite recursion with noexcept when instantiating function template

2013-04-16 Thread redi at gcc dot gnu.org


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



Jonathan Wakely redi at gcc dot gnu.org changed:



   What|Removed |Added



   Keywords||rejects-valid

 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-04-16

 Ever Confirmed|0   |1

  Known to fail||4.7.3, 4.8.1, 4.9.0



--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2013-04-16 
21:16:08 UTC ---

name lookup in the noexcept(noexcept(...)) seems to be ignoring the namespace

qualificiation


[Bug c++/52748] [4.9 Regression][C++11] N3276 changes to decltype

2013-04-16 Thread jason at gcc dot gnu.org


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



Jason Merrill jason at gcc dot gnu.org changed:



   What|Removed |Added



 Status|REOPENED|RESOLVED

 Resolution||FIXED



--- Comment #18 from Jason Merrill jason at gcc dot gnu.org 2013-04-16 
21:24:12 UTC ---

Fixed.


[Bug rtl-optimization/56957] [4.9 regression] ICE in add_insn_after, at emit-rtl.c:3783

2013-04-16 Thread steven at gcc dot gnu.org


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



Steven Bosscher steven at gcc dot gnu.org changed:



   What|Removed |Added



 CC||steven at gcc dot gnu.org



--- Comment #3 from Steven Bosscher steven at gcc dot gnu.org 2013-04-16 
21:36:32 UTC ---

Work-around:



--- sel-sched-ir.c  2013-04-16 21:51:48.0 +0200

+++ sel-sched-ir.c  2013-04-16 23:35:30.0 +0200

@@ -3935,7 +3935,7 @@

 remove_insn (insn);

   else

 {

-  delete_insn (insn);

+  remove_insn (insn);

   clear_expr (INSN_EXPR (insn));

 }





But that makes sel-sched leak DF caches again...


[Bug fortran/39505] Consider a 'no arg check' directive

2013-04-16 Thread burnus at gcc dot gnu.org


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



Tobias Burnus burnus at gcc dot gnu.org changed:



   What|Removed |Added



 CC||burnus at gcc dot gnu.org



--- Comment #5 from Tobias Burnus burnus at gcc dot gnu.org 2013-04-16 
21:39:36 UTC ---

Author: burnus

Date: Tue Apr 16 20:54:21 2013

New Revision: 198011



URL: http://gcc.gnu.org/viewcvs?rev=198011root=gccview=rev

Log:

2013-04-12  Tobias Burnus  bur...@net-b.de



PR fortran/39505

* decl.c (ext_attr_list): Add EXT_ATTR_NO_ARG_CHECK.

* gfortran.h (ext_attr_id_t): Ditto.

* gfortran.texi (GNU Fortran Compiler Directives):

Document it.

* interface.c (compare_type_rank): Ignore rank for NO_ARG_CHECK.

(compare_parameter): Ditto - and regard as unlimited polymorphic.

* resolve.c (resolve_symbol, resolve_variable): Add same

* constraint

checks as for TYPE(*); turn dummy to TYPE(*),dimension(*).

(gfc_explicit_interface_required): Require explicit interface

for NO_ARG_CHECK.



2013-04-12  Tobias Burnus  bur...@net-b.de



PR fortran/39505

* gfortran.dg/no_arg_check_1.f90: New.

* gfortran.dg/no_arg_check_2.f90: New.

* gfortran.dg/no_arg_check_3.f90: New.





Added:

trunk/gcc/testsuite/gfortran.dg/no_arg_check_1.f90

trunk/gcc/testsuite/gfortran.dg/no_arg_check_2.f90

trunk/gcc/testsuite/gfortran.dg/no_arg_check_3.f90

Modified:

trunk/gcc/fortran/ChangeLog

trunk/gcc/fortran/decl.c

trunk/gcc/fortran/gfortran.h

trunk/gcc/fortran/gfortran.texi

trunk/gcc/fortran/interface.c

trunk/gcc/fortran/resolve.c

trunk/gcc/testsuite/ChangeLog


[Bug c++/56857] Crash in resolve_args

2013-04-16 Thread jason at gcc dot gnu.org


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



Jason Merrill jason at gcc dot gnu.org changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||DUPLICATE



--- Comment #4 from Jason Merrill jason at gcc dot gnu.org 2013-04-16 
21:43:38 UTC ---

Dup of 56901.



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


[Bug c++/56901] [4.9 regression] lambda with implicit capture by reference

2013-04-16 Thread jason at gcc dot gnu.org


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



Jason Merrill jason at gcc dot gnu.org changed:



   What|Removed |Added



 CC||rmansfield at qnx dot com



--- Comment #3 from Jason Merrill jason at gcc dot gnu.org 2013-04-16 
21:43:38 UTC ---

*** Bug 56857 has been marked as a duplicate of this bug. ***


[Bug fortran/39505] Consider a 'no arg check' directive

2013-04-16 Thread burnus at gcc dot gnu.org


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



Tobias Burnus burnus at gcc dot gnu.org changed:



   What|Removed |Added



 Resolution|WONTFIX |FIXED



--- Comment #6 from Tobias Burnus burnus at gcc dot gnu.org 2013-04-16 
21:44:29 UTC ---

Re-close as FIXED.



This feature is now supported on the GCC 4.9 trunk:



  !GCC$ attributes no_arg_check::buf



Contrary to TYPE(*), which is supported since GCC 4.8, this attribute not only

disables the T(ype) and K(ind) checking but also the rank check (= full TKR).



To be used with TYPE(*) [recommended; integer, real, complex and logical are

also fine]; the dummy argument can be either a scalar or an assumed-size array.

Such dummies may only be passed on or used as argument to C_LOC.



See http://gcc.gnu.org/onlinedocs/gfortran/GNU-Fortran-Compiler-Directives.html


[Bug fortran/56981] Slow I/O: Unformatted 5x slower, large sys component; formatted slow as well

2013-04-16 Thread jvdelisle at gcc dot gnu.org


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



--- Comment #2 from Jerry DeLisle jvdelisle at gcc dot gnu.org 2013-04-17 
00:58:02 UTC ---

There is a seek inside next_record_w_unf. That function is used for DIRECT I/O.

Looks conceptually wrong to me for sequential unformatted.  I won't have time

for a few days to look at this further.


[Bug target/56975] [regression] dllimport broken on i686-pc-cygwin

2013-04-16 Thread alexpux at gmail dot com


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



Alexey Pavlov alexpux at gmail dot com changed:



   What|Removed |Added



 CC||alexpux at gmail dot com



--- Comment #2 from Alexey Pavlov alexpux at gmail dot com 2013-04-17 
02:31:41 UTC ---

I try to change line in cygming.h. Now It doesn't show error but xgcc processes

freezing alltime and build cannot be done.


[Bug c/56984] New: GCC-4.8.0 ICE in tree_vrp.c

2013-04-16 Thread ishiura-compiler at ml dot kwansei.ac.jp


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



 Bug #: 56984

   Summary: GCC-4.8.0 ICE in tree_vrp.c

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: c

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: ishiura-compi...@ml.kwansei.ac.jp





GCC 4.8.0 with -O1 -ftree-vrp option ICEs on 

the following code where sizeof(int) == 4.

The failure occurs in Linux (x86_64 and i686)

and Mac OS X (x86_64).



  $ cat error.c



  int g = 0;

  int main(void)

{

if ( (g31)  -1 ) { g++; }

return 0;

  }



  $ x86_64-unknown-linux-gnu-gcc-4.8.0 error.c -O1 -ftree-vrp

  error.c: In function 'main':

  error.c:3:5: internal compiler error: in remove_range_assertions, at

  tree-vrp.c:6276

   int main(void)

   ^

  0x936e7e remove_range_assertions

  ../../gcc/tree-vrp.c:6276

  0x936e7e execute_vrp

  ../../gcc/tree-vrp.c:9299

  Please submit a full bug report,

  with preprocessed source if appropriate.

  Please include the complete backtrace with any bug report.

  See http://gcc.gnu.org/bugs.html for instructions.


[Bug rtl-optimization/56957] [4.9 regression] ICE in add_insn_after, at emit-rtl.c:3783

2013-04-16 Thread abel at gcc dot gnu.org


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



--- Comment #4 from Andrey Belevantsev abel at gcc dot gnu.org 2013-04-17 
05:14:44 UTC ---

(In reply to comment #2)

 Breakpoint 5, sel_remove_insn (insn=0x3fffb5da4e78, only_disconnect=false,

 full_tidying=false) at ../../trunk/gcc/sel-sched-ir.c:3938

 3938  delete_insn (insn);

 1: debug_rtx(insn) = (insn 303 190 191 10 (set (reg:DF 165 f37 [421])

 (unspec:DF [

 (mem:DF (reg/f:DI 18 r18 [420]) [2 *a_7(D) S8 A64])

 ] UNSPEC_LDA)) 13 {movdf_advanced}

  (nil))



You are right, this is not supposed to happen.  The only_disconnect business is

for the unification and transformation support, when you have possibly several

insns as sources of the one chosen for scheduling.  Thus, you need to delete

all sources but the one you're going to move upwards, and even this chosen one

should be deleted if it was changed while moving.



The insn in question is a speculative insn possibly generated earlier, so ...



 (gdb) p EXPR_WAS_CHANGED(expr)

 $22 = true



... if this is true, we are supposed to emit the new insn obviously with the

new id.  The issue is that we then decide to emit the very same insn.  I will

take a look.