[Bug c++/60211] [4.9/5 Regression] ICE with #pragma GCC ivdep and for-loop on global scope

2014-12-29 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60211

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-12-29
Summary|ICE with #pragma GCC ivdep  |[4.9/5 Regression] ICE with
   |and for-loop on global  |#pragma GCC ivdep and
   |scope   |for-loop on global scope
 Ever confirmed|0   |1


[Bug lto/64076] [4.9/5 Regression] ICE: in update_visibility_by_resolution_info, at ipa-visibility.c:427

2014-12-29 Thread tbsaunde at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64076

tbsaunde at gcc dot gnu.org changed:

   What|Removed |Added

 CC||tbsaunde at gcc dot gnu.org

--- Comment #2 from tbsaunde at gcc dot gnu.org ---
what happens is this:
testcase_2.o contains thunks to call s:: from vtables for each of x y and z. 
However testcase_2.C is compiled without t being a base so there's no thunk for
t.  So when testcase_1.C is compiled with t as a base of s we have an ironly
thunk for t's vtable to call s::f and prevailing regular definitions of the
other thunks. The result of that is triping the assert because we have one
externally visible ironly thunk, and others that come from testcase_2.o


[Bug fortran/64432] New: [5 Regression] SYSTEM_CLOCK(COUNT_RATE=rate) wrong result for integer(4)::rate

2014-12-29 Thread anlauf at gmx dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64432

Bug ID: 64432
   Summary: [5 Regression] SYSTEM_CLOCK(COUNT_RATE=rate) wrong
result for integer(4)::rate
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: anlauf at gmx dot de

I just discovered that the 20141227 snapshot breaks SYSTEM_CLOCK when
the COUNT_RATE argument is a 32-bit integer:

% cat gfcbug128.f90
program gfcbug128
  integer(4) :: count_rate, count_max
  call system_clock (count_rate=count_rate)
  call system_clock (count_max=count_max)
  print *, count_rate, count_max
end

GNU Fortran (GCC) 5.0.0 20141227 (experimental)
produces:

% head -11 gfcbug128.f90.003t.original
gfcbug128 ()
{
  integer(kind=4) count_max;
  integer(kind=4) count_rate;

  {
integer(kind=8) count_rate.0;

_gfortran_system_clock_8 (0B, count_rate.0, 0B);
count_rate = (integer(kind=4)) count_rate.0;
_gfortran_system_clock_4 (0B, 0B, count_max);

whereas my 4.9 or other older installations give:

% head -7 gfcbug128.f90.003t.original-49 
gfcbug128 ()
{
  integer(kind=4) count_max;
  integer(kind=4) count_rate;

  _gfortran_system_clock_4 (0B, count_rate, 0B);
  _gfortran_system_clock_4 (0B, 0B, count_max);

On my Linux system, the _4 version has count_rate=1000,
the _8 version is 100.

:-(


[Bug fortran/60357] [F08] structure constructor with unspecified values for allocatable components

2014-12-29 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60357

--- Comment #7 from janus at gcc dot gnu.org ---
Author: janus
Date: Mon Dec 29 10:45:21 2014
New Revision: 219098

URL: https://gcc.gnu.org/viewcvs?rev=219098root=gccview=rev
Log:
2014-12-29  Janus Weil  ja...@gcc.gnu.org

PR fortran/60357
* array.c (check_constructor): Ignore empty expressions.
* expr.c (check_alloc_comp_init): Check if constructor expression
exists.
* primary.c (build_actual_constructor): Warn for absent alloc-comp
initializers in pre-2008 standards.

2014-12-29  Janus Weil  ja...@gcc.gnu.org

PR fortran/60357
* gfortran.dg/alloc_comp_constructor_7.f90: New.

Added:
trunk/gcc/testsuite/gfortran.dg/alloc_comp_constructor_7.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/array.c
trunk/gcc/fortran/expr.c
trunk/gcc/fortran/primary.c
trunk/gcc/testsuite/ChangeLog


[Bug fortran/60357] [F08] structure constructor with unspecified values for allocatable components

2014-12-29 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60357

--- Comment #8 from janus at gcc dot gnu.org ---
The original problem in comment 0 is fixed with r219098. Thanks to Anthony for
reporting this!

TODO: The segfault reported by Dominique in comment 4 and 5.


[Bug fortran/64432] [5 Regression] SYSTEM_CLOCK(COUNT_RATE=rate) wrong result for integer(4)::rate

2014-12-29 Thread anlauf at gmx dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64432

--- Comment #1 from Harald Anlauf anlauf at gmx dot de ---
Modifying the test code as follows:

% cat gfcbug128b.f90
program gfcbug128b
  integer(4) :: count_rate, count_max
  call system_clock (count_rate=count_rate,count_max=count_max)
  call system_clock (count_rate=count_rate)
  call system_clock (count_max=count_max)
end

% head -12 gfcbug128b.f90.003t.original
gfcbug128b ()
{
  integer(kind=4) count_max;
  integer(kind=4) count_rate;

  {
integer(kind=8) count_rate.0;

_gfortran_system_clock_4 (0B, count_rate, count_max);
_gfortran_system_clock_8 (0B, count_rate.0, 0B);
count_rate = (integer(kind=4)) count_rate.0;
_gfortran_system_clock_4 (0B, 0B, count_max);

shows that the logic in trans-intrinsic.c::conv_intrinsic_system_clock
does not cover the case of single arguments:


  gfc_expr *count = code-ext.actual-expr;
  gfc_expr *count_rate = code-ext.actual-next-expr;
  gfc_expr *count_max = code-ext.actual-next-next-expr;

  /* The INTEGER(8) version has higher precision, it is used if both COUNT
 and COUNT_MAX can hold 64-bit values, or are absent.  */
  if ((!count || count-ts.kind = 8)
   (!count_max || count_max-ts.kind = 8))
kind = 8;
  else
kind = gfc_default_integer_kind;
  type = gfc_get_int_type (kind);

  /* Evaluate our arguments.  */


This probably needs to be amended.


[Bug fortran/64432] [5 Regression] SYSTEM_CLOCK(COUNT_RATE=rate) wrong result for integer(4)::rate

2014-12-29 Thread anlauf at gmx dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64432

Harald Anlauf anlauf at gmx dot de changed:

   What|Removed |Added

 CC||fxcoudert at gcc dot gnu.org

--- Comment #2 from Harald Anlauf anlauf at gmx dot de ---
Introduced in r211686.
FX?


[Bug fortran/64432] [5 Regression] SYSTEM_CLOCK(COUNT_RATE=rate) wrong result for integer(4)::rate

2014-12-29 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64432

--- Comment #3 from janus at gcc dot gnu.org ---
(In reply to Harald Anlauf from comment #0)
 I just discovered that the 20141227 snapshot breaks SYSTEM_CLOCK when
 the COUNT_RATE argument is a 32-bit integer:

Confirmed. Probably due to r211686.


[Bug fortran/64432] [5 Regression] SYSTEM_CLOCK(COUNT_RATE=rate) wrong result for integer(4)::rate

2014-12-29 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64432

janus at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||wrong-code
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-12-29
 CC||janus at gcc dot gnu.org
 Ever confirmed|0   |1


[Bug fortran/58906] [OOP] SELECT TYPE with CLASS IS generates ICE

2014-12-29 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58906

janus at gcc dot gnu.org changed:

   What|Removed |Added

 CC||janus at gcc dot gnu.org

--- Comment #2 from janus at gcc dot gnu.org ---
Segfaults with 4.8, 4.9 and trunk.

Slightly reduced test case:

  TYPE :: child
CLASS(*), DIMENSION(:), POINTER :: arr
  END TYPE

CONTAINS

  SUBROUTINE f(r)
CLASS(child) ::  r
SELECT TYPE ( r )
CLASS IS ( child )
  SELECT TYPE( iarr=r%arr )
  TYPE IS ( INTEGER )
CALL func( iarr )
  END SELECT
END SELECT
  END SUBROUTINE

END


[Bug fortran/60507] Passing function call into procedure argument not caught

2014-12-29 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60507

--- Comment #6 from janus at gcc dot gnu.org ---
(In reply to Dominique d'Humieres from comment #5)
 What is the status of the patch in comment 4?

Alive 'n' kickin' ;)

Still applies (with a bit of fuzz) and regtests cleanly.


[Bug target/64368] [5 Regression] Several libstdc++ test failures on darwin and others after r218964.

2014-12-29 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64368

--- Comment #9 from Jonathan Wakely redi at gcc dot gnu.org ---
Who is waving anything away? I've been fixing things for Darwin at all hours of
the day, while on vacation and while ill, so don't appreciate that comment.

I have run the years in valgrind and saw no problem on Linux.

Someone could always try debugging things themselves, even if just posting full
stack traces to this report.


[Bug c++/64433] New: Segmentation fault while compiling

2014-12-29 Thread aleksis at mikrotik dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64433

Bug ID: 64433
   Summary: Segmentation fault while compiling
   Product: gcc
   Version: 4.9.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: aleksis at mikrotik dot com

This code causes segmentation fault while compiling.


#include cstddef

templateint Num
class N {
static constexpr int num = Num;
};

templateclass T using NDef = Noffsetof(T, T::m);
templateclass T using TDef = NDefT;



GCC version: 4.9.2
compiled with: g++ --std=c++11 -c test.cpp
system: Linux 3.18.1-1-ARCH #1 SMP PREEMPT Wed Dec 17 15:40:09 CET 2014 x86_64
GNU/Linux


[Bug fortran/63552] [OOP] Type-bound procedures rejected as actual argument to dummy procedure

2014-12-29 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63552

janus at gcc dot gnu.org changed:

   What|Removed |Added

 CC||janus at gcc dot gnu.org

--- Comment #2 from janus at gcc dot gnu.org ---
(In reply to Tobias Burnus from comment #0)
 call co_reduce(a,x%tbp)
   1
 Error: Expected argument list at (1)

That error comes from 'gfc_match_varspec' (in primary.c). In general I think
it's not possible to decide at parse-time whether the TBP should have an
argument list here or not (depending on whether the dummy is a procedure, which
may not be known while parsing).

The error should probably move to resolution stage, where all argument checking
is done.


[Bug target/64387] ICE: in extract_insn, at recog.c:2327 (unrecognizable insn) with -ffloat-store -mavx512er

2014-12-29 Thread tocarip.intel at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64387

tocarip.intel at gmail dot com changed:

   What|Removed |Added

 CC||tocarip.intel at gmail dot com

--- Comment #1 from tocarip.intel at gmail dot com ---
Created attachment 34343
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34343action=edit
Proposed patch.


[Bug target/64387] ICE: in extract_insn, at recog.c:2327 (unrecognizable insn) with -ffloat-store -mavx512er

2014-12-29 Thread tocarip.intel at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64387

--- Comment #2 from tocarip.intel at gmail dot com ---
Can also be reproduced with -mavx2 instead of -mavx512er.
Proposed patch fixes both cases.
Testing in progress.


[Bug fortran/63552] [OOP] Type-bound procedures rejected as actual argument to dummy procedure

2014-12-29 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63552

--- Comment #3 from janus at gcc dot gnu.org ---
This draft patch gets rid of the error and regtests cleanly:


Index: gcc/fortran/primary.c
===
--- gcc/fortran/primary.c(Revision 219098)
+++ gcc/fortran/primary.c(Arbeitskopie)
@@ -1987,11 +1987,13 @@ gfc_match_varspec (gfc_expr *primary, int equiv_fl
 {
   if (sub_flag)
 primary-value.compcall.actual = NULL;
-  else
+  else if (!matching_actual_arglist)
 {
   gfc_error (Expected argument list at %C);
   return MATCH_ERROR;
 }
+  else
+primary-expr_type = EXPR_VARIABLE;
 }

   break;


However I then get another error on the test case in comment 0:

 call co_reduce(a,x%tbp)
 1
Error: OPERATOR argument at (1) must be a PURE function


This is obviously bogus since 'tbp' is bound to a PURE function. For the
commented-out line I get:

call co_reduce(a,x%ppc)
   1 2
Fehler: A argument at (1) has type INTEGER(4) but the function passed as
OPERATOR at (2) returns REAL(4)


(which I guess is diagnosed correctly?)


[Bug fortran/64432] [5 Regression] SYSTEM_CLOCK(COUNT_RATE=rate) wrong result for integer(4)::rate

2014-12-29 Thread fxcoudert at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64432

Francois-Xavier Coudert fxcoudert at gcc dot gnu.org changed:

   What|Removed |Added

   Assignee|unassigned at gcc dot gnu.org  |fxcoudert at gcc dot 
gnu.org

--- Comment #4 from Francois-Xavier Coudert fxcoudert at gcc dot gnu.org ---
I'm not sure this is a bug, but this was definitely by design (as the comment
indicates). I think this is allowed by the successive standards (which are, in
any case, very weakly worded).

The root of the problem is that we want to allow for SYSTEM_CLOCK to return
high-precision values for large integer kinds, and fall back to lower-precision
results that fit in fewer bytes for smaller integer kinds. Thus, one should
call SYSTEM_CLOCK once with all the necessary arguments, and not multiple times
with varying argument types.

The only other consistent option I can see would be to simply go for
high-resolution results in all cases, but that would mean that SYSTEM_CLOCK
with 32-bit integers would wrap around in less than an hour.

If you have another idea, please post a list of what you think should happen in
all various cases (all possible combinations of arguments have to be allowed).


[Bug target/64368] [5 Regression] Several libstdc++ test failures on darwin and others after r218964.

2014-12-29 Thread hp at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64368

--- Comment #10 from Hans-Peter Nilsson hp at gcc dot gnu.org ---
(In reply to Jonathan Wakely from comment #9)
 Who is waving anything away?

I wasn't referring to you.  Apparently I was referring to a comment that was
supposed to be ignored.

 I've been fixing things for Darwin at all hours
 of the day, while on vacation and while ill, so don't appreciate that
 comment.

Sorry!
Your work and diligence is much appreciated.
Get well soon.
HNY.

 Someone could always try debugging things themselves, even if just posting 
 full stack traces to this report.

Bare-metal simulator setup without gdb, unfortunately.

brgds, H-P


[Bug target/64368] [5 Regression] Several libstdc++ test failures on darwin and others after r218964.

2014-12-29 Thread hp at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64368

--- Comment #11 from Hans-Peter Nilsson hp at gcc dot gnu.org ---
Created attachment 34344
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34344action=edit
Call-trace for testsuite/22_locale/locale/cons/6.cc on cris-elf, a newlib
target

Plain execution trace from 22_locale/locale/cons/6.cc compiled with default
testsuite options, so inlining and whatever effects apply.

In the trace, lines with  denotes function calls,  are returns, with
indentation supposed to show the call-level.  The first four columns are the
hexadecimal values of the first four parameters as applicable (actually,
parameter registers but none are larger than 32 bits here, so same thing) /
ditto return values, padded with random contents.  (The fifth column is
cumulative execution times at each call-level.)

By a quick glance it seems the freed-but-not-allocated pointer, 0x5e23a, is
also the argument to the last call to strlen.

HTH.


[Bug fortran/60357] [F08] structure constructor with unspecified values for allocatable components

2014-12-29 Thread vehre at gmx dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60357

Andre Vehreschild vehre at gmx dot de changed:

   What|Removed |Added

 CC||vehre at gmx dot de

--- Comment #9 from Andre Vehreschild vehre at gmx dot de ---
Hi Janus,

be careful with the code in comment #4 and #5. When I remember correctly then
it was me who added the allocate trying to understand how Fortran worked there.
Meaning: That must not be valid Fortran. In fact, does my current work on this
pr and on #61275 report that Me%y is already allocated and must not be
reallocated again. 

That is, I may already have a patch that touches the issue. I just need to
figure, if allocating the component explicitly is valid in Fortran. Do you know
something about that? I am still reading the Fortran standards, but haven't
found the location that answers my question.

Andre


[Bug fortran/64432] [5 Regression] SYSTEM_CLOCK(COUNT_RATE=rate) wrong result for integer(4)::rate

2014-12-29 Thread anlauf at gmx dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64432

--- Comment #5 from Harald Anlauf anlauf at gmx dot de ---
(In reply to Francois-Xavier Coudert from comment #4)
 I'm not sure this is a bug, but this was definitely by design (as the
 comment indicates). I think this is allowed by the successive standards
 (which are, in any case, very weakly worded).

Well, let's see: the standard says:

  COUNT RATE (optional) shall be an integer or real scalar. It is an
INTENT (OUT) argument. It is assigned a processor-dependent approximation
to the number of processor clock counts per second, or zero if there is
no clock.

You're right, it does not say anything about consistency.
Nevertheless, I would prefer if a program that always uses
e.g. default integer == integer(4), the low-resolution (msec)
version continues to be used consistently.  That's what other
compilers do and what gfortran = 4.9 did.

Also, the presence of a second argument (see comment #1) should
not change the behavior.

OTOH, it is the responsibility of a user to consistently use
arguments of the same type and kind to get consistent behavior.
(I.e. not mixing integer and real or integer(4) and integer(8)).
I do take care of that.

 The root of the problem is that we want to allow for SYSTEM_CLOCK to return
 high-precision values for large integer kinds, and fall back to
 lower-precision results that fit in fewer bytes for smaller integer kinds.

How is this fallback done?  Do you truncate the resolution?
E.g. high res. - low res.: divide count_rate and count by 1000?

 Thus, one should call SYSTEM_CLOCK once with all the necessary arguments,
 and not multiple times with varying argument types.

Note that I did *not* call SYSTEM_CLOCK with varying argument types.

You're probably not aware of existing (f95) code that deals with
the problem of wrapping, which is always present (count does not
necessarily start with 0 at start of the program), although not
very likely with integer(8)... ;-)

 The only other consistent option I can see would be to simply go for
 high-resolution results in all cases, but that would mean that SYSTEM_CLOCK
 with 32-bit integers would wrap around in less than an hour.

No, that doesn't make sense.

 If you have another idea, please post a list of what you think should happen
 in all various cases (all possible combinations of arguments have to be
 allowed).

Let's see:

- For any number of arguments present (1, 2 or 3)
  - always integer(4): msec resolution (as before)
  - always integer(=8): usec resolution (or whatever is possible)
  - always real: I don't care, but I think it might be a good idea
to use the same as for integer of a compatible kind.
  - different types and/or kinds: I don't care, since one should
expect problems (wrapping or truncation) anyway.

But presence of non-presence should never make a difference
if consistent types and kinds are used.


[Bug tree-optimization/64434] New: Performance regression after operand canonicalization (r216728).

2014-12-29 Thread ysrumyan at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64434

Bug ID: 64434
   Summary: Performance regression after operand canonicalization
(r216728).
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: ysrumyan at gmail dot com

We noticed huge regression on eembc1.1 and eembc2.0 for 32-bit target at x86.
It can be reproduced on attached test-case:

before this fix number of %esp references in assembly was 2 but after r216728 -
24. Note that simple fix resolving this issue was sent for review.


[Bug tree-optimization/64434] Performance regression after operand canonicalization (r216728).

2014-12-29 Thread ysrumyan at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64434

--- Comment #1 from Yuri Rumyantsev ysrumyan at gmail dot com ---
Created attachment 34345
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34345action=edit
simple reproducer

Need to compile with -m32 on x86 platform.


[Bug fortran/64432] [5 Regression] SYSTEM_CLOCK(COUNT_RATE=rate) wrong result for integer(4)::rate

2014-12-29 Thread anlauf at gmx dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64432

--- Comment #6 from Harald Anlauf anlauf at gmx dot de ---
(In reply to Harald Anlauf from comment #5)
 Also, the presence of a second argument (see comment #1) should
 not change the behavior.

To make that explicit:

% cat gfcbug128c.f90
program gfcbug128c
  integer(4) :: count_rate, count_max
  call system_clock (count_rate=count_rate,count_max=count_max)
  print *, count_rate, count_max
  call system_clock (count_rate=count_rate)
  call system_clock (count_max=count_max)
  print *, count_rate, count_max
end

gfortran 5 gives:

1000  2147483647
 100  2147483647

any other compiler:

1000  2147483647
1000  2147483647

I'd have a hard time to explain that to anybody.


[Bug target/64393] ICE: in extract_insn, at recog.c:2327 (unrecognizable insn) with -mavx512vbmi

2014-12-29 Thread tocarip.intel at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64393

tocarip.intel at gmail dot com changed:

   What|Removed |Added

 CC||tocarip.intel at gmail dot com

--- Comment #2 from tocarip.intel at gmail dot com ---
Created attachment 34346
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34346action=edit
Proposed patch.

Added (untested patch) allows k{or,xoer,...} for avx512vbmi case, and fixes
this problem. However I'm not sure, that just enabling whole avx512bw isn't a
better idea.


[Bug sanitizer/64435] New: [5.0.0 Regression] Bootstrap failure in libsanitizer on AArch64 with Linux kernel = 3.15

2014-12-29 Thread david.abdurachmanov at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64435

Bug ID: 64435
   Summary: [5.0.0 Regression] Bootstrap failure in libsanitizer
on AArch64 with Linux kernel = 3.15
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: sanitizer
  Assignee: unassigned at gcc dot gnu.org
  Reporter: david.abdurachmanov at gmail dot com
CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org,
jakub at gcc dot gnu.org, kcc at gcc dot gnu.org

I finally started testing GCC trunk (5.0.0) on AArch64 before release is made.

I quickly find out that I couldn't bootstrap GCC on APM Mustang board with APM
Linux images (F19 + 3.12 kernel), but it worked fine with QEMU + F21 + 3.17
kernel). Failure details are below.

The culprit is 34c65c43f1518bf85f93526ad373adc6a683b4c5 from Linux repository.
Commit details are provided below.

Simply put __sanitizer___kernel_{uid,gid}_t depends on kernel version. =3.15
it's unsigned int and =3.16 it's unsigned short.

# GCC trunk failure #

In file included from
../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:176:0:
../../../../libsanitizer/sanitizer_common/sanitizer_internal_defs.h:272:72:
error: size of array 'assertion_failed__1006' is negative
 typedef char IMPL_PASTE(assertion_failed_##_, line)[2*(int)(pred)-1]
^
../../../../libsanitizer/sanitizer_common/sanitizer_internal_defs.h:266:30:
note: in expansion of macro 'IMPL_COMPILER_ASSERT'
 #define COMPILER_CHECK(pred) IMPL_COMPILER_ASSERT(pred, __LINE__)
  ^
../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h:1285:3:
note: in expansion of macro 'COMPILER_CHECK'
   COMPILER_CHECK(sizeof(__sanitizer_##TYPE) == sizeof(TYPE))
   ^
../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:1006:1:
note: in expansion of macro 'CHECK_TYPE_SIZE'
 CHECK_TYPE_SIZE(__kernel_old_uid_t);
 ^
../../../../libsanitizer/sanitizer_common/sanitizer_internal_defs.h:272:72:
error: size of array 'assertion_failed__1007' is negative
 typedef char IMPL_PASTE(assertion_failed_##_, line)[2*(int)(pred)-1]
^
../../../../libsanitizer/sanitizer_common/sanitizer_internal_defs.h:266:30:
note: in expansion of macro 'IMPL_COMPILER_ASSERT'
 #define COMPILER_CHECK(pred) IMPL_COMPILER_ASSERT(pred, __LINE__)
  ^
../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h:1285:3:
note: in expansion of macro 'COMPILER_CHECK'
   COMPILER_CHECK(sizeof(__sanitizer_##TYPE) == sizeof(TYPE))
   ^
../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:1007:1:
note: in expansion of macro 'CHECK_TYPE_SIZE'
 CHECK_TYPE_SIZE(__kernel_old_gid_t);
 ^
make[4]: *** [sanitizer_platform_limits_posix.lo] Error 1
make[4]: *** Waiting for unfinished jobs

# Linux Commit #

commit 34c65c43f1518bf85f93526ad373adc6a683b4c5
Author: Will Deacon will.dea...@arm.com
Date:   Mon Jun 2 11:47:29 2014 +0100

arm64: uid16: fix __kernel_old_{gid,uid}_t definitions

Whilst native arm64 applications don't have the 16-bit UID/GID syscalls
wired up, compat tasks can still access them. The 16-bit wrappers for
these syscalls use __kernel_old_uid_t and __kernel_old_gid_t, which must
be 16-bit data types to maintain compatibility with the 16-bit UIDs used
by compat applications.

This patch defines 16-bit __kernel_old_{gid,uid}_t types for arm64
instead of using the 32-bit types provided by asm-generic.

Signed-off-by: Will Deacon will.dea...@arm.com
Acked-by: Arnd Bergmann a...@arndb.de
Cc: sta...@vger.kernel.org
Signed-off-by: Catalin Marinas catalin.mari...@arm.com

diff --git a/arch/arm64/include/asm/Kbuild b/arch/arm64/include/asm/Kbuild
index 42c7eec..0b3fcf8 100644
--- a/arch/arm64/include/asm/Kbuild
+++ b/arch/arm64/include/asm/Kbuild
@@ -30,7 +30,6 @@ generic-y += msgbuf.h
 generic-y += mutex.h
 generic-y += pci.h
 generic-y += poll.h
-generic-y += posix_types.h
 generic-y += preempt.h
 generic-y += resource.h
 generic-y += rwsem.h
diff --git a/arch/arm64/include/uapi/asm/posix_types.h
b/arch/arm64/include/uapi/asm/posix_types.h
new file mode 100644
index 000..7985ff6
--- /dev/null
+++ b/arch/arm64/include/uapi/asm/posix_types.h
@@ -0,0 +1,10 @@
+#ifndef __ASM_POSIX_TYPES_H
+#define __ASM_POSIX_TYPES_H
+
+typedef unsigned short __kernel_old_uid_t;
+typedef unsigned short __kernel_old_gid_t;
+#define __kernel_old_uid_t __kernel_old_uid_t
+
+#include asm-generic/posix_types.h
+
+#endif /*  __ASM_POSIX_TYPES_H */


[Bug c++/64433] Segmentation fault while compiling

2014-12-29 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64433

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-12-29
 CC||jakub at gcc dot gnu.org,
   ||jason at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org ---
r181112 still rejects this, r181150 already ICEs.


[Bug tree-optimization/64434] [5 Regression] Performance regression after operand cannibalization (r216728).

2014-12-29 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64434

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-12-29
 CC||hjl.tools at gmail dot com
   Target Milestone|--- |5.0
Summary|Performance regression  |[5 Regression] Performance
   |after operand   |regression after operand
   |canonicalization (r216728). |cannibalization (r216728).
 Ever confirmed|0   |1


[Bug tree-optimization/64434] [5 Regression] Performance regression after operand cannibalization (r216728).

2014-12-29 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64434

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 Status|NEW |WAITING

--- Comment #2 from H.J. Lu hjl.tools at gmail dot com ---
Please show before and after assembly codes. Do we get slowdown on all
processors?


[Bug target/64386] ICE: in extract_insn, at recog.c:2327 (unrecognizable insn) with -mavx512bw

2014-12-29 Thread tocarip.intel at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64386

tocarip.intel at gmail dot com changed:

   What|Removed |Added

 CC||tocarip.intel at gmail dot com

--- Comment #2 from tocarip.intel at gmail dot com ---
Created attachment 34347
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34347action=edit
Proposed patch.

This (untested) patch fixes it.


[Bug tree-optimization/64434] [5 Regression] Performance regression after operand cannibalization (r216728).

2014-12-29 Thread ysrumyan at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64434

--- Comment #3 from Yuri Rumyantsev ysrumyan at gmail dot com ---
I put into attachment two assembly files for test-case compiled with
  -O2 -m32 -S options.


[Bug tree-optimization/64434] [5 Regression] Performance regression after operand cannibalization (r216728).

2014-12-29 Thread ysrumyan at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64434

--- Comment #4 from Yuri Rumyantsev ysrumyan at gmail dot com ---
Created attachment 34348
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34348action=edit
assembly files for test.c

Assembly file fro test.c


[Bug tree-optimization/64434] [5 Regression] Performance regression after operand cannibalization (r216728).

2014-12-29 Thread ysrumyan at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64434

--- Comment #5 from Yuri Rumyantsev ysrumyan at gmail dot com ---
Created attachment 34349
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34349action=edit
assembly file before r216728

Assembly file.


[Bug tree-optimization/64434] [5 Regression] Performance regression after operand cannibalization (r216728).

2014-12-29 Thread ysrumyan at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64434

--- Comment #6 from Yuri Rumyantsev ysrumyan at gmail dot com ---
H.J.

I put before/after assembly files into bug attachment. We saw slowdown
on SLM and HSW for 32-bit on eembc2.0, e.g. des degradated on 36%
(SLM) and 7%(HSW). But we did not see slowdown on any 64-bit x86.

2014-12-29 18:48 GMT+03:00 hjl.tools at gmail dot com
gcc-bugzi...@gcc.gnu.org:
 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64434

 H.J. Lu hjl.tools at gmail dot com changed:

What|Removed |Added
 
  Status|NEW |WAITING

 --- Comment #2 from H.J. Lu hjl.tools at gmail dot com ---
 Please show before and after assembly codes. Do we get slowdown on all
 processors?

 --
 You are receiving this mail because:
 You reported the bug.


[Bug tree-optimization/64434] [5 Regression] Performance regression after operand cannibalization (r216728).

2014-12-29 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64434

--- Comment #7 from H.J. Lu hjl.tools at gmail dot com ---
r216728 generates much longer code sequences.  Where does it come from?
Does -m64 also generate longer code sequences?


[Bug tree-optimization/64436] New: optimize-bswapdi-3.c fails on aarch64_be-none-elf

2014-12-29 Thread thopre01 at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64436

Bug ID: 64436
   Summary: optimize-bswapdi-3.c fails on aarch64_be-none-elf
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: thopre01 at gcc dot gnu.org

gcc.dg/optimize-bswapdi-3.c started to fail about 2 weeks ago. Investigation
shows that the way bswap create the symbolic number that corresponds to a
bitwise OR is broken for big endian target. There also seems to be some bug in
the computation of the range (in bswap terms) of that same symbolic number.

Here is the the testsuite log:

FAIL: gcc.dg/optimize-bswapdi-3.c scan-tree-dump-times bswap 64 bit bswap
implementation found at 3
FAIL: gcc.dg/optimize-bswapdi-3.c scan-tree-dump-times bswap 64 bit load in
target endianness found at 3


[Bug tree-optimization/64436] optimize-bswapdi-3.c fails on aarch64_be-none-elf

2014-12-29 Thread thopre01 at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64436

thopre01 at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2014-12-29
 Ever confirmed|0   |1


[Bug fortran/60357] [F08] structure constructor with unspecified values for allocatable components

2014-12-29 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60357

--- Comment #10 from janus at gcc dot gnu.org ---
(In reply to Andre Vehreschild from comment #9)
 I just need to
 figure, if allocating the component explicitly is valid in Fortran.

For sure. I think both the examples in comment 4 and 5 are actually valid
Fortran code.

In order to make sure we're talking about the same thing, let's have a look at
the following code:

Type A
  integer :: X = 1
  integer, allocatable :: y
end type
Type(A) :: Me
allocate(Me%y)
print *,A
Me = A(X=1, y=2)
print *,B
print *, Me%y
end

This is a variant of the example above that produced the segfault. I inserted
some print statements in order to debug it. It prints at runtime:

 A
 B

Program received signal SIGSEGV: Segmentation fault - invalid memory reference.


This shows clearly that the segfault occurs when we try to access Me%y in the
last print statement, meaning that it is probably unallocated although it
clearly should be.

-fdump-tree-original shows that the problem is in the translation of the
structure constructor assignment, which apparently leaves the y-component
unallocated.


[Bug tree-optimization/64434] [5 Regression] Performance regression after operand cannibalization (r216728).

2014-12-29 Thread ysrumyan at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64434

--- Comment #8 from Yuri Rumyantsev ysrumyan at gmail dot com ---
The issue is caused by operand canonicalization, i.e. there is special
operand odering for commutative operations to have the same
representation for  a + b and b + a. If computation of second operand
requires more operations this may lead to live range increasing ( for
live variables computed by first operand). If we swap these operands
we get live range shrinking which is essential for 32-bit targets
having only few registers.

Hope it will help you to understand the problem.

2014-12-29 19:36 GMT+03:00 hjl.tools at gmail dot com
gcc-bugzi...@gcc.gnu.org:
 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64434

 --- Comment #7 from H.J. Lu hjl.tools at gmail dot com ---
 r216728 generates much longer code sequences.  Where does it come from?
 Does -m64 also generate longer code sequences?

 --
 You are receiving this mail because:
 You reported the bug.


[Bug target/64412] [regression] ICE in offload compiler: in extract_insn, at recog.c:2327

2014-12-29 Thread iverbin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64412

--- Comment #4 from iverbin at gcc dot gnu.org ---
(In reply to H.J. Lu from comment #3)
 (In reply to iverbin from comment #2)
  (In reply to H.J. Lu from comment #1)
   (In reply to iverbin from comment #0)
To reproduce using Intel Xeon Phi emulation:
1. Build offload and host compilers as described in
https://gcc.gnu.org/wiki/Offloading#How_to_try_offloading_enabled_GCC
2. Run make check-target-libgomp RUNTESTFLAGS=c.exp=e.53.5.c
   
   Can you create a stanalone testcase for the Intel Xeon Phi offload
   cross compiler?  It will be easier to debug.
  
  The offload model in GCC implies 2 compilers: one produces IR for OpenMP
  target regions, and another compiles this IR for Intel Xeon Phi.
  There is no single compiler, which could stream offload IR out, then stream
  it in, and then compile.
  I can reduce e.53.5.c testcase, not sure whether this is helpful.
 
 Can you use gcc -v -save-temps to see what is passed to the offload
 compiler and feed them to the offload compiler directly?

Yes, this is possible.
However, the function preload_common_nodes, modified in r218767, is used for
both IN/OUT streaming, therefore the IR should be produced and consumed by
compilers built from the same sources.

Here are the reduced testcase and corresponding IR for: gcc -fopenmp -O1 -S
pr64412.c

To reproduce the error:
1. Configure and make gcc with:
--enable-as-accelerator-for=x86_64-unknown-linux
--host=x86_64-intelmicemul-linux --build=x86_64-intelmicemul-linux
--target=x86_64-intelmicemul-linux
2. Run: as pr64412.s -o pr64412.o 
x86_64-unknown-linux-accel-x86_64-intelmicemul-linux-gnu-gcc -xlto -fopenmp -O1
-shared -fPIC pr64412.o


[Bug target/64412] [regression] ICE in offload compiler: in extract_insn, at recog.c:2327

2014-12-29 Thread iverbin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64412

--- Comment #5 from iverbin at gcc dot gnu.org ---
Created attachment 34350
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34350action=edit
Source code


[Bug target/64412] [regression] ICE in offload compiler: in extract_insn, at recog.c:2327

2014-12-29 Thread iverbin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64412

--- Comment #6 from iverbin at gcc dot gnu.org ---
Created attachment 34351
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34351action=edit
pr64412.s


[Bug tree-optimization/64434] [5 Regression] Performance regression after operand canonicalization (r216728).

2014-12-29 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64434

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

Summary|[5 Regression] Performance  |[5 Regression] Performance
   |regression after operand|regression after operand
   |cannibalization (r216728).  |canonicalization (r216728).

--- Comment #9 from H.J. Lu hjl.tools at gmail dot com ---
(In reply to Yuri Rumyantsev from comment #8)
 The issue is caused by operand canonicalization, i.e. there is special
 operand odering for commutative operations to have the same
 representation for  a + b and b + a. If computation of second operand
 requires more operations this may lead to live range increasing ( for
 live variables computed by first operand). If we swap these operands
 we get live range shrinking which is essential for 32-bit targets
 having only few registers.
 

Are there any benefits for operand canonicalization for x86-64? Testcases
in r216728 seems to indicate that it is a good thing to do.  There may be
a case where operand canonicalization even wins for x86.


[Bug tree-optimization/64434] [5 Regression] Performance regression after operand canonicalization (r216728).

2014-12-29 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64434

--- Comment #10 from rguenther at suse dot de rguenther at suse dot de ---
On December 29, 2014 5:56:25 PM CET, ysrumyan at gmail dot com
gcc-bugzi...@gcc.gnu.org wrote:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64434

--- Comment #8 from Yuri Rumyantsev ysrumyan at gmail dot com ---
The issue is caused by operand canonicalization, i.e. there is special
operand odering for commutative operations to have the same
representation for  a + b and b + a. If computation of second operand
requires more operations this may lead to live range increasing ( for
live variables computed by first operand). If we swap these operands
we get live range shrinking which is essential for 32-bit targets
having only few registers.

Hope it will help you to understand the problem.

This is essentially a scheduling issue (and thus also related to TER).  I
played with the idea of a SSA life-range reducing BB scheduling without much
success.  The trick of swapping operands to expand the expensive one first
sounds good to me.

2014-12-29 19:36 GMT+03:00 hjl.tools at gmail dot com
gcc-bugzi...@gcc.gnu.org:
 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64434

 --- Comment #7 from H.J. Lu hjl.tools at gmail dot com ---
 r216728 generates much longer code sequences.  Where does it come
from?
 Does -m64 also generate longer code sequences?

 --
 You are receiving this mail because:
 You reported the bug.


[Bug fortran/47674] gfortran.dg/realloc_on_assign_5.f03: Segfault at run time for deferred (allocatable) string length

2014-12-29 Thread tkoenig at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47674

Thomas Koenig tkoenig at gcc dot gnu.org changed:

   What|Removed |Added

   Assignee|unassigned at gcc dot gnu.org  |tkoenig at gcc dot 
gnu.org

--- Comment #9 from Thomas Koenig tkoenig at gcc dot gnu.org ---
I have a patch (not a pretty one, though).


[Bug fortran/60357] [F08] structure constructor with unspecified values for allocatable components

2014-12-29 Thread vehre at gmx dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60357

--- Comment #11 from Andre Vehreschild vehre at gmx dot de ---
Hi Janus,

before you invest too much time into that: My current patch level produces
intermediate code as attached (for a slightly different program, also
attached).
I was solving the (re-)alloc on assign issue like in PR61275. I now run into
the
runtime error: 

At line 15 of file test_pr60357.f08: Attempting to allocate
already allocated variable 'de'.

Obviously I have over fullfilled the needed allocs:

(1) a.5.y is allocated
(2) a.4.y is allocated
(3) a.0.y is allocated
(4) de.y is allocated
(5) a.2.y is allocated

I am wondering which allocs should really be done, and which one are accidently
added. I doubt that (1) and (2) should be there. (3) and (5) are ok imho. Now
my client (the reporter of the bug, Antony) tells me, that (4) is valid Fortran
(valid by ifort), but the allocate(De%y) is useless there, as it is freed
before the constructor assign with implicit alloc is done. With my current
patch level, your program would be running fine, because I would auto alloc y
on the assignment.

To summarize my questions: 

Which allocs should be done? 

Given the too allocs in (1) and (2) are removed, would the intermediate code be
correct for the fortran?

Can you help me on this.

Regards,
Andre


On Mon, 29 Dec 2014 16:42:01 +
janus at gcc dot gnu.org gcc-bugzi...@gcc.gnu.org wrote:

 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60357
 
 --- Comment #10 from janus at gcc dot gnu.org ---
 (In reply to Andre Vehreschild from comment #9)
  I just need to
  figure, if allocating the component explicitly is valid in Fortran.
 
 For sure. I think both the examples in comment 4 and 5 are actually valid
 Fortran code.
 
 In order to make sure we're talking about the same thing, let's have a look at
 the following code:
 
 Type A
   integer :: X = 1
   integer, allocatable :: y
 end type
 Type(A) :: Me
 allocate(Me%y)
 print *,A
 Me = A(X=1, y=2)
 print *,B
 print *, Me%y
 end
 
 This is a variant of the example above that produced the segfault. I inserted
 some print statements in order to debug it. It prints at runtime:
 
  A
  B
 
 Program received signal SIGSEGV: Segmentation fault - invalid memory
 reference.
 
 
 This shows clearly that the segfault occurs when we try to access Me%y in the
 last print statement, meaning that it is probably unallocated although it
 clearly should be.
 
 -fdump-tree-original shows that the problem is in the translation of the
 structure constructor assignment, which apparently leaves the y-component
 unallocated.



[Bug fortran/60357] [F08] structure constructor with unspecified values for allocatable components

2014-12-29 Thread vehre at gmx dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60357

--- Comment #12 from Andre Vehreschild vehre at gmx dot de ---
Created attachment 34353
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34353action=edit
test_pr60357.f08


[Bug fortran/60289] allocating class(*) pointer as character gives type-spec requires the same character-length parameter

2014-12-29 Thread vehre at gmx dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60289

--- Comment #5 from Andre Vehreschild vehre at gmx dot de ---
Patch available in:
https://gcc.gnu.org/ml/fortran/2014-12/msg00133.html


[Bug regression/64437] New: hang with iconv on the configure : checking whether the C compiler works

2014-12-29 Thread dark_footix at yahoo dot fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64437

Bug ID: 64437
   Summary: hang with iconv on the configure : checking whether
the C compiler works
   Product: gcc
   Version: 4.9.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: regression
  Assignee: unassigned at gcc dot gnu.org
  Reporter: dark_footix at yahoo dot fr

Created attachment 34354
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34354action=edit
mipsel-linux-uclibc config file for buildroot

Hi, 

I create a mips toolchain 4.9.2 with the config file in attachment. 

For the gcc in result, I try to configure the iconv, but the pc freeze on the
log checking whether the C compiler works

Do you have some advice ?


[Bug libstdc++/53579] libstdc++ configure use CXXFLAGS instead of CXXFLAGS_FOR_TARGET

2014-12-29 Thread anatol.pomozov at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53579

--- Comment #3 from Anatol anatol.pomozov at gmail dot com ---
I just hit this issue when tried to build cross-tools for arm64.
CFLAGS_FOR_TARGET works as expected and I was assuming that CXXFLAGS_FOR_TARGET
is used instead of CXXFLAGS.

If CXXFLAGS_FOR_TARGET is not honored now, what is recommended workaround for
cross-compilers that need different CXXFLAGS for host and target?


[Bug regression/64437] hang with iconv on the configure : checking whether the C compiler works

2014-12-29 Thread dark_footix at yahoo dot fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64437

--- Comment #1 from fredm dark_footix at yahoo dot fr ---
Created attachment 34355
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34355action=edit
configure file of iconv

checking whether the C compiler works appear line 4048


[Bug regression/64437] hang with iconv on the configure : checking whether the C compiler works

2014-12-29 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64437

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2014-12-29
 Ever confirmed|0   |1

--- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org ---
Yes how did you configure GCC?  Run gdb on the resulting compiler to see why it
is hanging.


[Bug regression/64437] hang with iconv on the configure : checking whether the C compiler works

2014-12-29 Thread dark_footix at yahoo dot fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64437

--- Comment #3 from fredm dark_footix at yahoo dot fr ---
configure:4058: checking whether the C compiler works
configure:4080: ccache
/home/sah0027/worksets/5.2.11e38_7241/sources/hardco/toolchain/broadcom/PROJ/broadcom_4.9.2/MAIN/bin/mipsel-linux-gcc
  -O2 -ggdb3   -fPIC  -D_LARGEFILE64_SOURCE  -D_FILE_OFFSET_BITS=64 
-fdiagnostics-color=always  -isystem
/home/sah0027/worksets/5.2.11e38_7241/build/build/DEV/PROJ/ETISALAT/REL/2014-10-21_V8.0.7e2/output/staging/include
-isystem
/home/sah0027/worksets/5.2.11e38_7241/build/build/DEV/PROJ/ETISALAT/REL/2014-10-21_V8.0.7e2/output/staging/usr/include
 
-L/home/sah0027/worksets/5.2.11e38_7241/build/build/DEV/PROJ/ETISALAT/REL/2014-10-21_V8.0.7e2/output/staging/lib
-L/home/sah0027/worksets/5.2.11e38_7241/build/build/DEV/PROJ/ETISALAT/REL/2014-10-21_V8.0.7e2/output/staging/usr/lib
-Wl,-rpath-link,/home/sah0027/worksets/5.2.11e38_7241/build/build/DEV/PROJ/ETISALAT/REL/2014-10-21_V8.0.7e2/output/staging/lib
-Wl,-rpath-link,/home/sah0027/worksets/5.2.11e38_7241/build/build/DEV/PROJ/ETISALAT/REL/2014-10-21_V8.0.7e2/output/staging/usr/lib
conftest.c  5


[Bug regression/64437] hang with iconv on the configure : checking whether the C compiler works

2014-12-29 Thread dark_footix at yahoo dot fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64437

--- Comment #4 from fredm dark_footix at yahoo dot fr ---


cat conftest.c 

/* confdefs.h */
#define PACKAGE_NAME 
#define PACKAGE_TARNAME 
#define PACKAGE_VERSION 
#define PACKAGE_STRING 
#define PACKAGE_BUGREPORT 
#define PACKAGE_URL 
#define PACKAGE libiconv
#define VERSION 1.14
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}


[Bug target/64412] [regression] ICE in offload compiler: in extract_insn, at recog.c:2327

2014-12-29 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64412

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 Status|WAITING |NEW

--- Comment #7 from H.J. Lu hjl.tools at gmail dot com ---
Confirmed.


[Bug sanitizer/64435] [5.0.0 Regression] Bootstrap failure in libsanitizer on AArch64 with Linux kernel = 3.15

2014-12-29 Thread david.abdurachmanov at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64435

--- Comment #1 from David Abdurachmanov david.abdurachmanov at gmail dot com 
---
Created attachment 34356
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34356action=edit
RFC patch (tested)

Bootstrapped on aarch64-linux-gnu machine with F19 + 3.12 and on QEMU with F21
+ 3.17.


[Bug sanitizer/64435] [5.0.0 Regression] Bootstrap failure in libsanitizer on AArch64 with Linux kernel = 3.15

2014-12-29 Thread david.abdurachmanov at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64435

--- Comment #2 from David Abdurachmanov david.abdurachmanov at gmail dot com 
---
linux/version.h does not bring any additional kernel headers, its fully
standalone and seems fine to include.

There might be a problem is someone builds a distribution with GCC 5 and kernel
=3.15 and then decides to update the kernel creating mismatch with
libsanitizer.


[Bug libstdc++/64438] New: Removing string-conversion requirement causes libstdc++-v3 fails on AArch64.

2014-12-29 Thread belagod at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64438

Bug ID: 64438
   Summary: Removing string-conversion requirement causes
libstdc++-v3 fails on AArch64.
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: belagod at gcc dot gnu.org

This patch:

https://gcc.gnu.org/ml/gcc-patches/2014-12/msg01780.html

causes UNSUPPORTED tests to get compiled on AArch64.

FAIL: 21_strings/basic_string/numeric_conversions/char/dr1261.cc (test for
excess errors)
UNRESOLVED: 21_strings/basic_string/numeric_conversions/char/dr1261.cc
compilation failed to produce executable
FAIL: 21_strings/basic_string/numeric_conversions/char/stod.cc (test for excess
errors)
UNRESOLVED: 21_strings/basic_string/numeric_conversions/char/stod.cc
compilation failed to produce executable
FAIL: 21_strings/basic_string/numeric_conversions/char/stof.cc (test for excess
errors)
UNRESOLVED: 21_strings/basic_string/numeric_conversions/char/stof.cc
compilation failed to produce executable
FAIL: 21_strings/basic_string/numeric_conversions/char/stoi.cc (test for excess
errors)
UNRESOLVED: 21_strings/basic_string/numeric_conversions/char/stoi.cc
compilation failed to produce executable
FAIL: 21_strings/basic_string/numeric_conversions/char/stol.cc (test for excess
errors)
UNRESOLVED: 21_strings/basic_string/numeric_conversions/char/stol.cc
compilation failed to produce executable
FAIL: 21_strings/basic_string/numeric_conversions/char/stold.cc (test for
excess errors)
UNRESOLVED: 21_strings/basic_string/numeric_conversions/char/stold.cc
compilation failed to produce executable
FAIL: 21_strings/basic_string/numeric_conversions/char/stoll.cc (test for
excess errors)
UNRESOLVED: 21_strings/basic_string/numeric_conversions/char/stoll.cc
compilation failed to produce executable
FAIL: 21_strings/basic_string/numeric_conversions/char/stoul.cc (test for
excess errors)
UNRESOLVED: 21_strings/basic_string/numeric_conversions/char/stoul.cc
compilation failed to produce executable
FAIL: 21_strings/basic_string/numeric_conversions/char/stoull.cc (test for
excess errors)
UNRESOLVED: 21_strings/basic_string/numeric_conversions/char/stoull.cc
compilation failed to produce executable
FAIL: 21_strings/basic_string/numeric_conversions/char/to_string.cc (test for
excess errors)
UNRESOLVED: 21_strings/basic_string/numeric_conversions/char/to_string.cc
compilation failed to produce executable


[Bug target/53988] [SH] tst Rm,Rn not used for QI/HImode

2014-12-29 Thread olegendo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53988

Oleg Endo olegendo at gcc dot gnu.org changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
   Last reconfirmed||2014-12-29
 Resolution|FIXED   |---
 Ever confirmed|0   |1

--- Comment #4 from Oleg Endo olegendo at gcc dot gnu.org ---
The change in r192982 results in wrong code:

int test (short x, short* y, int z, int w)
{
  return x  y[0] ? z : w;
}

mov.w   @r5,r1// sign extended y[0], bits[31:16] = 1
tst r4,r1 // r4 bits [31:16] undefined
bf  .L5
mov r7,r0
rts
nop
.align 1
.L5:
rts
mov r6,r0

The *tstmode_t_zero insns blindly accept subregs.  They have to check whether
both operands have been sign extended or at least one of them has been zero
extended (to mask out the unwanted high bits).


[Bug target/64412] [regression] ICE in offload compiler: in extract_insn, at recog.c:2327

2014-12-29 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64412

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

   Target Milestone|--- |5.0


[Bug target/64412] [regression] ICE in offload compiler: in extract_insn, at recog.c:2327

2014-12-29 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64412

--- Comment #8 from H.J. Lu hjl.tools at gmail dot com ---
Created attachment 34357
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34357action=edit
A patch

Can you try this?


[Bug c/64439] New: Incorrect location of -Wunused-value or false negative

2014-12-29 Thread chengniansun at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64439

Bug ID: 64439
   Summary: Incorrect location of -Wunused-value or false negative
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: chengniansun at gmail dot com

For the expression a  ((b = 0) != 0), GCC warns that the expression value
((b = 0) != 0) is not used. Should it point to the whole expression rather
this sub-expression? Or this is a false negative of -Wunused-value?


$: cat s.c 
void f(int a, int b) { 
  a  ((b = 0) != 0); 
}
$: 
$: gcc-trunk -c -Wunused-value s.c 
s.c: In function ‘f’:
s.c:2:17: warning: value computed is not used [-Wunused-value]
   a  ((b = 0) != 0); 
 ^
$: 
$: clang-trunk -c -Wunused-value s.c
s.c:2:5: warning: expression result unused [-Wunused-value]
  a  ((b = 0) != 0); 
  ~ ^  ~~
1 warning generated.
$: 
$:

[Bug fortran/64432] [5 Regression] SYSTEM_CLOCK(COUNT_RATE=rate) wrong result for integer(4)::rate

2014-12-29 Thread anlauf at gmx dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64432

--- Comment #7 from Harald Anlauf anlauf at gmx dot de ---
(In reply to Harald Anlauf from comment #5)
 (In reply to Francois-Xavier Coudert from comment #4)
  If you have another idea, please post a list of what you think should happen
  in all various cases (all possible combinations of arguments have to be
  allowed).
 
 Let's see:
 
 - For any number of arguments present (1, 2 or 3)
   - always integer(4): msec resolution (as before)
   - always integer(=8): usec resolution (or whatever is possible)
   - always real: I don't care, but I think it might be a good idea
 to use the same as for integer of a compatible kind.
   - different types and/or kinds: I don't care, since one should
 expect problems (wrapping or truncation) anyway.
 
 But presence of non-presence should never make a difference
 if consistent types and kinds are used.

I played around with other compilers and posted the result at:

https://groups.google.com/forum/?hl=en#!topic/comp.lang.fortran/5aoFFRNBP0g

The only compiler that allows for different timer resolutions and
produces an at least self-consistent result appears to be Intel.
It actually treats each argument separately: if it is a 4-byte
argument, it returns values referring to the low-res (0.1 msec) version;
for an 8-byte argument one gets the high-res (1 usec) version.
(Confirmed by looking at the explicit assembler code).

That would be even simpler than any of the versions I discussed above.

The actual implementation then might generate a call to
_gfortran_system_clock_{4,8} for each present argument,
with the respective kind taken into account.


[Bug c++/64422] basic_string::erase is unresloved

2014-12-29 Thread bernd.edlinger at hotmail dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64422

Bernd Edlinger bernd.edlinger at hotmail dot de changed:

   What|Removed |Added

  Attachment #34341|0   |1
is obsolete||

--- Comment #3 from Bernd Edlinger bernd.edlinger at hotmail dot de ---
Created attachment 34358
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34358action=edit
Proposed Fix

updated, with test case.


[Bug fortran/55534] -Wno-missing-include-dirs does not work with gfortran

2014-12-29 Thread anlauf at gmx dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55534

--- Comment #9 from Harald Anlauf anlauf at gmx dot de ---
(In reply to Manuel López-Ibáñez from comment #8)
 (In reply to Manuel López-Ibáñez from comment #7)
  The ideal fix for this would adding a function like:
 
 I forgot about this bug and redid the above from scratch. But this time, I
 actually tested that it works:
 https://gcc.gnu.org/ml/fortran/2014-10/msg00019.html

Has this patch been applied?

I checked r219084.  The bug is still there:

% gfc-trunk -Wno-missing-include-dirs xxx.f90 -I /no/such/dir
f951: Warning: Nonexistent include directory '/no/such/dir'
[-Wmissing-include-dirs]

At least I now see the colors...

[Bug target/64412] [regression] ICE in offload compiler: in extract_insn, at recog.c:2327

2014-12-29 Thread iverbin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64412

--- Comment #9 from iverbin at gcc dot gnu.org ---
(In reply to H.J. Lu from comment #8)
 Created attachment 34357 [details]
 A patch
 
 Can you try this?

Thank you, e.53.5.c now passed.

However for-3.c and for-11.C still fails with another unrecognizable insn. I
attached reduced testcase (pr64412_2).


[Bug target/64412] [regression] ICE in offload compiler: in extract_insn, at recog.c:2327

2014-12-29 Thread iverbin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64412

--- Comment #10 from iverbin at gcc dot gnu.org ---
Created attachment 34359
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34359action=edit
pr64412_2.c


[Bug target/64412] [regression] ICE in offload compiler: in extract_insn, at recog.c:2327

2014-12-29 Thread iverbin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64412

--- Comment #11 from iverbin at gcc dot gnu.org ---
Created attachment 34360
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34360action=edit
pr64412_2.s


[Bug target/57037] GCC does not generate non-temporal stores on i386 with SSE2+

2014-12-29 Thread anlauf at gmx dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57037

--- Comment #1 from Harald Anlauf anlauf at gmx dot de ---
(In reply to Harald Anlauf from comment #0)
 gfortran (using -Ofast -fprefetch-loop-arrays) exactly
 reproduces the performance of the Intel compiler without
 temporal stores.  It appears that this is an important
 optimization.

I tried a current snapshot from trunk (r219084) and found
that -fprefetch-loop-arrays now gives an additional boost,
matching Intel v15 for the above code, even without the
streaming stores.


[Bug c/64423] Incorrect column number of -Wchar-subscripts

2014-12-29 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64423

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 CC||mpolacek at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |mpolacek at gcc dot 
gnu.org
   Target Milestone|--- |5.0

--- Comment #2 from Marek Polacek mpolacek at gcc dot gnu.org ---
Let me take a look (next week).


[Bug target/63681] ICE in cfg_layout_initialize, at cfgrtl.c:4233

2014-12-29 Thread mikpelinux at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63681

--- Comment #5 from Mikael Pettersson mikpelinux at gmail dot com ---
The ICE on bfin-elf started for 4.9 with r204985, and stopped for 5.0 with
r210683.  Backporting r210683 to current 4.9 branch is easy and fixes the ICE
there too.  I haven't checked c6x.

See also:
https://gcc.gnu.org/ml/gcc-patches/2014-01/msg6.html
https://gcc.gnu.org/ml/gcc-patches/2014-05/msg01725.html


[Bug fortran/55534] -Wno-missing-include-dirs does not work with gfortran

2014-12-29 Thread manu at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55534

--- Comment #10 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
(In reply to Harald Anlauf from comment #9)
 (In reply to Manuel López-Ibáñez from comment #8)
  (In reply to Manuel López-Ibáñez from comment #7)
   The ideal fix for this would adding a function like:
  
  I forgot about this bug and redid the above from scratch. But this time, I
  actually tested that it works:
  https://gcc.gnu.org/ml/fortran/2014-10/msg00019.html
 
 Has this patch been applied?

An equivalent one has. The remaining problem (I think) is that the warning is
given when -I is processed, so the order of -I and -Wno-missing-include-dirs
matters. In your example, the order should be correct, but the driver
unhelpfully re-orders the command-line as:

f951 xxx.f90 -I /no/such/dir -quiet -dumpbase xxx.f90 -mtune=generic
-march=x86-64 -auxbase xxx -Wno-missing-include-dirs -fintrinsic-modules-path
finclude -o /tmp/ccwz8Va5.s

If I invoke f951 manually, it works:

f951 -Wno-missing-include-dirs ~/xxx.f90 -I /no/such/dir
-Wno-missing-include-dirs

However, if I invoke it like this it doesn't work:

f951 -Wno-missing-include-dirs ~/xxx.f90 -I /no/such/dir
-Wno-missing-include-dirs

because prune_options removes duplicated options by keeping the last one.

Thus, the fix is either to buffer the arguments to -I and process them after
all options have been processed or move just the warning code to such a latter
phase. I'm not sure what is simpler.

This is what the C/C++ FE does (see incpath.c add_path, which is called when -I
is processed and c-opts.c register_include_chains, which is called after
options processing and gives the diagnostics).

Note that this applies to all warnings given by add_path_to_list, since ideally
they should be disabled by --no-warnings (aka -w), but currently it depends
on the order they are given.

Opportunity Never Wait for Anybody : New Session Announcement For Distance Learning Courses

2014-12-29 Thread Anushka ISMS
Get MBA, E-MBA , MMS, DMS, PGDBM ,DBM etc done without disturbing your job... 
Any Certificate NO Donation / Percentage Barrier

International Attestations by Ministry of External Affairs and Foreign Affairs 
(Charges apply*)

GIVE US AN OPPORTUNITY TO MAKE YOUR CAREER:

Please reply to this mail providing following details to obtain detail 
information about our Institute, Course, Exams etc.

Name:

Contact No.:

Email id :

Course of Interest:

Specialization:

Query:

Qualifications  Work Experience :

Address Details:

When you're ready to make the time, my help is just a phone call or e-mail away.

With your success in mind,

For ISMS

Indian School of Management  Studies,

Anushka ISMS

Email :- anus...@ismsedu.com

Website :- www.ismsedu.com


[Bug target/64412] [regression] ICE in offload compiler: in extract_insn, at recog.c:2327

2014-12-29 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64412

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

  Attachment #34357|0   |1
is obsolete||

--- Comment #12 from H.J. Lu hjl.tools at gmail dot com ---
Created attachment 34361
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34361action=edit
A new patch

Please try the new patch.


[Bug c++/64433] Segmentation fault while compiling

2014-12-29 Thread ktietz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64433

Kai Tietz ktietz at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ktietz at gcc dot gnu.org

--- Comment #2 from Kai Tietz ktietz at gcc dot gnu.org ---
Issue is access of the type of a COMPONENT_REF in finish_offsetof.  For the
template the COMPONENT_REF has NULL_TREE type.

Actually it seems that we should check here for in-template case.


[Bug c/64439] Incorrect location of -Wunused-value or false negative

2014-12-29 Thread manu at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64439

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

   What|Removed |Added

 CC||manu at gcc dot gnu.org

--- Comment #1 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
It doesn't seem a false negative to me. 

It is a bit strange that we get different locations for equivalent expressions:

s.c:2:17: warning: value computed is not used [-Wunused-value]
   a  ((b = 0) != 0); 
 ^
s.c:3:18: warning: value computed is not used [-Wunused-value]
   ((b = 0) != 0)  a;
  ^

But I'm not sure if it is a bug. Someone would need to look at gcc while
compiling the testcase under a debugger to understand why the difference exists
at all.

[Bug regression/64437] hang with iconv on the configure : checking whether the C compiler works

2014-12-29 Thread dark_footix at yahoo dot fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64437

fredm dark_footix at yahoo dot fr changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution|--- |INVALID

--- Comment #5 from fredm dark_footix at yahoo dot fr ---
Sorry, I did a mismatch of pre build lib with my previous toolchain 

This bug is closed


[Bug c/64440] New: -Wdiv-by-zero false negative on const variables

2014-12-29 Thread chengniansun at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64440

Bug ID: 64440
   Summary: -Wdiv-by-zero false negative on const variables
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: chengniansun at gmail dot com

In the following test case, the variable b is constant zero. However, GCC
does not warn div-by-zero on the expression a / b. More details are shown as
below: 



$: cat t.c
int f (int a) {
  const int b = 0;
  return a / b;
}
$: 
$: gcc-trunk -c -Wdiv-by-zero t.c 
$:
$: clang-trunk -c -Wdivision-by-zero t.c
t.c:3:12: warning: division by zero is undefined [-Wdivision-by-zero]
  return a / b;
   ^ ~
1 warning generated.
$:


[Bug c/64440] -Wdiv-by-zero false negative on const variables

2014-12-29 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64440

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org ---
In C, const int is not a constant expression and -Wdiv-by-zero only warns about
integer constant expressions.


[Bug fortran/52010] [OOP] Intrinsic assignment of a CLASS to a TYPE

2014-12-29 Thread pault at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52010

Paul Thomas pault at gcc dot gnu.org changed:

   What|Removed |Added

 CC||damian at sourceryinstitute 
dot or
   ||g

--- Comment #8 from Paul Thomas pault at gcc dot gnu.org ---
In fact, it appears that both tests are fixed by the current patch in PR63205.
This works fine:

module m_test
  implicit none
  type ta
private
integer :: i = 99
contains
  procedure :: suba
  end type ta
  type tb
private
class(ta), pointer :: pa = null()
  contains
procedure :: disp
  end type tb
contains
  function suba( a, v) result(b)
class(ta), target, intent(inout) :: a
type(tb) :: b
integer :: v
a%i = v
b%pa = a
  end function suba
  subroutine disp (arg)
class(tb), intent(in) :: arg
print *, arg%pa%i
  end subroutine
end module m_test

  use m_test
  class(ta), allocatable :: tgt
  type(tb) :: PTR
  allocate (tgt)
  ptr = tgt%suba(42)
  call ptr%disp
  deallocate (tgt)
end


Paul


[Bug bootstrap/50139] in-tree GMP/PPL/CLooG is misconfigured

2014-12-29 Thread nightstrike at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=50139

--- Comment #3 from nightstrike nightstrike at gmail dot com ---
Both cloog and ppl have been removed from GCC in favor of just isl.

GCC 4.8 removes ppl in 2012:
https://gcc.gnu.org/ml/gcc-patches/2012-06/msg01470.html

GCC 5.0 removes cloog:
https://gcc.gnu.org/ml/gcc-patches/2014-11/msg01167.html

There's other relevant posts, but you get the idea.  Anyway, this should
eventually be closed.


[Bug c/64440] -Wdiv-by-zero false negative on const variables

2014-12-29 Thread chengniansun at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64440

--- Comment #2 from Chengnian Sun chengniansun at gmail dot com ---

(In reply to Andrew Pinski from comment #1)
 In C, const int is not a constant expression and -Wdiv-by-zero only warns
 about integer constant expressions.

Thanks for your reply. It seems GCC sometimes does consider const int for
other types of warnings (but not for -Wdiv-by-zero). See the following, with
-O3, GCC warns that the left shift count is negative.  

$: cat t.c
int f(int a) {
  const char c = -4;
  return a  c;
}
$: gcc-trunk -Wall -c t.c -O3
t.c: In function ‘f’:
t.c:3:12: warning: left shift count is negative
   return a  c;
^
$: