[Bug testsuite/63352] New: problem with fmt_g0_1.f08 on i386-pc-solaris2.11

2014-09-24 Thread richard at netbsd dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63352

Bug ID: 63352
   Summary: problem with fmt_g0_1.f08  on i386-pc-solaris2.11
   Product: gcc
   Version: 4.9.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: testsuite
  Assignee: unassigned at gcc dot gnu.org
  Reporter: richard at netbsd dot org

Running the testsuite for gcc 4.9.1 I notice the following gfortran failures:
=== gfortran tests ===


Running target unix
FAIL: gfortran.dg/default_format_1.f90  -O0  execution test
FAIL: gfortran.dg/default_format_1.f90  -O1  execution test
FAIL: gfortran.dg/default_format_1.f90  -O2  execution test
FAIL: gfortran.dg/default_format_1.f90  -O3 -fomit-frame-pointer  execution
test
FAIL: gfortran.dg/default_format_1.f90  -O3 -fomit-frame-pointer -funroll-loops
 execution test
FAIL: gfortran.dg/default_format_1.f90  -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  execution test
FAIL: gfortran.dg/default_format_1.f90  -O3 -g  execution test
FAIL: gfortran.dg/default_format_1.f90  -Os  execution test
FAIL: gfortran.dg/fmt_g0_1.f08  -O0  execution test
FAIL: gfortran.dg/fmt_g0_1.f08  -O1  execution test
FAIL: gfortran.dg/fmt_g0_1.f08  -O2  execution test
FAIL: gfortran.dg/fmt_g0_1.f08  -O3 -fomit-frame-pointer  execution test
FAIL: gfortran.dg/fmt_g0_1.f08  -O3 -fomit-frame-pointer -funroll-loops 
execution test
FAIL: gfortran.dg/fmt_g0_1.f08  -O3 -fomit-frame-pointer -funroll-all-loops
-finline-functions  execution test
FAIL: gfortran.dg/fmt_g0_1.f08  -O3 -g  execution test
FAIL: gfortran.dg/fmt_g0_1.f08  -Os  execution test


Concerning the fmt_g0_1.f08 cases, I notice in particular that while debugging
the following bits are the problem:
10  write(buffer, string) ':',1.0_8/3.0_8,':'  │
11  if (buffer.ne.:.1:) call abort   │

after 10, the value of buffer is:
(gdb) print buffer
$1 = ':.', '3' repeats 16 times, '2:', ' ' repeats 30 times

Testsuite problem or no?

This is running on SunOS 5.11 (illumos) pkgsrc trunk
Compiler version: 4.9.1 (GCC) 
Platform: i386-sun-solaris2.11
configure flags: --enable-languages='c obj-c++ objc go fortran c++'
--enable-shared --enable-long-long --with-local-prefix=/opt/local/gcc49
--enable-libssp --enable-threads=posix --with-boot-ldflags='-static-libstdc++
-static-libgcc -Wl,-R/opt/local/gcc47/lib/gcc/i386-sun-solaris2.11/4.7.3
-Wl,-R/opt/local/gcc47/lib -Wl,-R/opt/local/lib ' --with-system-zlib
--disable-nls --with-gmp=/opt/local --with-mpc=/opt/local
--with-mpfr=/opt/local --with-isl=/opt/local --disable-isl-version-check
--with-cloog=/opt/local --enable-__cxa_atexit
--with-gxx-include-dir=/opt/local/gcc49/include/c++/ --with-gnu-as
--with-as=/opt/local/bin/gas --without-gnu-ld --with-ld=/usr/bin/ld
--with-libiconv-prefix=/opt/local --prefix=/opt/local/gcc49
--build=i386-sun-solaris2.11 --host=i386-sun-solaris2.11
--infodir=/opt/local/gcc49/info --mandir=/opt/local/gcc49/man

[Bug target/56253] fp-contract does not work with SSE and AVX FMAs (neither FMA4 nor FMA3)

2014-09-24 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56253

--- Comment #12 from Marc Glisse glisse at gcc dot gnu.org ---
(In reply to Agner Fog from comment #11)
 Thanks for the links Marc. 
 You are right, the discussion in the gcc-patches mailing list ignores
 integer vectors. You need a solution that also allows optimizations on
 integer intrinsic functions (perhaps cast the vector type?).

If you follow the links, you can find:
https://gcc.gnu.org/ml/gcc-patches/2013-04/msg00374.html
where I handled some integer vector intrinsics as well (there were some bugs in
that patch, but the idea should be fine).

 The proposed solution of using vector extensions will not work on masked
 vector intrinsics in AVX512, so it wouldn't enable e.g. constant propagation
 through a masked intrinsic, but that is probably too much to ask for :)

I expect we can get most of the benefits from using vector extensions for very
little effort, while handling the esoteric intrinsics would be a lot more work
so it gets lower priority.


[Bug c++/63353] New: libstdc++-v3/src/c++11/ios.cc:232: possible typo ?

2014-09-24 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63353

Bug ID: 63353
   Summary: libstdc++-v3/src/c++11/ios.cc:232: possible typo ?
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: dcb314 at hotmail dot com

[libstdc++-v3/src/c++11/ios.cc:232] - [libstdc++-v3/src/c++11/ios.cc:232]:
(style) Same expression on both sides of ''.

Offending source code is

   if (!__lhs_local  !__lhs_local)

Maybe

   if (!__lhs_local  !__rhs_local)

or

   if (!__lhs_local)

were intended.


[Bug target/63354] New: -pg -mprofile-kernel creates unused stack frames on leaf functions on ppc64le

2014-09-24 Thread anton at samba dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63354

Bug ID: 63354
   Summary: -pg -mprofile-kernel creates unused stack frames on
leaf functions on ppc64le
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: anton at samba dot org

The following testcase:

int foo(void)
{
return 1;
}

compiled with:

gcc -O2 -pg -mprofile-kernel -S foo.c

produces an unused stack frame:

foo:
mflr 0
std 0,16(1)
bl _mcount
mflr 0
li 3,1
std 0,16(1)
stdu 1,-32(1)
addi 1,1,32
ori 2,2,0
ld 0,16(1)
mtlr 0
blr

Note that older gcc versions allowed -mprofile-kernel to used on its own. While
there are issues with that (eg ignoring attribute no_instrument_function), it
does show the expected behaviour:

gcc -O2 -mprofile-kernel -S foo.c

foo:
mflr 0
std 0,16(1)
bl _mcount
li 3,1
blr

So it seems to be something to do with -pg.


[Bug rtl-optimization/63210] ira does not select the best register compared with gcc 4.8 for ARM THUMB1

2014-09-24 Thread zqchen at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63210

--- Comment #2 from zqchen at gcc dot gnu.org ---
Author: zqchen
Date: Wed Sep 24 07:00:55 2014
New Revision: 215540

URL: https://gcc.gnu.org/viewcvs?rev=215540root=gccview=rev
Log:
ChangeLog:
2014-09-24  Zhenqiang Chen  zhenqiang.c...@arm.com

PR rtl-optimization/63210
* ira-color.c (assign_hard_reg): Ignore conflict cost if the
HARD_REGNO is not availabe for CONFLICT_A.

testsuite/ChangeLog:
2014-09-24  Zhenqiang Chen  zhenqiang.c...@arm.com

* gcc.target/arm/pr63210.c: New test.


Added:
trunk/gcc/testsuite/gcc.target/arm/pr63210.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/ira-color.c
trunk/gcc/testsuite/ChangeLog


[Bug target/62311] Found a potential copy and paste issue on in gcc/config/cr16.c

2014-09-24 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62311

David Binderman dcb314 at hotmail dot com changed:

   What|Removed |Added

 CC||dcb314 at hotmail dot com

--- Comment #1 from David Binderman dcb314 at hotmail dot com ---
Looks like a duplicate of #52124.


[Bug java/63355] New: libjava/classpath/native/jni/gstreamer-peer/gst_native_pipeline.c:180: possible typo ?

2014-09-24 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63355

Bug ID: 63355
   Summary: libjava/classpath/native/jni/gstreamer-peer/gst_native
_pipeline.c:180: possible typo ?
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: java
  Assignee: unassigned at gcc dot gnu.org
  Reporter: dcb314 at hotmail dot com

[trunk/libjava/classpath/native/jni/gstreamer-peer/gst_native_pipeline.c:180]:
(style) Same expression on both sides of '||'.

Source code is

  if (localGstPipelineClass == NULL || localGstPipelineClass == NULL)

I suspect 

  if (localPointerClass == NULL || localGstPipelineClass == NULL)

might have been intended, although it's probably better code
to have the test of localPointerClass immediately after it
is written to, not a few lines later.


[Bug target/63351] Optimization: contract broadcast intrinsics when AVX512 is enabled

2014-09-24 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63351

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||missed-optimization
 Target||x86_64-*-*, i?86-*-*
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-09-24
  Component|c   |target
 Ever confirmed|0   |1

--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org ---
Interesting - so AVX512 allows all(?) source operands to be scalars (in
vector registers)?

In theory combine should be able to handle this if the backend provides
proper patterns.  But I see that _mm512_set1_epi32 expands to sth like

;; _7 = __builtin_ia32_pbroadcastd512_gpr_mask (b_1(D), _6, -1);

(insn 7 6 8 (set (reg:SI 101)
(reg/v:SI 99 [ b ])) ./include/avx512fintrin.h:3566 -1
 (nil))

(insn 8 7 9 (set (reg:V16SI 102)
(subreg:V16SI (reg/v:V8DI 83 [ __Y ]) 0))
./include/avx512fintrin.h:3566 -1
 (nil))

(insn 9 8 10 (set (reg:HI 103)
(const_int -1 [0x])) ./include/avx512fintrin.h:3566 -1
 (nil))

(insn 10 9 11 (set (reg:V16SI 100)
(vec_merge:V16SI (vec_duplicate:V16SI (reg:SI 101))
(reg:V16SI 102)
(reg:HI 103))) ./include/avx512fintrin.h:3566 -1
 (nil))

(insn 11 10 0 (set (reg:V16SI 85 [ D.15281 ])
(reg:V16SI 100)) ./include/avx512fintrin.h:3566 -1
 (nil))

which looks really awkward - or even bogus (insn 10).  What's the semantics
of _mm512_set1_epi32?

It seems that all of the intrinsics expand to sth weird as the above
(the vec_merge), even _mm512_add_epi32.

I'm quite sure this doesn't make the combiners job easier.


[Bug c++/63349] ICE with template in get_narrower fold-const.c

2014-09-24 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63349

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||ice-checking,
   ||ice-on-valid-code
   Target Milestone|4.8.4   |---
  Known to fail||4.2.4, 4.4.7

--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org ---
Also happens with 4.2.x, so indeed pretty old bug.  Triggers with checking
only.

#3  0x0113556e in get_narrower (op=component_ref 0x767d58d0, 
unsignedp_ptr=0x7fffc3e0)
at /space/rguenther/src/svn/trunk/gcc/tree.c:8532
8532   DECL_SIZE (TREE_OPERAND (op, 1)) != 0
(gdb) p debug_tree (op)
 component_ref 0x767d58d0
type integer_type 0x766c8690 int public type_6 SI
size integer_cst 0x766e5030 constant 32
unit size integer_cst 0x766e5048 constant 4
align 32 symtab 0 alias set -1 canonical type 0x766c8690 precision
32 min integer_cst 0x766c4fd8 -2147483648 max integer_cst 0x766e5000
2147483647
pointer_to_this pointer_type 0x766e9738

arg 0 var_decl 0x766d1c60 b
type record_type 0x76821f18 timeval type_5 type_6 SI size
integer_cst 0x766e5030 32 unit size integer_cst 0x766e5048 4
align 32 symtab 0 alias set -1 canonical type 0x76821f18 fields
field_decl 0x768224c0 tv_sec context translation_unit_decl
0x77ff81e0 D.1
full-name struct timeval
X() X(constX) this=(X) n_parents=0 use_template=0
interface-unknown
chain type_decl 0x76822390 timeval
used decl_5 SI file /tmp/t.C line 9 col 24 size integer_cst
0x766e5030 32 unit size integer_cst 0x766e5048 4
align 32 context function_decl 0x76825a20 test
chain var_decl 0x766d1bd0 a type record_type 0x76821f18
timeval
used decl_5 SI file /tmp/t.C line 9 col 21 size integer_cst
0x766e5030 32 unit size integer_cst 0x766e5048 4
align 32 context function_decl 0x76825a20 test
arg 1 identifier_node 0x76831108 tv_sec
bindings (nil)
local bindings (nil)
$2 = void


[Bug rtl-optimization/63348] [5 Regression] gcc.dg/pr43670.c fail on MIPS

2014-09-24 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63348

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Target||mips
 CC||uros at gcc dot gnu.org
   Target Milestone|--- |5.0
Summary|regression gcc.dg/pr43670.c |[5 Regression]
   |fail on MIPS|gcc.dg/pr43670.c fail on
   ||MIPS


[Bug c++/63349] ICE with template in get_narrower fold-const.c

2014-09-24 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63349

--- Comment #4 from Marek Polacek mpolacek at gcc dot gnu.org ---
That identifier_node in a component_ref is bogus, I'm investigating how it got
there.


[Bug tree-optimization/63338] Compiling large amounts of large switch cases takes a large amount of time

2014-09-24 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63338

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||compile-time-hog
 Target||x86_64-*-*
 Status|WAITING |NEW
  Component|middle-end  |tree-optimization
Version|unknown |4.9.1
 Blocks||47344

--- Comment #5 from Richard Biener rguenth at gcc dot gnu.org ---
Well, confirmed to some extent.  Needs to be pin-pointed to a specific pass
still
(bah, those infrastructure timevars make that difficult).


[Bug bootstrap/63235] building fails with --disable-bootstrap

2014-09-24 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63235

David Binderman dcb314 at hotmail dot com changed:

   What|Removed |Added

 CC||dcb314 at hotmail dot com

--- Comment #12 from David Binderman dcb314 at hotmail dot com ---
(In reply to Andi Kleen from comment #0)

 ../../../gcc/libcilkrts/runtime/config/x86/os-unix-sysdep.c: In function
 'restore_x86_fp_state':
 ../../../gcc/libcilkrts/runtime/config/x86/os-unix-sysdep.c:114:5: internal
 compiler error: tree check: expected tree_list, have var_decl in
 get_attribute_name, at attribs.c:679
  if (__builtin_cpu_supports(sse))
  ^

I also see this one when bootstrapping 20140924, revision 215539.

Interestingly, 20140921 was fine.


[Bug rtl-optimization/63348] [5 Regression] gcc.dg/pr43670.c fail on MIPS

2014-09-24 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63348

--- Comment #2 from Uroš Bizjak ubizjak at gmail dot com ---
(In reply to baoshan from comment #1)
 I believe this regression is introduced by the code for cleanup_barriers()
 in jump.c of patch https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02164.html:
 
 The call insn was followed by a barrier insn, the try_split() would emit
 another barrier insn after call insn for this case( I don't know why, please
 let me know the reason); after applying that patch and with option -g
 there would be a note instruction between the call and barrier insns which
 result no barrier insn is emitted by try_split().

try_split should skip eventual note after the call when looking for barrier. It
looks to me that try_split blindly assumes that next insn is the barrier, which
is not the case from the introduction of debug locations.

[Bug tree-optimization/63266] [5 Regression] Test regression: gcc.target/sh/pr53568-1.c

2014-09-24 Thread thopre01 at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63266

--- Comment #1 from thopre01 at gcc dot gnu.org ---
Author: thopre01
Date: Wed Sep 24 08:27:21 2014
New Revision: 215546

URL: https://gcc.gnu.org/viewcvs?rev=215546root=gccview=rev
Log:
2014-09-24  Thomas Preud'homme  thomas.preudho...@arm.com

gcc/
PR tree-optimization/63266
* tree-ssa-math-opts.c (struct symbolic_number): Add comment about
marker for unknown byte value.
(MARKER_MASK): New macro.
(MARKER_BYTE_UNKNOWN): New macro.
(HEAD_MARKER): New macro.
(do_shift_rotate): Mark bytes with unknown values due to sign
extension when doing an arithmetic right shift. Replace hardcoded
mask for marker by new MARKER_MASK macro.
(find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
numbers accordingly.

gcc/testsuite/
PR tree-optimization/63266
* gcc.dg/optimize-bswapsi-1.c (swap32_d): New bswap pass test.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/optimize-bswapsi-1.c
trunk/gcc/tree-ssa-math-opts.c


[Bug tree-optimization/63266] [5 Regression] Test regression: gcc.target/sh/pr53568-1.c

2014-09-24 Thread thopre01 at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63266

thopre01 at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #2 from thopre01 at gcc dot gnu.org ---
Bug introduced during phase 1 of 5.0 and is now resolved there as of r215546


[Bug c++/61945] [5 Regression] tree check fail with -Woverloaded-virtual

2014-09-24 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61945

Markus Trippelsdorf trippels at gcc dot gnu.org changed:

   What|Removed |Added

 CC||hubicka at gcc dot gnu.org

--- Comment #4 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
Started with r211960.


[Bug c++/63356] New: Compilation failure where clang does not have problems

2014-09-24 Thread fiesh at zefix dot tv
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

Bug ID: 63356
   Summary: Compilation failure where clang does not have problems
   Product: gcc
   Version: 4.9.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: fiesh at zefix dot tv

I originally filed this as a boost bug:
https://svn.boost.org/trac/boost/ticket/10531

However, given that clang 3.4.2 has no problems compiling it, I suspect it
might be a gcc issue.

In short, the following code, as of boost 1.56.0, fails to compile with wild
error messages, using 4.9.1 as well as 4.8.3:

#include vector
#include boost/polygon/polygon.hpp
int main()
{
typedef boost::polygon::polygon_dataint Polygon;
typedef boost::polygon::polygon_set_dataint PolygonSet;
PolygonSet ps;
std::vectorPolygon output;
ps.get(output);
}

(It does work with boost = 1.55.0 however!)


[Bug libstdc++/63353] libstdc++-v3/src/c++11/ios.cc:232: possible typo ?

2014-09-24 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63353

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2014-09-24
  Component|c++ |libstdc++
   Assignee|unassigned at gcc dot gnu.org  |redi at gcc dot gnu.org
   Target Milestone|--- |5.0
 Ever confirmed|0   |1

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org ---
Oops, mine.


[Bug sanitizer/63316] [5.0 Regression] False asan positive

2014-09-24 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63316

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org ---
Author: jakub
Date: Wed Sep 24 09:14:17 2014
New Revision: 215547

URL: https://gcc.gnu.org/viewcvs?rev=215547root=gccview=rev
Log:
PR sanitizer/63316
* asan.c (asan_expand_check_ifn): Fix up align = 8 optimization.

* c-c++-common/asan/pr63316.c: New test.

Added:
trunk/gcc/testsuite/c-c++-common/asan/pr63316.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/asan.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/63356] Compilation failure where clang does not have problems

2014-09-24 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

Markus Trippelsdorf trippels at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2014-09-24
 CC||trippels at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
I cannot reproduce the issue. Please attach a per-processed testcase.


[Bug c++/63349] ICE with template in get_narrower fold-const.c

2014-09-24 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63349

--- Comment #5 from Marek Polacek mpolacek at gcc dot gnu.org ---
In finish_class_member_access_expr we have
  expr = build_class_member_access_expr (object, member, access_path,
 /*preserve_reference=*/false,
 complain);
  if (processing_template_decl  expr != error_mark_node)
{
  if (BASELINK_P (member))
{
  if (TREE_CODE (orig_name) == SCOPE_REF)
BASELINK_QUALIFIED_P (member) = 1; 
  orig_name = member;
}
  return build_min_non_dep (COMPONENT_REF, expr,
orig_object, orig_name,
NULL_TREE);

build_class_member_access_expr builds a component_ref that seems to be ok; its
arg1 is a field_decl.  But the subsequent build_min_non_dep call changes this
field_decl into ORIG_NAME, which is an identifier_node.


[Bug c++/63356] Compilation failure where clang does not have problems

2014-09-24 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org ---
You should have read https://gcc.gnu.org/bugs/ and attached preprocessed code
anyway, not everyone has Boost 1.56 already installed.


[Bug libstdc++/63353] libstdc++-v3/src/c++11/ios.cc:232: possible typo ?

2014-09-24 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63353

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org ---
Author: redi
Date: Wed Sep 24 09:40:10 2014
New Revision: 215549

URL: https://gcc.gnu.org/viewcvs?rev=215549root=gccview=rev
Log:
PR libstdc++/63353
* src/c++11/ios.cc (ios_base::_M_swap): Fix typo.

Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/src/c++11/ios.cc


[Bug libstdc++/63353] libstdc++-v3/src/c++11/ios.cc:232: possible typo ?

2014-09-24 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63353

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org ---
Done


[Bug c++/63356] Compilation failure where clang does not have problems

2014-09-24 Thread fiesh at zefix dot tv
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

--- Comment #3 from fiesh at zefix dot tv ---
I wanted to, but the problem is that the ii file is 2.7MB, more than the
maximum allowed file size of 1000KB.  Should I upload it to a different site?

Also I just realized that the problem only occurs with -std=c++11.  (Clang
works with or without.)


[Bug c++/63356] Compilation failure where clang does not have problems

2014-09-24 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

--- Comment #4 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
(In reply to fiesh from comment #3)
 I wanted to, but the problem is that the ii file is 2.7MB, more than the
 maximum allowed file size of 1000KB.  Should I upload it to a different site?
 
 Also I just realized that the problem only occurs with -std=c++11.  (Clang
 works with or without.)

You can use compression. But no need, because I can now reproduce the issue
with -std=c++11.


[Bug c/63344] [5 Regression] Linux (makeallyes config) compilation error: error: apic_numachip causes a section type conflict with numachip_system

2014-09-24 Thread mliska at suse dot cz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63344

--- Comment #4 from Martin Liška mliska at suse dot cz ---
(In reply to Andi Kleen from comment #3)
 Yes it's a kernel bug. I hit it earlier too.
 
 const always needs to go into separate sections.
 const __read_mostly is also meaningless.

Is there any existing bug in Linux Kernel that can be linked to this thread?

[Bug c++/63356] Compilation failure where clang does not have problems

2014-09-24 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

--- Comment #5 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
Created attachment 33545
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33545action=edit
preprocessed testcase

Here's the unreduced testcase. I cannot reduce it, because
clang doesn't handle all the __builtin_ia32_bsrsi, etc. intrinsics.


[Bug preprocessor/58893] [4.8/4.9/5 Regression] command-line:0:0: internal compiler error: Segmentation fault

2014-09-24 Thread bernd.edlinger at hotmail dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58893

Bernd Edlinger bernd.edlinger at hotmail dot de changed:

   What|Removed |Added

 CC||bernd.edlinger at hotmail dot 
de

--- Comment #10 from Bernd Edlinger bernd.edlinger at hotmail dot de ---
Created attachment 33546
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33546action=edit
possible fix

Hi,

I have looked at this issue, and think this is the right fix.

Regarding the hunk in cpp_diagnostic, which is not directly involved
in this bug, but still obviously wrong:

The line src_loc = pfile-cur_run-prev-limit-src_loc
is probably unreachable, but will crash it is ever executed.

see:

_cpp_init_tokenrun (tokenrun *run, unsigned int count)
{
  run-base = XNEWVEC (cpp_token, count);
  run-limit = run-base + count;
  run-next = NULL;
}

limit points at the end of the run, prev is uninitialized.

Comments?


[Bug c/63357] New: Warn for P P and P || P

2014-09-24 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63357

Bug ID: 63357
   Summary: Warn for P  P and P || P
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: mpolacek at gcc dot gnu.org

We probably should warn about (both C/C++):

int
foo (int a, int b)
{
  if (a  a)
return 1;
  if (b || b)
return 2;
  if (!a  !a)
return 3;
  if (!b || !b)
return 4;
  return 0;
}

See https://gcc.gnu.org/ml/gcc-patches/2014-09/msg02080.html

I suggest this be called -Wredundant-op.  Better names?


[Bug bootstrap/63235] building fails with --disable-bootstrap

2014-09-24 Thread jiwang at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63235

Jiong Wang jiwang at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jiwang at gcc dot gnu.org

--- Comment #13 from Jiong Wang jiwang at gcc dot gnu.org ---
I run into this issue also. my code is revision 215549

my configure options:

../gcc/configure --enable-languages=c,c++

svn+ssh://gcc.gnu.org/svn/gcc/trunk@215549


[Bug bootstrap/63235] building fails with --disable-bootstrap

2014-09-24 Thread izamyatin at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63235

Igor Zamyatin izamyatin at gmail dot com changed:

   What|Removed |Added

 CC||izamyatin at gmail dot com

--- Comment #14 from Igor Zamyatin izamyatin at gmail dot com ---
Seems, started after r215538


[Bug c/63326] pragma GCC causes wrong code generation

2014-09-24 Thread dietmar.schind...@manroland-web.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63326

--- Comment #2 from Dietmar Schindler dietmar.schind...@manroland-web.com ---
(In reply to Andrew Pinski from comment #1)
 #pragma are considered statements.

This can't be entirely true, since #pragma can be used where statements cannot
(outside of functions), and #pragma STDC certainly isn't considered a
statement.
At least, this implementation-defined behaviour has to be documented (hasn't
it?), and I couldn't find mention of it in the documentation. Would you
recommend filing a separate documentation bug report?


[Bug bootstrap/63235] building fails with --disable-bootstrap

2014-09-24 Thread izamyatin at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63235

--- Comment #15 from Igor Zamyatin izamyatin at gmail dot com ---
Sorry, it's r215537


[Bug bootstrap/63235] building fails with --disable-bootstrap

2014-09-24 Thread kyukhin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63235

Kirill Yukhin kyukhin at gcc dot gnu.org changed:

   What|Removed |Added

 CC||kyukhin at gcc dot gnu.org

--- Comment #16 from Kirill Yukhin kyukhin at gcc dot gnu.org ---
patch posted here: https://gcc.gnu.org/ml/gcc-patches/2014-09/msg02090.html


[Bug testsuite/63352] problem with fmt_g0_1.f08 on i386-pc-solaris2.11

2014-09-24 Thread richard at netbsd dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63352

--- Comment #1 from Richard PALO richard at netbsd dot org ---
This seems to be a bug in the write formatting for g0
Here is the compile with -fdump-parse-tree showing that the constant expression
is calculated exactly as '3.3331e-1_8'

Namespace: A-H: (REAL 4) I-N: (INTEGER 4) O-Z: (REAL 4)
procedure name = MAIN__
  symtree: 'MAIN__'  || symbol: 'MAIN__'   
type spec : (UNKNOWN 0)
attributes: (PROGRAM PUBLIC  SUBROUTINE)
  symtree: 'abort'   || symbol: 'abort'
type spec : (UNKNOWN 0)
attributes: (PROCEDURE  SUBROUTINE)
  symtree: 'buffer'  || symbol: 'buffer'   
type spec : (CHARACTER 50 1)
attributes: (VARIABLE )
  symtree: 'string'  || symbol: 'string'   
type spec : (CHARACTER 25 1)
attributes: (VARIABLE IMPLICIT-SAVE)
value: '(g0,g0,g0)   '

  code:
  WRITE UNIT=MAIN__:buffer FMT='(g0,g0,g0)'
  TRANSFER ':'
  TRANSFER 12340
  TRANSFER ':'
  DT_END
  IF (/= MAIN__:buffer ':12340:')
CALL _gfortran_abort ()
  ENDIF
  WRITE UNIT=MAIN__:buffer FMT=MAIN__:string
  TRANSFER ':'
  TRANSFER 0
  TRANSFER ':'
  DT_END
  IF (/= MAIN__:buffer ':0:')
CALL _gfortran_abort ()
  ENDIF
  WRITE UNIT=MAIN__:buffer FMT=MAIN__:string
  TRANSFER ':'
  TRANSFER 3.3331e-1_8
  TRANSFER ':'
  DT_END
  IF (/= MAIN__:buffer ':.1:')
CALL _gfortran_abort ()
  ENDIF
  WRITE UNIT=MAIN__:buffer FMT='(1x,a,g0,a)'
  TRANSFER ':'
  TRANSFER 3.3331e-1_8
  TRANSFER ':'
  DT_END
  IF (/= MAIN__:buffer ' :.1:')
CALL _gfortran_abort ()
  ENDIF
  WRITE UNIT=MAIN__:buffer FMT=MAIN__:string
  TRANSFER ':'
  TRANSFER 'hello'
  TRANSFER ':'
  DT_END
  IF (/= MAIN__:buffer ':hello:')
CALL _gfortran_abort ()
  ENDIF
  WRITE UNIT=MAIN__:buffer FMT='(g0,g0,g0,g0)'
  TRANSFER ':'
  TRANSFER .true.
  TRANSFER .false.
  TRANSFER ':'
  DT_END
  IF (/= MAIN__:buffer ':TF:')
CALL _gfortran_abort ()
  ENDIF
  WRITE UNIT=MAIN__:buffer FMT='(g0,g0,'','',g0,g0)'
  TRANSFER '('
  TRANSFER (complex 1.2344_8 2.45670001_8)
  TRANSFER ')'
  DT_END
  IF (/= MAIN__:buffer '(1.2344,2.45670001)')
CALL _gfortran_abort ()
  ENDIF


[Bug bootstrap/63235] building fails with --disable-bootstrap

2014-09-24 Thread kyukhin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63235

--- Comment #17 from Kirill Yukhin kyukhin at gcc dot gnu.org ---
Author: kyukhin
Date: Wed Sep 24 12:27:30 2014
New Revision: 215552

URL: https://gcc.gnu.org/viewcvs?rev=215552root=gccview=rev
Log:
PR bootstrap/63235

gcc/
* varpool.c (varpool_node::add): Pass decl attributes
to lookup_attribute.


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


[Bug c/63358] New: [4.8.3 - 4.9.1] gcc -O2/-O3 wrong assembly code (crash / Segmentation fault)

2014-09-24 Thread jean-baptiste.laurent at epitech dot eu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63358

Bug ID: 63358
   Summary: [4.8.3 - 4.9.1] gcc -O2/-O3 wrong assembly code (crash
/ Segmentation fault)
   Product: gcc
   Version: 4.9.1
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jean-baptiste.laurent at epitech dot eu

Created attachment 33547
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33547action=edit
The zip file containing the small code making gcc generate wrong assembly, and
both the .s and .i generated by -save-temps.

Hi,

It appears that gcc, when compiling the code in attachment generate an assembly
which is wrong.

This code has been tested with gcc 4.7.1 (working), 4.8.3 (crash) on Fedora 18
and Fedora 20, and 4.9.1 (crash) on Ubuntu 14.04.

The source file produce a wrong code when compiling with at least -O2. Warning
flags (-W -Wall -Wextra) do not influence the result. There are no warning
generated.

When looking at the assembly directly it look like there is a whole part of the
code missing (like the compilation stopped but do not failed).


[Bug c/63358] [4.8.3 - 4.9.1] gcc -O2/-O3 wrong assembly code (crash / Segmentation fault)

2014-09-24 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63358

Markus Trippelsdorf trippels at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||trippels at gcc dot gnu.org
 Resolution|--- |INVALID

--- Comment #1 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
From https://gcc.gnu.org/bugs/:
»if compiling with -fno-strict-aliasing -fwrapv
-fno-aggressive-loop-optimizations makes a difference, your code probably is
not correct.«

markus@x4 tmp % gcc -fsanitize=undefined -Wall -Wextra -O2 main.i
markus@x4 tmp % ./a.out
I = 0, Result = 0
I = 1, Result = 1234567890
main.c:12:11: runtime error: signed integer overflow: 2 * 1234567890 cannot be
represented in type 'int'

[Bug c/63358] [4.8.3 - 4.9.1] gcc -O2/-O3 wrong assembly code (crash / Segmentation fault)

2014-09-24 Thread jean-baptiste.laurent at epitech dot eu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63358

--- Comment #2 from jean-baptiste.laurent at epitech dot eu ---
Thanks for the quick answer. The overflow is not only supposed to alter the
result printed out ?


[Bug target/63359] New: aarch64: 32bit registers in inline asm

2014-09-24 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63359

Bug ID: 63359
   Summary: aarch64: 32bit registers in inline asm
   Product: gcc
   Version: 4.9.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: glisse at gcc dot gnu.org
Target: aarch64-linux-gnu

int f(int i){
  asm(clz %0, %0:+r(i));
  return i;
}

produces:

clz x0, x0

I need to write clz %w0, %w0 to get the expected:

clz w0, w0

What I would like:
1) on x86, the type of i is used to get the right register name. If this can't
be done on aarch64 (did ARM forbid it?), it may be useful to warn when I pass
the wrong type.
2) I need a documented way to get 32bit regs, and %w0 is not documented in the
gcc manual. Besides, clang rejects it, so please find a common syntax...


[Bug c/63358] [4.8.3 - 4.9.1] gcc -O2/-O3 wrong assembly code (crash / Segmentation fault)

2014-09-24 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63358

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

   Severity|major   |normal

--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org ---
Signed integer overflow is undefined behaviour, so anything can happen.

Specifically, the compiler is allowed to assume that overflow never happens,
and perform optimisations based on that assumption, so if overflow *does*
happen the results are unpredictable.


[Bug target/63359] aarch64: 32bit registers in inline asm

2014-09-24 Thread james.molloy at arm dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63359

James Molloy james.molloy at arm dot com changed:

   What|Removed |Added

 CC||james.molloy at arm dot com

--- Comment #1 from James Molloy james.molloy at arm dot com ---
Hi,

 Besides, clang rejects it, so please find a common syntax...

It shouldn't. The w modifier should have been supported since clang 3.4, and
is certainly supported in clang 3.5.

Clang 3.5 has a warning about this:


/tmp/test.c:2:27: warning: value size does not match register size specified by
the constraint and modifier [-Wasm-operand-widths]
asm(clz %0, %0:+r(i));
  ^
/tmp/test.c:2:14: note: use constraint modifier w
asm(clz %0, %0:+r(i));
 ^~
 %w0
/tmp/test.c:2:27: warning: value size does not match register size specified by
the constraint and modifier [-Wasm-operand-widths]
asm(clz %0, %0:+r(i));
  ^
/tmp/test.c:2:18: note: use constraint modifier w
asm(clz %0, %0:+r(i));
 ^~
 %w0
2 warnings generated.



[Bug c++/63356] Compilation failure where clang does not have problems

2014-09-24 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

--- Comment #6 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
This is what C-reduce came up with:

markus@x4 ~ % cat boost.ii
template typename _Tp
struct integral_constant {
  static constexpr _Tp value = 0;
};
template typename...
struct __and_;
template typename _B1
struct __and__B1 : _B1 {};
template typename _Tp
_Tp declval();
template typename _From, typename _To
struct __is_convertible_helper {
  template typename _From1, typename _To1,
typename = decltype(_To1(declval_From1()))
  static integral_constantint __test(int);
  typedef decltype(__test_From, _To(0)) type;
};
template typename _From, typename _To
struct is_convertible : __is_convertible_helper_From, _To::type {};
template int
struct Trans_NS_std_enable_if {};
template class _T1, class
struct pair {
  _T1 first;
  template class _U1, class _U2,
class = typename Trans_NS_std_enable_if
__and_is_convertible_U1, _T1::value::type
  pair(pair_U1, _U2);
  template class _U2
  pair(_T1 __x, _U2)
  : first(__x) {}
};
class point_data;
class vector {
 public:
  void push_back(pairpairpairpoint_data, point_data, int, int *);
};
template typename _Key
class map {};
class point_data {
 public:
  template typename PointType
  point_data(PointType);
  mapint processEvent__iter;
  vector processEvent__counts_from_scanline;
  template class cT, class iT
  void processEvent_(cT, iT, iT) {
processEvent__counts_from_scanline.push_back(
pairpairpairpoint_data, point_data, int, int *(
pairpairpoint_data, point_data, int(
pairpoint_data, point_data(0, 0), processEvent__iter),
0));
  }
  void get_dispatch() { get_fracture(0, 0, 0); }
  template typename output_container, typename concept_type
  void get_fracture(output_container, int, concept_type) {
processEvent_(0, 0, 0);
  }
};

markus@x4 ~ % icpc -std=c++11 -c boost.ii
markus@x4 ~ % clang++ -std=c++11 -c boost.ii
markus@x4 ~ % g++ -std=c++11 -c boost.ii
boost.ii: In instantiation of ‘struct
__is_convertible_helperpairpairpoint_data, point_data, int,
pairpoint_data, point_data ’:
boost.ii:19:8:   required from ‘struct is_convertiblepairpairpoint_data,
point_data, int, pairpoint_data, point_data ’
boost.ii:8:8:   required from ‘struct
__and_is_convertiblepairpairpoint_data, point_data, int, pairpoint_data,
point_data  ’
boost.ii:52:15:   recursively required by substitution of ‘templateclass _U2
pair_T1, template-parameter-1-2 ::pair(_T1, _U2) [with _U2 = missing]’
boost.ii:52:15:   required from ‘void point_data::processEvent_(cT, iT, iT)
[with cT = int; iT = int]’
boost.ii:57:26:   required from ‘void
point_data::get_fracture(output_container, int, concept_type) [with
output_container = int; concept_type = int]’
boost.ii:54:45:   required from here
boost.ii:16:26: error: no matching function for call to
‘__is_convertible_helperpairpairpoint_data, point_data, int,
pairpoint_data, point_data ::__test(int)’
   typedef decltype(__test_From, _To(0)) type;
  ^
boost.ii:16:26: note: candidate is:
boost.ii:15:33: note: templateclass _From1, class _To1, class static
integral_constantint __is_convertible_helper_From, _To::__test(int) [with
_From1 = _From1; _To1 = _To1; template-parameter-2-3 =
template-parameter-1-3; _From = pairpairpoint_data, point_data, int; _To
= pairpoint_data, point_data]
   static integral_constantint __test(int);
 ^
boost.ii:15:33: note:   template argument deduction/substitution failed:
boost.ii:14:13: error: no matching function for call to ‘pairpoint_data,
point_data::pair(pairpairpoint_data, point_data, int)’
 typename = decltype(_To1(declval_From1()))
 ^
boost.ii:14:13: note: candidates are:
boost.ii:30:3: note: templateclass _U2 pair_T1, template-parameter-1-2
::pair(_T1, _U2)
   pair(_T1 __x, _U2)
   ^
boost.ii:30:3: note:   template argument deduction/substitution failed:
boost.ii:14:13: note:   candidate expects 2 arguments, 1 provided
 typename = decltype(_To1(declval_From1()))
 ^
boost.ii:28:3: note: templateclass _U1, class _U2, class pair_T1,
template-parameter-1-2 ::pair(pair_U1, _U2)
   pair(pair_U1, _U2);
   ^
boost.ii:28:3: note:   template argument deduction/substitution failed:
boost.ii:26:13: error: no type named ‘type’ in ‘struct
Trans_NS_std_enable_if0’
 class = typename Trans_NS_std_enable_if
 ^
boost.ii:23:8: note: constexpr pairpoint_data, point_data::pair(const
pairpoint_data, point_data)
 struct pair {
^
boost.ii:23:8: note:   no known conversion for argument 1 from
‘pairpairpoint_data, point_data, int’ to ‘const pairpoint_data,
point_data’
boost.ii:23:8: note: constexpr pairpoint_data,
point_data::pair(pairpoint_data, point_data)
boost.ii:23:8: note:   no known conversion for argument 1 from
‘pairpairpoint_data, point_data, int’ to ‘pairpoint_data, point_data’
boost.ii: In 

[Bug target/63359] aarch64: 32bit registers in inline asm

2014-09-24 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63359

--- Comment #2 from Marc Glisse glisse at gcc dot gnu.org ---
(In reply to James Molloy from comment #1)
  Besides, clang rejects it, so please find a common syntax...
 
 It shouldn't. The w modifier should have been supported since clang 3.4,
 and is certainly supported in clang 3.5.

Uh, you are right. I have no idea why my earlier tests failed... Sorry.

So I would mostly like to see this 'w' modifier documented in the gcc doc, and
a warning that includes a hint about 'w'. (For clang I only have 3.5 and
svn215195 of 3.6 and the note part is not present yet)

Thanks.


[Bug c++/63356] Compilation failure where clang does not have problems

2014-09-24 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

--- Comment #7 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
Or a bit more compact and obfuscated:

template typename _Tp
struct A {
  static constexpr _Tp value = 0;
};
template typename...
struct B;
template typename _B1
struct B_B1 : _B1 {};
template typename _Tp
_Tp declval();
template typename _From, typename _To
struct C {
  template typename _From1, typename _To1,
typename = decltype(_To1(declval_From1()))
  static Aint __test(int);
  typedef decltype(__test_From, _To(0)) type;
};
template typename _From, typename _To
struct I : C_From, _To::type {};
template int
struct D {};
template class _T1, class
struct F {
  _T1 first;
  template class _U1, class _U2,
class = typename DBI_U1, _T1::value::type
  F(F_U1, _U2);
  template class _U2
  F(_T1 p1, _U2)
  : first(p1) {}
};
class G;
class H {
 public:
  void push_back(FFFG, G, int, int *);
};
class G {
 public:
  template typename PointType
  G(PointType);
  H processEvent__counts_from_scanline;
  template class cT, class iT
  void processEvent_(cT, iT, iT) {
processEvent__counts_from_scanline.push_back(
FFFG, G, int, int *(FFG, G, int(FG, G(0, 0), 0), 0));
  }
  void get_dispatch() { get_fracture(0, 0, 0); }
  template typename output_container, typename concept_type
  void get_fracture(output_container, int, concept_type) {
processEvent_(0, 0, 0);
  }
};


[Bug target/63354] gcc -pg -mprofile-kernel creates unused stack frames on leaf functions on ppc64le

2014-09-24 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63354

Segher Boessenkool segher at gcc dot gnu.org changed:

   What|Removed |Added

 Target|powerpc64le-linux   |powerpc*-*-*
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-09-24
 CC||segher at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Segher Boessenkool segher at gcc dot gnu.org ---
Confirmed.  We need
#define TARGET_KEEP_LEAF_WHEN_PROFILED hook_bool_void_true
to have it behave as you want.


[Bug gcov-profile/61889] [5 Regression] gcov-tool.c uses nftw, ftw.h

2014-09-24 Thread rai...@emrich-ebersheim.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61889

--- Comment #8 from Rainer Emrich rai...@emrich-ebersheim.de ---
(In reply to xur from comment #7)
 OK. I'll fix this and submit another patch.
What is the status for that?

 
 On Wed, Aug 20, 2014 at 11:26 AM, ktietz at gcc dot gnu.org
 gcc-bugzi...@gcc.gnu.org wrote:
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61889
 
  --- Comment #6 from Kai Tietz ktietz at gcc dot gnu.org ---
  Yes, I remember.  I didn't comment on it.
  The following checks aren't ok.
  '#if !defined(_WIN32)'
 
  you should disable those parts *only* if ftw API isn't present. This you 
  should
  check by a HAVE_FTW_H configure-check-macro.  To disable it just because 
  _WIN32
  is defined is wrong.
 
Quoting Kai Tietz:
Issue got fixed on mingw-w64's side by providing on trunk ftw/nftw API.

Nevertheless there is still an issue with the use of mkdir:
g++ -c   -g -DIN_GCC-fno-exceptions -fno-rtti -fasynchronous-unwind-tables
-W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format
-Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long
-Wno-variadic-macros -Wno-overlength-strings   -DHAVE_CONFIG_H -I. -I.
-I../../../../../../../opt/devel/gnu/src/gcc-mingw-w64/gcc-5.0.0/gcc
-I../../../../../../../opt/devel/gnu/src/gcc-mingw-w64/gcc-5.0.0/gcc/.
-I../../../../../../../opt/devel/gnu/src/gcc-mingw-w64/gcc-5.0.0/gcc/../include
-I./../intl
-I../../../../../../../opt/devel/gnu/src/gcc-mingw-w64/gcc-5.0.0/gcc/../libcpp/include
-I/opt/devel/SCRATCH/tmp.Yed3qsDdVp/install/include
-I/opt/devel/SCRATCH/tmp.Yed3qsDdVp/install/include
-I/opt/devel/SCRATCH/tmp.Yed3qsDdVp/install/include 
-I../../../../../../../opt/devel/gnu/src/gcc-mingw-w64/gcc-5.0.0/gcc/../libdecnumber
-I../../../../../../../opt/devel/gnu/src/gcc-mingw-w64/gcc-5.0.0/gcc/../libdecnumber/bid
-I../libdecnumber
-I../../../../../../../opt/devel/gnu/src/gcc-mingw-w64/gcc-5.0.0/gcc/../libbacktrace
-DCLOOG_INT_GMP -I/opt/devel/SCRATCH/tmp.Yed3qsDdVp/install/include
-DCLOOG_INT_GMP -I/opt/devel/SCRATCH/tmp.Yed3qsDdVp/install/include  -o
gcov-tool.o -MT gcov-tool.o -MMD -MP -MF ./.deps/gcov-tool.TPo
../../../../../../../opt/devel/gnu/src/gcc-mingw-w64/gcc-5.0.0/gcc/gcov-tool.c
../../../../../../../opt/devel/gnu/src/gcc-mingw-w64/gcc-5.0.0/gcc/gcov-tool.c:95:21:
error: macro mkdir requires 2 arguments, but only 1 given
   if (mkdir (out) == -1  errno != EEXIST)
 ^
../../../../../../../opt/devel/gnu/src/gcc-mingw-w64/gcc-5.0.0/gcc/gcov-tool.c:
In function 'void gcov_output_files(const char*, gcov_info*)':
../../../../../../../opt/devel/gnu/src/gcc-mingw-w64/gcc-5.0.0/gcc/gcov-tool.c:95:27:
error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
   if (mkdir (out) == -1  errno != EEXIST)
   ^

This clashes with the macro definition for mkdir in system.h:

/* Some systems have mkdir that takes a single argument.  */
#ifdef MKDIR_TAKES_ONE_ARG
# define mkdir(a,b) mkdir (a)
#endif 

Removing the wrong #if !defined(_WIN32) solves the issue for gcov-tool.c:

Index: gcc/gcov-tool.c
===
--- gcc/gcov-tool.c(Revision 215554)
+++ gcc/gcov-tool.c(Arbeitskopie)
@@ -89,11 +89,7 @@ gcov_output_files (const char *out, stru
   /* Try to make directory if it doesn't already exist.  */
   if (access (out, F_OK) == -1)
 {
-#if !defined(_WIN32)
   if (mkdir (out, S_IRWXU | S_IRWXG | S_IRWXO) == -1  errno != EEXIST)
-#else
-  if (mkdir (out) == -1  errno != EEXIST)
-#endif
 fatal_error (Cannot make directory %s, out);
 } else
   unlink_profile_dir (out); 

At a second point the issue is more complex. In libgcc/libgcov-driver-system.c
there is the following code:

#ifdef TARGET_POSIX_IO
 mkdir (filename, 0755) == -1
#else
 mkdir (filename) == -1
#endif

libgcov-driver-system.c is used in two places, in the gcc directory and in the
the libgcc directory for libgcov. In the first case the macro for mkdir is
defined in the second it isn't.

An ugly hack solves this issue and lets me at least build gcc-5.0.0 on
x86_64-w64-mingw32.

Index: libgcc/libgcov-driver-system.c
===
--- libgcc/libgcov-driver-system.c(Revision 215554)
+++ libgcc/libgcov-driver-system.c(Arbeitskopie)
@@ -66,6 +66,9 @@ create_file_directory (char *filename)
 #ifdef TARGET_POSIX_IO
  mkdir (filename, 0755) == -1
 #else
+#ifdef mkdir
+#undef mkdir
+#endif
  mkdir (filename) == -1
 #endif
 /* The directory might have been made by another process.  */ 


Someone with more insight should have a look on this, please!


[Bug c/63326] pragma GCC causes wrong code generation

2014-09-24 Thread manu at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63326

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

   What|Removed |Added

 Status|RESOLVED|REOPENED
   Last reconfirmed||2014-09-24
 CC||manu at gcc dot gnu.org
 Resolution|INVALID |---
 Ever confirmed|0   |1

--- Comment #3 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
If you use #pragma GCC system_header, you get a different result, so this seems
a bug to me (whatever the behavior, it should not depend on the type of
#pragma). At the very least, GCC could give a warning if the #pragma is the
only statement in a if/else/while/do/for body, since this is probably a bug.

[Bug c/63326] whether a #pragma is a statement depends on the type of pragma

2014-09-24 Thread manu at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63326

--- Comment #4 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
When compiled with Clang, it returns 0 by the way.

[Bug testsuite/63352] problem with fmt_g0_1.f08 on i386-pc-solaris2.11

2014-09-24 Thread richard at netbsd dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63352

--- Comment #2 from Richard PALO richard at netbsd dot org ---
FWIW, just checked ... this is a regression introduce after 4.7.3 (where this
test seems to work fine...can't test 4.8.3 any more, sorry).


[Bug target/63359] aarch64: 32bit registers in inline asm

2014-09-24 Thread rearnsha at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63359

Richard Earnshaw rearnsha at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-09-24
 Ever confirmed|0   |1

--- Comment #3 from Richard Earnshaw rearnsha at gcc dot gnu.org ---
Agree that this needs to be documented.  

I'm not so sure about a warning, however.  I could envisage cases where the
warning would be incorrect and avoiding it would lead to code pessimisation.


[Bug c++/63356] Compilation failure where clang does not have problems

2014-09-24 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

--- Comment #8 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
template typename _Tp
struct A {
  static constexpr _Tp value = 0;
};
template typename...
struct B;
template typename _B1
struct B_B1 : _B1 {};
template typename _Tp
_Tp declval();
template typename _From, typename _To
struct C {
  template typename _From1, typename _To1,
typename = decltype(_To1(declval_From1()))
  static Aint __test(int);
  typedef decltype(__test_From, _To(0)) type;
};
template typename _From, typename _To
struct I : C_From, _To::type {};
template int
struct D {};
template class _T1, class
struct F {
  _T1 first;
  template class _U1, class _U2,
class = typename DBI_U1, _T1::value::type
  F(F_U1, _U2);
  template class _U2
  F(_T1 p1, _U2)
  : first(p1) {}
};
class G;
class H {
 public:
  void push_back(FFFG, G, int, int *);
};
class G {
 public:
  template typename PointType
  G(PointType);
  H processEvent__counts_from_scanline;
  void processEvent_() {
processEvent__counts_from_scanline.push_back(
FFFG, G, int, int *(FFG, G, int(FG, G(0, 0), 0), 0));
  }
};


[Bug gcov-profile/61889] [5 Regression] gcov-tool.c uses nftw, ftw.h

2014-09-24 Thread rai...@emrich-ebersheim.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61889

--- Comment #9 from Rainer Emrich rai...@emrich-ebersheim.de ---
Created attachment 33548
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33548action=edit
Proposed patch to fix the mingw case.


[Bug target/63359] aarch64: 32bit registers in inline asm

2014-09-24 Thread james.molloy at arm dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63359

--- Comment #4 from James Molloy james.molloy at arm dot com ---
Hi Richard,

My two-pennyworth for what it's worth - we've had several people with broken
code tripped by this bug, and Apple have reported seeing the same thing with
their internal codebases. This one seems often to appear in real-world code.

Cheers,

James


[Bug target/63359] aarch64: 32bit registers in inline asm

2014-09-24 Thread rearnsha at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63359

--- Comment #5 from Richard Earnshaw rearnsha at gcc dot gnu.org ---
So consider:

int f(int i){
  long x;
  asm(lsl %0, %1, 33 : =r(x) : r(i)); // lshift by more than sizeof(int)
  return x;
}

We really don't care about the top bits in i, so we don't want to extend the
value to 64 bits before we do the shift.  But we can't put w on the second
operand since it has to be a 64-bit register.


[Bug target/63359] aarch64: 32bit registers in inline asm

2014-09-24 Thread james.molloy at arm dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63359

--- Comment #6 from James Molloy james.molloy at arm dot com ---
Good example, although I might argue slightly pathological.

So in this case currently, GCC doesn't even implicitly promote the argument,
just uses it as-is. It seems a very dangerous behaviour to have as default.
Could there not be a more sensible default and an explicit constraint modifier
to allow this instead?


[Bug target/63359] aarch64: 32bit registers in inline asm

2014-09-24 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63359

--- Comment #7 from Marc Glisse glisse at gcc dot gnu.org ---
(In reply to Richard Earnshaw from comment #3)
 I'm not so sure about a warning, however.  I could envisage cases where the
 warning would be incorrect and avoiding it would lead to code pessimisation.

I don't insist on the warning, I might not have needed it with a proper doc
(that explains both that r is reserved to 64 bits (gcc won't adapt to the
type of the argument) and that there is a 'w' modifier to get 32 bits).


[Bug c++/63249] [OpenMP] Spurious »set but not used« warnings when actually used in OpenMP target's array section's lower-bound and length

2014-09-24 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63249

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2014-09-24
   Assignee|unassigned at gcc dot gnu.org  |jakub at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org ---
Created attachment 33549
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33549action=edit
gcc5-pr63249.patch

Untested fix.


[Bug target/63359] aarch64: 32bit registers in inline asm

2014-09-24 Thread rearnsha at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63359

--- Comment #8 from Richard Earnshaw rearnsha at gcc dot gnu.org ---
(In reply to James Molloy from comment #6)
 Good example, although I might argue slightly pathological.
 

Agreed, this is somewhat pathological, but I only need to find one valid
counter-example :-)

Furthermore, something similar will be quite common on results.  Eg:

int i, j;
unsigned long r;
asm(add %w0, %w1, %w2 : =r(r) : r(i), r(j));  // zero-extend result.

here we *want* the 64-bit result from the implicit zero-extend of writing the
lower 32 bits.

 So in this case currently, GCC doesn't even implicitly promote the argument,
 just uses it as-is. It seems a very dangerous behaviour to have as default.
 Could there not be a more sensible default and an explicit constraint
 modifier to allow this instead?

One of the things I dislike so much about GCC's inline assembly is that it's
just an exposure to users of an internal API in the compiler.  That makes it
very difficult to say precisely what will happen in all cases and *very* hard
to fix problems with it when it exposes bugs.

I'm not saying I'll never accept a warning for this sort of code; but I'd need
convincing that it won't unduly pessimize real code with no acceptable
work-arounds.


[Bug target/63359] aarch64: 32bit registers in inline asm

2014-09-24 Thread james.molloy at arm dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63359

--- Comment #9 from James Molloy james.molloy at arm dot com ---
OK, given your second example I agree that the usecase isn't quite as
pathological as I thought.

 I'm not saying I'll never accept a warning for this sort of code; but I'd need
convincing that it won't unduly pessimize real code with no acceptable
work-arounds.

Clang is committed to this warning as our community feels the error detection
rate makes up for the lack of raw power. So unless we actively do something the
two compilers will always differ in approach which probably isn't best for our
users.

Would you be opposed to discussing a constraint modifier to mean implicitly
extend to 64-bits?


[Bug c++/63356] Compilation failure where clang does not have problems

2014-09-24 Thread fiesh at zefix dot tv
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

--- Comment #9 from fiesh at zefix dot tv ---
Ever so little simplified:

struct A {};

template typename _B1
struct B : _B1 {};

template typename _Tp
_Tp declval();

template typename _From, typename _To
struct C {
  template typename _From1, typename _To1,
typename = decltype(_To1(declval_From1()))
  static A __test(int);
  typedef decltype(__test_From, _To(0)) type;
};

template typename _From, typename _To
struct I : C_From, _To::type {};

template int
struct D {};

template class _T1, class
struct F {
  _T1 first;
  template class _U1, class _U2,
class = typename DBI_U1, _T1::value::type
  F(F_U1, _U2);
  template class _U2
  F(_T1 p1, _U2)
  : first(p1) {}
};

class G;

class H {
 public:
  void push_back(FFFG, G, int, int *);
};

class G {
 public:
  template typename PointType
  G(PointType);
  H processEvent__counts_from_scanline;
  void processEvent_() {
processEvent__counts_from_scanline.push_back(
FFFG, G, int, int *(FFG, G, int(FG, G(0, 0), 0), 0));
  }
};


[Bug c++/63356] [4.8/4.9/5 Regression] Compilation failure where clang does not have problems

2014-09-24 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

Markus Trippelsdorf trippels at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.8.4
Summary|Compilation failure where   |[4.8/4.9/5 Regression]
   |clang does not have |Compilation failure where
   |problems|clang does not have
   ||problems
  Known to fail||4.8.3, 4.9.1, 5.0


[Bug c/63326] whether a #pragma is a statement depends on the type of pragma

2014-09-24 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63326

--- Comment #5 from Andrew Pinski pinskia at gcc dot gnu.org ---
(In reply to Manuel López-Ibáñez from comment #4)
 When compiled with Clang, it returns 0 by the way.

So ...
Pragma that are not recognized are ignored.

[Bug c/63326] whether a #pragma is a statement depends on the type of pragma

2014-09-24 Thread joseph at codesourcery dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63326

--- Comment #6 from joseph at codesourcery dot com joseph at codesourcery dot 
com ---
#pragma STDC is functionally a declaration (it can only occur either 
outside external declarations or preceding all explicit declarations and 
statements inside a compound statement - each such pragma has the same 
wording, including FENV_ROUND in TS 18661-1).  Thus, while those pragmas 
are not currently implemented in GCC, treating them as syntactical 
entities at the same level as declarations and statements would be fully 
in accordance with the standard.


[Bug fortran/63352] problem with fmt_g0_1.f08 on i386-pc-solaris2.11

2014-09-24 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63352

Dominique d'Humieres dominiq at lps dot ens.fr changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2014-09-24
 CC||ro at CeBiTec dot 
Uni-Bielefeld.DE
 Ever confirmed|0   |1

--- Comment #3 from Dominique d'Humieres dominiq at lps dot ens.fr ---
From

 (gdb) print buffer
 $1 = ':.', '3' repeats 16 times, '2:', ' ' repeats 30 times

Then I guess that the buffer content is 

:.2:

and not

:.1:

as expected by the test. Could you print the content of buffer after

write(buffer, string) ':',1.0_8/3.0_8,':'

and

write(buffer, '(1x,a,g0,a)') ':',1.0_8/3.0_8,':'

to check this guess? This look like a rounding problem on your platform (CCed
Rainer Orth). What is the result if you compile the test with --save-temps (see
PR323)?


[Bug c/63344] [5 Regression] Linux (makeallyes config) compilation error: error: apic_numachip causes a section type conflict with numachip_system

2014-09-24 Thread andi-gcc at firstfloor dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63344

--- Comment #5 from Andi Kleen andi-gcc at firstfloor dot org ---
I posted a patch here
http://permalink.gmane.org/gmane.linux.kernel/1793662

BTW actually I don't agree that the bug is valid. We should probably relax the
LTO checking to match what the linker does (which does not error out for this
case).


[Bug fortran/63352] problem with fmt_g0_1.f08 on i386-pc-solaris2.11

2014-09-24 Thread richard at netbsd dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63352

--- Comment #4 from Richard PALO richard at netbsd dot org ---
Just checked with the native omnios gcc 4.8.1 and the problem already exists
there.

I commented as indicated to be able to get debugger output for 2nd part:
diff --git a/gcc/testsuite/gfortran.dg/fmt_g0_1.f08
b/gcc/testsuite/gfortran.dg/fmt_g0_1.f08
index ead6f81..3cceae6 100644
--- a/gcc/testsuite/gfortran.dg/fmt_g0_1.f08
+++ b/gcc/testsuite/gfortran.dg/fmt_g0_1.f08
@@ -8,7 +8,7 @@
 write(buffer, string) ':',0,':'
 if (buffer.ne.:0:) call abort
 write(buffer, string) ':',1.0_8/3.0_8,':'
-if (buffer.ne.:.1:) call abort
+!if (buffer.ne.:.1:) call abort
 write(buffer, '(1x,a,g0,a)') ':',1.0_8/3.0_8,':'
 if (buffer.ne. :.1:) call abort
 write(buffer, string) ':',hello,':'

with 4.9.1 buffer is as follows for the two writes with 1/3:
(gdb) p buffer
$1 = ':.', '3' repeats 16 times, '2:', ' ' repeats 30 times
(gdb) n
(gdb) p buffer
$2 = ' :.', '3' repeats 16 times, '2:', ' ' repeats 29 times

under 4.7.3:
(gdb) p buffer
$1 = ':.', '3' repeats 16 times, '1:', ' ' repeats 30 times
(gdb) n
(gdb) p buffer
$2 = ' :.', '3' repeats 16 times, '1:', ' ' repeats 29 times


[Bug fortran/63352] problem with fmt_g0_1.f08 on i386-pc-solaris2.11

2014-09-24 Thread richard at netbsd dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63352

--- Comment #5 from Richard PALO richard at netbsd dot org ---
Created attachment 33550
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33550action=edit
output from --save-temps


[Bug rtl-optimization/63348] [5 Regression] gcc.dg/pr43670.c fail on MIPS

2014-09-24 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63348

Uroš Bizjak ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-09-24
 Ever confirmed|0   |1

--- Comment #3 from Uroš Bizjak ubizjak at gmail dot com ---
(In reply to baoshan from comment #0)
 1. Build GCC:
 $ configure --enable-languages=c --target=mips-linux
 --with-as=PATH_TO_MIPS_AS
 (--with-as is needed to set TARGET_CPU_DEFAULT with MASK_EXPLICIT_RELOCS in
 tm.h)
 $ make
 2. Compile
 $ ./xgcc -O  -fcompare-debug pr43670.c -I. -c
 xgcc: error: pr43670.c: -fcompare-debug failure (length)

You can configure with --enable-languages=c --target=mips-linux only and add
-mexplicit-relocs to compile flags:

/ssd/uros/gcc-build-mips/gcc/xgcc -B /ssd/uros/gcc-build-mips/gcc -O -ftree-vrp
-fcompare-debug -S -mexplicit-relocs pr43670.c
xgcc: error: pr43670.c: -fcompare-debug failure (length)

Confirmed - my patch just exposed the problem in generic RTL code.

[Bug c/53874] -Wswitch-enum not properly working with bitfields

2014-09-24 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53874

--- Comment #4 from Marek Polacek mpolacek at gcc dot gnu.org ---
Author: mpolacek
Date: Wed Sep 24 17:23:56 2014
New Revision: 215559

URL: https://gcc.gnu.org/viewcvs?rev=215559root=gccview=rev
Log:
PR c/61405
PR c/53874
gcc/
* asan.c (maybe_instrument_call): Add default case.
* ipa-pure-const.c (special_builtin_state): Likewise.
* predict.c (expr_expected_value_1): Likewise.
* lto-streamer-out.c (write_symbol): Initialize variable.
gcc/c-family/
* c-common.h (struct c_common_resword): Don't define CPP_KEYWORD.
gcc/c/
* c-parser.c: Don't define CPP_KEYWORD.
(c_parser_switch_statement): Pass original type to c_finish_case.
* c-tree.h (c_finish_case): Update declaration.
* c-typeck.c (c_finish_case): Add TYPE parameter.  Pass it
conditionally to c_do_switch_warnings.
gcc/cp/
* semantics.c (finish_switch_cond): Call unlowered_expr_type.
* tree.c (bot_manip): Add default case.
* parser.c (cp_parser_primary_expression): Cast the controlling
expression of a switch to an int.
(cp_parser_unqualified_id): Likewise.
gcc/testsuite/
* c-c++-common/pr53874.c: New test.
* c-c++-common/pr61405.c: New test.
libcpp/
* include/cpplib.h (enum cpp_ttype): Define CPP_KEYWORD.

Added:
trunk/gcc/testsuite/c-c++-common/pr53874.c
trunk/gcc/testsuite/c-c++-common/pr61405.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/asan.c
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-common.h
trunk/gcc/c/ChangeLog
trunk/gcc/c/c-parser.c
trunk/gcc/c/c-tree.h
trunk/gcc/c/c-typeck.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/parser.c
trunk/gcc/cp/semantics.c
trunk/gcc/cp/tree.c
trunk/gcc/ipa-pure-const.c
trunk/gcc/lto-streamer-out.c
trunk/gcc/predict.c
trunk/gcc/testsuite/ChangeLog
trunk/libcpp/ChangeLog
trunk/libcpp/include/cpplib.h


[Bug c/61405] Not emitting enumeration value not handled in switch warning for bit-field enums

2014-09-24 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61405

--- Comment #7 from Marek Polacek mpolacek at gcc dot gnu.org ---
Author: mpolacek
Date: Wed Sep 24 17:23:56 2014
New Revision: 215559

URL: https://gcc.gnu.org/viewcvs?rev=215559root=gccview=rev
Log:
PR c/61405
PR c/53874
gcc/
* asan.c (maybe_instrument_call): Add default case.
* ipa-pure-const.c (special_builtin_state): Likewise.
* predict.c (expr_expected_value_1): Likewise.
* lto-streamer-out.c (write_symbol): Initialize variable.
gcc/c-family/
* c-common.h (struct c_common_resword): Don't define CPP_KEYWORD.
gcc/c/
* c-parser.c: Don't define CPP_KEYWORD.
(c_parser_switch_statement): Pass original type to c_finish_case.
* c-tree.h (c_finish_case): Update declaration.
* c-typeck.c (c_finish_case): Add TYPE parameter.  Pass it
conditionally to c_do_switch_warnings.
gcc/cp/
* semantics.c (finish_switch_cond): Call unlowered_expr_type.
* tree.c (bot_manip): Add default case.
* parser.c (cp_parser_primary_expression): Cast the controlling
expression of a switch to an int.
(cp_parser_unqualified_id): Likewise.
gcc/testsuite/
* c-c++-common/pr53874.c: New test.
* c-c++-common/pr61405.c: New test.
libcpp/
* include/cpplib.h (enum cpp_ttype): Define CPP_KEYWORD.

Added:
trunk/gcc/testsuite/c-c++-common/pr53874.c
trunk/gcc/testsuite/c-c++-common/pr61405.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/asan.c
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-common.h
trunk/gcc/c/ChangeLog
trunk/gcc/c/c-parser.c
trunk/gcc/c/c-tree.h
trunk/gcc/c/c-typeck.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/parser.c
trunk/gcc/cp/semantics.c
trunk/gcc/cp/tree.c
trunk/gcc/ipa-pure-const.c
trunk/gcc/lto-streamer-out.c
trunk/gcc/predict.c
trunk/gcc/testsuite/ChangeLog
trunk/libcpp/ChangeLog
trunk/libcpp/include/cpplib.h


[Bug c/61405] Not emitting enumeration value not handled in switch warning for bit-field enums

2014-09-24 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61405

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #8 from Marek Polacek mpolacek at gcc dot gnu.org ---
Fixed.


[Bug c/53874] -Wswitch-enum not properly working with bitfields

2014-09-24 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53874

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #5 from Marek Polacek mpolacek at gcc dot gnu.org ---
Fixed.


[Bug rtl-optimization/63348] [5 Regression] gcc.dg/pr43670.c fail on MIPS

2014-09-24 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63348

Uroš Bizjak ubizjak at gmail dot com changed:

   What|Removed |Added

 CC|uros at gcc dot gnu.org|law at redhat dot com,
   ||ubizjak at gmail dot com

--- Comment #4 from Uroš Bizjak ubizjak at gmail dot com ---
Oh, try_split in emit-rtl.c has this gem:

3616   rtx_insn *after = NEXT_INSN (trial);
...
3640  if (after  BARRIER_P (after))
3641{
3642  has_barrier = 1;
3643  after = NEXT_INSN (after);
3644}
...
3798  tem = emit_insn_after_setloc (seq, trial, INSN_LOCATION (trial));
3799
3800  delete_insn (trial);
3801  if (has_barrier)
3802emit_barrier_after (tem);

The code assumes that barrier immediately follows the call_insn (which is not
the case anymore when NOTE_CALL_ARG_LOCATION is emitted).

Adding RTL expert to CC.

[Bug fortran/63352] problem with fmt_g0_1.f08 on i386-pc-solaris2.11

2014-09-24 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63352

--- Comment #6 from Dominique d'Humieres dominiq at lps dot ens.fr ---
Your are not doing what I asked for. Could you compile and run without/with
--save-temps the following test:

character(25) :: string = (g0,g0,g0) 
character(50) :: buffer
write(buffer, string) ':',1.0_8/3.0_8,':'
print *, ', buffer, '
print *, ',  :.1:, '
write(buffer, '(1x,a,g0,a)') ':',1.0_8/3.0_8,':'
print *, ', buffer, '
print *, ',  :.1:, '
end

and post the result?


[Bug target/49551] tentative declaration after definition and -fdata-sections cause ICE in C front-end.

2014-09-24 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49551

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 CC||mpolacek at gcc dot gnu.org
  Component|c   |target

--- Comment #2 from Marek Polacek mpolacek at gcc dot gnu.org ---
Is this still an issue?


[Bug c/48116] -Wreturn-type does not work as advertised

2014-09-24 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48116

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2014-09-24
 CC||mpolacek at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |mpolacek at gcc dot 
gnu.org
   Target Milestone|--- |5.0
 Ever confirmed|0   |1

--- Comment #3 from Marek Polacek mpolacek at gcc dot gnu.org ---
Mine.


[Bug libstdc++/46151] namespace versioning holes

2014-09-24 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46151

--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org ---
Do we need to keep this PR open now we have the abi_tag attribute to solve the
problem?


[Bug c/41215] request: option to suppress discarded qualifiers warnings

2014-09-24 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=41215

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||mpolacek at gcc dot gnu.org
 Resolution|--- |FIXED

--- Comment #1 from Marek Polacek mpolacek at gcc dot gnu.org ---
I added -Wdiscarded-qualifiers a while ago.


[Bug target/63360] New: Does not retore f31 at -O0 across function calls

2014-09-24 Thread camm at debian dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63360

Bug ID: 63360
   Summary: Does not retore f31 at -O0 across function calls
   Product: gcc
   Version: 4.9.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: camm at debian dot org

Created attachment 33551
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33551action=edit
invert.c, invert.cpp, and invert.gdb gdb session

Register variable stored in f31 is stored on the stack, but not restored and
thus clobbered, after a function call.

Compiled with 

gcc -c -g  -Wall -fsigned-char -Wno-unused-but-set-variable -pipe -g -mlongcall


[Bug libstdc++/46151] namespace versioning holes

2014-09-24 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46151

--- Comment #4 from Jason Merrill jason at gcc dot gnu.org ---
abi_tag does indeed address this issue.


[Bug libstdc++/29988] More stl_tree.h enhancements: improving operator=

2014-09-24 Thread fdumont at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=29988

--- Comment #2 from François Dumont fdumont at gcc dot gnu.org ---
Author: fdumont
Date: Wed Sep 24 19:55:35 2014
New Revision: 215568

URL: https://gcc.gnu.org/viewcvs?rev=215568root=gccview=rev
Log:
2014-09-24  François Dumont  fdum...@gcc.gnu.org

PR libstdc++/29988
* include/bits/stl_tree.h (_Rb_tree_reuse_or_alloc_node): New.
(_Rb_tree_alloc_node): New.
(_Rb_tree::operator=(_Rb_tree)): New.
(_Rb_tree::_M_assign_unique): New.
(_Rb_tree::_M_assign_equal): New.
(_Rb_tree): Adapt to reuse allocated nodes as much as possible.
* include/bits/stl_map.h
(std::map::operator=(std::map)): Default implementation.
(std::map::operator=(initializer_list)): Adapt to use
_Rb_tree::_M_assign_unique.
* include/bits/stl_multimap.h
(std::multimap::operator=(std::multimap)): Default implementation.
(std::multimap::operator=(initializer_list)): Adapt to use
_Rb_tree::_M_assign_equal.
* include/bits/stl_set.h
(std::set::operator=(std::set)): Default implementation.
(std::set::operator=(initializer_list)): Adapt to use
_Rb_tree::_M_assign_unique.
* include/bits/stl_multiset.h
(std::multiset::operator=(std::multiset)): Default implementation.
(std::multiset::operator=(initializer_list)): Adapt to use
_Rb_tree::_M_assign_equal.
* testsuite/23_containers/map/allocator/copy_assign.cc (test03): New.
* testsuite/23_containers/map/allocator/init-list.cc: New.
* testsuite/23_containers/map/allocator/move_assign.cc (test03): New.
* testsuite/23_containers/multimap/allocator/copy_assign.cc
(test03): New.
* testsuite/23_containers/multimap/allocator/init-list.cc: New.
* testsuite/23_containers/multimap/allocator/move_assign.cc
(test03): New.
* testsuite/23_containers/multiset/allocator/copy_assign.cc
(test03): New.
* testsuite/23_containers/multiset/allocator/init-list.cc: New.
* testsuite/23_containers/multiset/allocator/move_assign.cc
(test03): New.
* testsuite/23_containers/set/allocator/copy_assign.cc (test03): New.
* testsuite/23_containers/set/allocator/init-list.cc: New.
* testsuite/23_containers/set/allocator/move_assign.cc (test03): New.

Added:
trunk/libstdc++-v3/testsuite/23_containers/map/allocator/init-list.cc
trunk/libstdc++-v3/testsuite/23_containers/multimap/allocator/init-list.cc
trunk/libstdc++-v3/testsuite/23_containers/multiset/allocator/init-list.cc
trunk/libstdc++-v3/testsuite/23_containers/set/allocator/init-list.cc
Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/bits/stl_map.h
trunk/libstdc++-v3/include/bits/stl_multimap.h
trunk/libstdc++-v3/include/bits/stl_multiset.h
trunk/libstdc++-v3/include/bits/stl_set.h
trunk/libstdc++-v3/include/bits/stl_tree.h
trunk/libstdc++-v3/testsuite/23_containers/map/allocator/copy_assign.cc
trunk/libstdc++-v3/testsuite/23_containers/map/allocator/move_assign.cc
   
trunk/libstdc++-v3/testsuite/23_containers/multimap/allocator/copy_assign.cc
   
trunk/libstdc++-v3/testsuite/23_containers/multimap/allocator/move_assign.cc
   
trunk/libstdc++-v3/testsuite/23_containers/multiset/allocator/copy_assign.cc
   
trunk/libstdc++-v3/testsuite/23_containers/multiset/allocator/move_assign.cc
trunk/libstdc++-v3/testsuite/23_containers/set/allocator/copy_assign.cc
trunk/libstdc++-v3/testsuite/23_containers/set/allocator/move_assign.cc

[Bug libstdc++/29988] More stl_tree.h enhancements: improving operator=

2014-09-24 Thread fdumont at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=29988

François Dumont fdumont at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #3 from François Dumont fdumont at gcc dot gnu.org ---
Nodes are now being reused on copy assignment, move assignment, list
initialization as long as allocator allows it.

[Bug sanitizer/63361] New: Test case c-c++-common/ubsan/float-cast-overflow-1.c fails on Pentium2

2014-09-24 Thread bernd.edlinger at hotmail dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63361

Bug ID: 63361
   Summary: Test case c-c++-common/ubsan/float-cast-overflow-1.c
fails on Pentium2
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: sanitizer
  Assignee: unassigned at gcc dot gnu.org
  Reporter: bernd.edlinger at hotmail dot de
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

Rev: 215226

FAIL: c-c++-common/ubsan/float-cast-overflow-1.c   -O0  output pattern test, is
(/home/ed/gnu/gcc-build/gcc/testsuite/gcc/float-cast-overflow-1.exe+0x8048604):
runtime error: value -133 is outside the range of representable values of type
'signed char'
FAIL: c-c++-common/ubsan/float-cast-overflow-1.c   -O1  output pattern test, is
(/home/ed/gnu/gcc-build/gcc/testsuite/gcc/float-cast-overflow-1.exe+0x80485eb):
runtime error: value -133 is outside the range of representable values of type
'signed char'
FAIL: c-c++-common/ubsan/float-cast-overflow-1.c   -O2  output pattern test, is
(/home/ed/gnu/gcc-build/gcc/testsuite/gcc/float-cast-overflow-1.exe+0x804f647):
runtime error: value -133 is outside the range of representable values of type
'signed char'
FAIL: c-c++-common/ubsan/float-cast-overflow-1.c   -O3 -fomit-frame-pointer 
output pattern test, is
(/home/ed/gnu/gcc-build/gcc/testsuite/gcc/float-cast-overflow-1.exe+0x804f647):
runtime error: value -133 is outside the range of representable values of type
'signed char'
FAIL: c-c++-common/ubsan/float-cast-overflow-1.c   -O3 -g  output pattern test,
is
/home/ed/gnu/gcc-trunk/gcc/testsuite/c-c++-common/ubsan/float-cast-overflow-1.c:17:
runtime error: value -133 is outside the range of representable values of type
'signed char'
FAIL: c-c++-common/ubsan/float-cast-overflow-1.c   -Os  output pattern test, is
(/home/ed/gnu/gcc-build/gcc/testsuite/gcc/float-cast-overflow-1.exe+0x8048505):
runtime error: value -133 is outside the range of representable values of type
'signed char'
FAIL: c-c++-common/ubsan/float-cast-overflow-1.c   -O2 -flto
-fno-use-linker-plugin -flto-partition=none  output pattern test, is
(/home/ed/gnu/gcc-build/gcc/testsuite/gcc/float-cast-overflow-1.exe+0x804f647):
runtime error: value -133 is outside the range of representable values of type
'signed char'
FAIL: c-c++-common/ubsan/float-cast-overflow-1.c   -O2 -flto
-fuse-linker-plugin -fno-fat-lto-objects  output pattern test, is
(/home/ed/gnu/gcc-build/gcc/testsuite/gcc/float-cast-overflow-1.exe+0x804f657):
runtime error: value -133 is outside the range of representable values of type
'signed char'

cat /proc/cpuinfo 
processor: 0
vendor_id: GenuineIntel
cpu family: 6
model: 5
model name: Pentium II (Deschutes)
stepping: 2
microcode: 0x2a
cpu MHz: 448.822
cache size: 512 KB
fdiv_bug: no
hlt_bug: no
f00f_bug: no
coma_bug: no
fpu: yes
fpu_exception: yes
cpuid level: 2
wp: yes
flags: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pse36
mmx fxsr
bogomips: 897.64
clflush size: 32
cache_alignment: 32
address sizes: 36 bits physical, 32 bits virtual
power management:

processor: 1
vendor_id: GenuineIntel
cpu family: 6
model: 5
model name: Pentium II (Deschutes)
stepping: 2
microcode: 0x2a
cpu MHz: 448.822
cache size: 512 KB
fdiv_bug: no
hlt_bug: no
f00f_bug: no
coma_bug: no
fpu: yes
fpu_exception: yes
cpuid level: 2
wp: yes
flags: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pse36
mmx fxsr
bogomips: 897.67
clflush size: 32
cache_alignment: 32
address sizes: 36 bits physical, 32 bits virtual
power management:


[Bug sanitizer/63361] Test case c-c++-common/ubsan/float-cast-overflow-1.c fails on Pentium2

2014-09-24 Thread bernd.edlinger at hotmail dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63361

--- Comment #1 from Bernd Edlinger bernd.edlinger at hotmail dot de ---
Created attachment 33552
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33552action=edit
log file with detailed error information

gcc.log, from this command:

make -k check-gcc
RUNTESTFLAGS=ubsan.exp=c-c++-common/ubsan/float-cast-overflow-1.c

first I did not understand, what is wrong with the output.

but now I see, that the test does only print
10 x runtime error: value 9.22337e+18 is outside the range of representable
values of type 'long long int'
but this message is expectet to be print 15 times.

likewise for runtime error: value 1.84467e+19 is outside the range of
representable values of type 'long long unsigned int'
it is only printed 11 times, but expected 15 times.

so, it looks like a rounding issue.


[Bug fortran/63352] problem with fmt_g0_1.f08 on i386-pc-solaris2.11

2014-09-24 Thread richard at netbsd dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63352

--- Comment #7 from Richard PALO richard at netbsd dot org ---
$ cat test.f08
character(25) :: string = (g0,g0,g0) 
character(50) :: buffer
write(buffer, string) ':',1.0_8/3.0_8,':'
print *, ', buffer, '
print *, ',  :.1:, '
write(buffer, '(1x,a,g0,a)') ':',1.0_8/3.0_8,':'
print *, ', buffer, '
print *, ',  :.1:, '
end
$ gfortran  test.f08 -o test
$ ./test
 ':.2:  '
 ' :.1:'
 ' :.2: '
 ' :.1:'

Output the same with/without
attached is the .s


[Bug fortran/63352] problem with fmt_g0_1.f08 on i386-pc-solaris2.11

2014-09-24 Thread richard at netbsd dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63352

--- Comment #8 from Richard PALO richard at netbsd dot org ---
Created attachment 33553
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33553action=edit
test.s


[Bug fortran/63352] problem with fmt_g0_1.f08 on i386-pc-solaris2.11

2014-09-24 Thread richard at netbsd dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63352

--- Comment #9 from Richard PALO richard at netbsd dot org ---
output from 4.7.3:
 ':.1:  '
 ' :.1:'
 ' :.1: '
 ' :.1:'


and test.s.4.7.3 attached


[Bug fortran/63352] problem with fmt_g0_1.f08 on i386-pc-solaris2.11

2014-09-24 Thread richard at netbsd dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63352

--- Comment #10 from Richard PALO richard at netbsd dot org ---
Created attachment 33554
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33554action=edit
test.s from 4.7.3


[Bug lto/63226] [5 Regression] ICE with -flto-odr-type-merging

2014-09-24 Thread burnus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63226

--- Comment #11 from Tobias Burnus burnus at gcc dot gnu.org ---
(In reply to Jan Hubicka from comment #9)
 Tobias, does your big program work now?

I have just tested it - and it works now. Thanks!

 Also if you have testsuite ready testcases, I think we can plug them in with
 -Wno-odr at least (still lacking way to test LTO time warnings)

I don't have any. But marxin has at least commit a test case for the ICE.


[Bug c++/63362] New: The c++11 triviality-traits need front-end help

2014-09-24 Thread ville.voutilainen at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63362

Bug ID: 63362
   Summary: The c++11 triviality-traits need front-end help
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Keywords: rejects-valid
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: ville.voutilainen at gmail dot com
CC: jason at redhat dot com

Jason wrote in a private email:

I think what we need is a compiler hook to say whether a particular expression
is trivial or not.
and further
I'm thinking that parsing would be similar to parsing any other unevaluated
context (sizeof/alignof/decltype), and then we would walk_tree through the
resulting expression to find any calls and see if any of them are to
non-trivial functions.

See
https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html
Table 1.2. C++ 2011 Implementation Status
20.9.4.3Type properties


[Bug libstdc++/56193] ios_base should replace operator void* with explicit operator bool in C++11 onwards.

2014-09-24 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56193

--- Comment #11 from Jonathan Wakely redi at gcc dot gnu.org ---
Author: redi
Date: Wed Sep 24 22:13:35 2014
New Revision: 215571

URL: https://gcc.gnu.org/viewcvs?rev=215571root=gccview=rev
Log:
PR libstdc++/56193
* config/abi/pre/gnu.ver: Add new exports.
* include/bits/basic_ios.h (basic_ios::operator bool): Define.
* src/c++98/ios_locale.cc (basic_ios::operator void*): Instantiate.

Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/config/abi/pre/gnu.ver
trunk/libstdc++-v3/include/bits/basic_ios.h
trunk/libstdc++-v3/src/c++98/ios_locale.cc


[Bug target/63335] GCC:failures for vector double on calls to bif vec_[all|any]_[nge|nle]

2014-09-24 Thread wschmidt at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63335

Bill Schmidt wschmidt at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |wschmidt at gcc dot 
gnu.org

--- Comment #2 from Bill Schmidt wschmidt at gcc dot gnu.org ---
I see the problem.  I'll work on a patch.


[Bug target/63360] Does not retore f31 at -O0 across function calls

2014-09-24 Thread bergner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63360

--- Comment #1 from Peter Bergner bergner at gcc dot gnu.org ---
(In reply to camm from comment #0)
 Created attachment 33551 [details]
 invert.c, invert.cpp, and invert.gdb gdb session
 
 Register variable stored in f31 is stored on the stack, but not restored and
 thus clobbered, after a function call.

Camm and I  discussed this offline and I mentioned that the gdb disassembly
doesn't show any of the functions called by L2(), so we cannot determine which
function is clobbering f31.  Camm is going to rerun the debugger and determine
which calle is clobbering f31 and get the disassemb;y for that.


[Bug target/63335] GCC:failures for vector double on calls to bif vec_[all|any]_[nge|nle]

2014-09-24 Thread wschmidt at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63335

--- Comment #3 from Bill Schmidt wschmidt at gcc dot gnu.org ---
Proposed patch here: https://gcc.gnu.org/ml/gcc-patches/2014-09/msg02201.html


[Bug target/63352] problem with fmt_g0_1.f08 on i386-pc-solaris2.11

2014-09-24 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63352

Dominique d'Humieres dominiq at lps dot ens.fr changed:

   What|Removed |Added

 CC||jvdelisle at gcc dot gnu.org
  Component|fortran |target

--- Comment #11 from Dominique d'Humieres dominiq at lps dot ens.fr ---
Comment 7 confirms my guess that there is a rounding problem on
i386-sun-solaris2.11 (the test is three-year old and succeeds on all the
revisions I have used on darwin, and all the tests I have looked at
https://gcc.gnu.org/ml/gcc-testresults/2014-09/).

This may be related to problems found with solaris during the fix for PR60128.

Note that there is no point to post assembly files: the problem is either in
libgfortran or (more probably) in the C library.


[Bug libstdc++/56193] ios_base should replace operator void* with explicit operator bool in C++11 onwards.

2014-09-24 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56193

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution|--- |FIXED

--- Comment #12 from Jonathan Wakely redi at gcc dot gnu.org ---
Fixed.


[Bug target/63354] gcc -pg -mprofile-kernel creates unused stack frames on leaf functions on ppc64le

2014-09-24 Thread anton at samba dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63354

--- Comment #2 from Anton Blanchard anton at samba dot org ---
Created attachment 33555
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33555action=edit
Avoid an unused stack frame for -mprofile-kernel  profiling on leaf functions.


  1   2   >