[Bug middle-end/59776] [4.8 Regression] gcc -g -O1 ICE in expand_debug_locations, at cfgexpand.c:3865

2014-03-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59776

--- Comment #15 from Jakub Jelinek  ---
Author: jakub
Date: Thu Mar  6 07:59:29 2014
New Revision: 208366

URL: http://gcc.gnu.org/viewcvs?rev=208366&root=gcc&view=rev
Log:
Backport from mainline
2014-02-11  Richard Henderson  
Jakub Jelinek  

PR debug/59776
* tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
around drhs if type conversion to lacc->type is not useless.

* gcc.dg/guality/pr59776.c: New test.

Added:
branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/guality/pr59776.c
Modified:
branches/gcc-4_8-branch/gcc/ChangeLog
branches/gcc-4_8-branch/gcc/testsuite/ChangeLog
branches/gcc-4_8-branch/gcc/tree-sra.c


[Bug fortran/52370] [4.7/4.8 Regression] Spurious "may be used uninitialized" warning for check of optional argument

2014-03-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52370

--- Comment #10 from Jakub Jelinek  ---
Author: jakub
Date: Thu Mar  6 08:00:49 2014
New Revision: 208367

URL: http://gcc.gnu.org/viewcvs?rev=208367&root=gcc&view=rev
Log:
Backport from mainline
2014-02-11  Jakub Jelinek  

PR fortran/52370
* trans-decl.c (gfc_build_dummy_array_decl): Set TREE_NO_WARNING
on decl if sym->attr.optional.

* gfortran.dg/pr52370.f90: New test.

Added:
branches/gcc-4_8-branch/gcc/testsuite/gfortran.dg/pr52370.f90
Modified:
branches/gcc-4_8-branch/gcc/fortran/ChangeLog
branches/gcc-4_8-branch/gcc/fortran/trans-decl.c
branches/gcc-4_8-branch/gcc/testsuite/ChangeLog


[Bug c/60101] [4.7/4.8 Regression] Long compile times when mixed complex floating point datatypes are used in lengthy expressions

2014-03-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60101

--- Comment #14 from Jakub Jelinek  ---
Author: jakub
Date: Thu Mar  6 08:01:57 2014
New Revision: 208368

URL: http://gcc.gnu.org/viewcvs?rev=208368&root=gcc&view=rev
Log:
Backport from mainline
2014-02-12  Jakub Jelinek  

PR c/60101
* c-common.c (merge_tlist): If copy is true, call new_tlist,
if false, add ADD itself, rather than vice versa.
(verify_tree): For COND_EXPR, don't call merge_tlist with non-zero
copy.  For SAVE_EXPR, only call merge_tlist once.

* c-c++-common/pr60101.c: New test.

Added:
branches/gcc-4_8-branch/gcc/testsuite/c-c++-common/pr60101.c
Modified:
branches/gcc-4_8-branch/gcc/c-family/ChangeLog
branches/gcc-4_8-branch/gcc/c-family/c-common.c
branches/gcc-4_8-branch/gcc/testsuite/ChangeLog


[Bug target/43546] [4.7/4.8 Regression] ICE: in assign_stack_local_1, at function.c:353 with -mpreferred-stack-boundary=2 -msseregparm

2014-03-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43546

--- Comment #18 from Jakub Jelinek  ---
Author: jakub
Date: Thu Mar  6 08:02:46 2014
New Revision: 208369

URL: http://gcc.gnu.org/viewcvs?rev=208369&root=gcc&view=rev
Log:
Backport from mainline
2014-02-13  Jakub Jelinek  

PR target/43546
* expr.c (compress_float_constant): If x is a hard register,
extend into a pseudo and then move to x.

* gcc.target/i386/pr43546.c: New test.

Added:
branches/gcc-4_8-branch/gcc/testsuite/gcc.target/i386/pr43546.c
Modified:
branches/gcc-4_8-branch/gcc/ChangeLog
branches/gcc-4_8-branch/gcc/expr.c
branches/gcc-4_8-branch/gcc/testsuite/ChangeLog


[Bug preprocessor/58844] [4.8 Regression] ICE with invalid use of ##

2014-03-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58844

--- Comment #7 from Jakub Jelinek  ---
Author: jakub
Date: Thu Mar  6 08:10:08 2014
New Revision: 208370

URL: http://gcc.gnu.org/viewcvs?rev=208370&root=gcc&view=rev
Log:
Backport from mainline
2014-02-19  Jakub Jelinek  

PR preprocessor/58844
* macro.c (enter_macro_context): Only push
macro_real_token_count (macro) tokens rather than
macro->count tokens, regardless of
CPP_OPTION (pfile, track-macro-expansion).

* c-c++-common/cpp/pr58844-1.c: New test.
* c-c++-common/cpp/pr58844-2.c: New test.

Added:
branches/gcc-4_8-branch/gcc/testsuite/c-c++-common/cpp/pr58844-1.c
branches/gcc-4_8-branch/gcc/testsuite/c-c++-common/cpp/pr58844-2.c
Modified:
branches/gcc-4_8-branch/gcc/testsuite/ChangeLog
branches/gcc-4_8-branch/libcpp/ChangeLog
branches/gcc-4_8-branch/libcpp/macro.c


[Bug c/37743] Bogus printf format warning with __builtin_bswap32.

2014-03-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37743

--- Comment #15 from Jakub Jelinek  ---
Author: jakub
Date: Thu Mar  6 08:11:20 2014
New Revision: 208371

URL: http://gcc.gnu.org/viewcvs?rev=208371&root=gcc&view=rev
Log:
Backport from mainline
2014-02-19  Jakub Jelinek  

PR c/37743
* c-common.c (c_common_nodes_and_builtins): When initializing
c_uint{16,32,64}_type_node, also set corresponding
uint{16,32,64}_type_node to the same value.

* g++.dg/ext/builtin-bswap1.C: New test.
* c-c++-common/pr37743.c: New test.

Added:
branches/gcc-4_8-branch/gcc/testsuite/c-c++-common/pr37743.c
branches/gcc-4_8-branch/gcc/testsuite/g++.dg/ext/builtin-bswap1.C
Modified:
branches/gcc-4_8-branch/gcc/c-family/ChangeLog
branches/gcc-4_8-branch/gcc/c-family/c-common.c
branches/gcc-4_8-branch/gcc/testsuite/ChangeLog


[Bug tree-optimization/56490] [4.7/4.8 Regression] -Wall triggering infinite loop

2014-03-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56490

--- Comment #11 from Jakub Jelinek  ---
Author: jakub
Date: Thu Mar  6 08:12:02 2014
New Revision: 208372

URL: http://gcc.gnu.org/viewcvs?rev=208372&root=gcc&view=rev
Log:
* Makefile.in (tree-ssa-uninit.o): Depend on $(PARAMS_H).

Backport from mainline
2014-02-21  Jakub Jelinek  

PR tree-optimization/56490
* params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
* tree-ssa-uninit.c: Include params.h.
(compute_control_dep_chain): Add num_calls argument, return false
if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
num_calls to recursive call.
(find_predicates): Change dep_chain into normal array, add num_calls
variable and adjust compute_control_dep_chain caller.
(find_def_preds): Likewise.

Modified:
branches/gcc-4_8-branch/gcc/ChangeLog
branches/gcc-4_8-branch/gcc/Makefile.in
branches/gcc-4_8-branch/gcc/params.def
branches/gcc-4_8-branch/gcc/tree-ssa-uninit.c


[Bug debug/60381] [4.9 Regression] ICE: in vt_expand_var_loc_chain, at var-tracking.c:8245

2014-03-06 Thread aoliva at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60381

Alexandre Oliva  changed:

   What|Removed |Added

 Status|ASSIGNED|UNCONFIRMED
 Ever confirmed|1   |0

--- Comment #10 from Alexandre Oliva  ---
Fixed by reversal of the faulty patch.  We should eventually tweak
vt_add_function_parameter so as to preserve VALUEs recursively, adding
dataflow_set binds for all of them, like we do for top-level MEMs (and their
addresses) and REGs.  We'll probably have to work harder to preserve these
intermediate equivalences in spite of the removal of the base VALUEs when their
REGs are reset and their loc lists become empty.  Just marking the VALUEs as
preserved won't stop that, and when we get to preserving them in the separate
preserved table, they'll be gone already.  Regarding preserved values as
non-useless will likely cause lots of values to be preserved that currently
aren't.  This may very well get us better debug info, but I'm not sure at what
cost.


[Bug debug/60381] [4.9 Regression] ICE: in vt_expand_var_loc_chain, at var-tracking.c:8245

2014-03-06 Thread aoliva at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60381

Alexandre Oliva  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #11 from Alexandre Oliva  ---
Oops, really fixed now ;-)


[Bug tree-optimization/60276] [4.7 Regression] -O3 autovectorizer breaks on a particular loop

2014-03-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60276

--- Comment #13 from Jakub Jelinek  ---
Author: jakub
Date: Thu Mar  6 08:23:36 2014
New Revision: 208373

URL: http://gcc.gnu.org/viewcvs?rev=208373&root=gcc&view=rev
Log:
PR tree-optimization/60276
* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Avoid
a -Wsign-compare warning.

Modified:
branches/gcc-4_8-branch/gcc/ChangeLog
branches/gcc-4_8-branch/gcc/tree-vect-data-refs.c


[Bug ipa/60026] [4.8 Regression] ICE at -O3 on valid code (with the optimize pragma) on x86_64-linux-gnu

2014-03-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60026

Jakub Jelinek  changed:

   What|Removed |Added

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

--- Comment #15 from Jakub Jelinek  ---
Hopefully fixed now.


[Bug middle-end/59776] [4.8 Regression] gcc -g -O1 ICE in expand_debug_locations, at cfgexpand.c:3865

2014-03-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59776

Jakub Jelinek  changed:

   What|Removed |Added

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

--- Comment #16 from Jakub Jelinek  ---
Fixed.


[Bug preprocessor/56824] [4.8 regression] pragma GCC diagnostic push/pop fail with GCC diagnostic ignored "-Waggregate-return"

2014-03-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56824

Jakub Jelinek  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||4.8.3
 Resolution|--- |FIXED

--- Comment #14 from Jakub Jelinek  ---
Hopefully fixed now.


[Bug preprocessor/58844] [4.8 Regression] ICE with invalid use of ##

2014-03-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58844

Jakub Jelinek  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||4.8.3
 Resolution|--- |FIXED

--- Comment #8 from Jakub Jelinek  ---
Fixed.


[Bug preprocessor/60436] [4.8/4.9 Regression] C preprocessor segfaults on assembly file

2014-03-06 Thread trippels at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60436

Markus Trippelsdorf  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-03-06
 CC||trippels at gcc dot gnu.org
  Known to work||4.7.3
   Target Milestone|--- |4.8.4
Summary|C preprocessor segfaults on |[4.8/4.9 Regression] C
   |assembly file   |preprocessor segfaults on
   ||assembly file
 Ever confirmed|0   |1
  Known to fail||4.8.3, 4.9.0

--- Comment #1 from Markus Trippelsdorf  ---
Confirmed. Both trunk and 4.8.3 segfault. 4.7.3 is fine.

/usr/libexec/gcc/x86_64-pc-linux-gnu/4.8.3/cc1 -o /dev/null -E -lang-asm -quiet
-v -D ABCDEFGHIJKLM ghc3240_8.s

#0  0x00c7136e in get_data_from_adhoc_loc(line_maps*, unsigned int) ()
#1  0x00c67fe8 in expand_location(unsigned int) ()
#2  0x004cc7b3 in preprocess_file(cpp_reader*) ()
#3  0x00c806df in c_common_init() ()
#4  0x00c7c90c in c_objc_common_init() ()
#5  0x00cc12fb in toplev_main(int, char**) ()
#6  0x77756fb0 in __libc_start_main () from /lib/libc.so.6
#7  0x00c7bb1a in _start ()

/usr/libexec/gcc/x86_64-pc-linux-gnu/4.9.0/cc1 -o /dev/null -E -lang-asm -quiet
-v -D ABCDEFGHIJKLM ghc3240_8.s

#0  0x00aeeaac in expand_location_1(unsigned int, bool) [clone
.lto_priv.2583] ()
#1  0x00b60b10 in preprocess_file(cpp_reader*) ()
#2  0x00b53316 in c_common_init() ()
#3  0x00b1190b in c_objc_common_init() ()
#4  0x00aeb141 in toplev_main(int, char**) ()
#5  0x77756fb0 in __libc_start_main () from /lib/libc.so.6
#6  0x00ae56e9 in _start ()

Valgrind shows:

==28570== Invalid read of size 4
==28570==at 0xAEEAAC: expand_location_1(unsigned int, bool) [clone
.lto_priv.2583] (in /usr/libexec/gcc/x86_64-pc-linux-gnu/4.9.0/cc1)
==28570==by 0xB60B0F: preprocess_file(cpp_reader*) (in
/usr/libexec/gcc/x86_64-pc-linux-gnu/4.9.0/cc1)
==28570==by 0xB53315: c_common_init() (in
/usr/libexec/gcc/x86_64-pc-linux-gnu/4.9.0/cc1)
==28570==by 0xB1190A: c_objc_common_init() (in
/usr/libexec/gcc/x86_64-pc-linux-gnu/4.9.0/cc1)
==28570==by 0xAEB140: toplev_main(int, char**) (in
/usr/libexec/gcc/x86_64-pc-linux-gnu/4.9.0/cc1)
==28570==by 0x4D70FAF: (below main) (in /lib64/libc-2.19.so)
==28570==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==28570== 
==28570== Invalid read of size 4
==28570==at 0xAEEAAC: expand_location_1(unsigned int, bool) [clone
.lto_priv.2583] (in /usr/libexec/gcc/x86_64-pc-linux-gnu/4.9.0/cc1)
==28570==by 0xB6DB50: location_get_source_line(expanded_location, int*) (in
/usr/libexec/gcc/x86_64-pc-linux-gnu/4.9.0/cc1)
==28570==by 0xAEF365: diagnostic_show_locus(diagnostic_context*,
diagnostic_info const*) (in /usr/libexec/gcc/x86_64-pc-linux-gnu/4.9.0/cc1)
==28570==by 0xAEC294: diagnostic_report_diagnostic(diagnostic_context*,
diagnostic_info*) (in /usr/libexec/gcc/x86_64-pc-linux-gnu/4.9.0/cc1)
==28570==by 0x4DC59B: internal_error(char const*, ...) (in
/usr/libexec/gcc/x86_64-pc-linux-gnu/4.9.0/cc1)
==28570==by 0xA377DB: crash_signal(int) [clone .lto_priv.1176] (in
/usr/libexec/gcc/x86_64-pc-linux-gnu/4.9.0/cc1)
==28570==by 0x4D8508F: ??? (in /lib64/libc-2.19.so)
==28570==by 0xAEEAAB: expand_location_1(unsigned int, bool) [clone
.lto_priv.2583] (in /usr/libexec/gcc/x86_64-pc-linux-gnu/4.9.0/cc1)
==28570==by 0xB60B0F: preprocess_file(cpp_reader*) (in
/usr/libexec/gcc/x86_64-pc-linux-gnu/4.9.0/cc1)
==28570==by 0xB53315: c_common_init() (in
/usr/libexec/gcc/x86_64-pc-linux-gnu/4.9.0/cc1)
==28570==by 0xB1190A: c_objc_common_init() (in
/usr/libexec/gcc/x86_64-pc-linux-gnu/4.9.0/cc1)
==28570==by 0xAEB140: toplev_main(int, char**) (in
/usr/libexec/gcc/x86_64-pc-linux-gnu/4.9.0/cc1)
==28570==  Address 0x610 is not stack'd, malloc'd or (recently) free'd

Could be related to PR58893.


[Bug c++/60434] False -Wformat warnings about %lld and %Lf are given on Windows

2014-03-06 Thread egor_suvorov at mail dot ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60434

--- Comment #2 from Egor Suvorov  ---
Created attachment 32283
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32283&action=edit
Output of gcc with '-v -save-temps -std=c++11 -Wformat'


[Bug libstdc++/60441] New: Incorrect textual representation for std::mersenne_twister_engine

2014-03-06 Thread koherde at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60441

Bug ID: 60441
   Summary: Incorrect textual representation for
std::mersenne_twister_engine
   Product: gcc
   Version: 4.8.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: koherde at hotmail dot com

The textual representation of std::mersenne_twister_engine should consist of n
values (n being the state size). libstdc++ uses a textual representation that
consists of n+1 values.
--
#include 
#include 
#include 

int main()
{
std::mt19937 r;
std::stringstream ss;
ss << r;
int valueCount = 0;
std::uint32_t val;
while (ss >> val)
{
++valueCount;
}
std::cout << r.state_size << std::endl;
std::cout << valueCount << std::endl;
}
--
Output:
624
625
Expected output:
624
624


[Bug c++/60434] False -Wformat warnings about %lld and %Lf are given on Windows

2014-03-06 Thread egor_suvorov at mail dot ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60434

--- Comment #3 from Egor Suvorov  ---
Yes, here is result both with C++03 and with C++11 (they're absolutely the
same):

a.cpp: In function 'int main()':
a.cpp:5:19: warning: format '%f' expects argument of type 'double', but
argument 2 has type 'long double' [-Wformat=]
   printf("%f\n", x);  // Undefined
   ^
a.cpp:6:20: warning: format '%lf' expects argument of type 'double', but
argument 2 has type 'long double' [-Wformat=]
   printf("%lf\n", x); // Undefined
^
a.cpp:7:20: warning: unknown conversion type character 'L' in format
[-Wformat=]
   printf("%Lf\n", x); // Expected '123.45' in C++11
^
a.cpp:7:20: warning: too many arguments for format [-Wformat-extra-args]
a.cpp:12:20: warning: unknown conversion type character 'L' in format
[-Wformat=]
   printf("%Lf\n", y); // Undefined
^
a.cpp:12:20: warning: too many arguments for format [-Wformat-extra-args]


[Bug libgcc/59339] vtable_verify objects still trying to be installed even when disabled

2014-03-06 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59339

Uroš Bizjak  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-03-06
   Target Milestone|--- |4.9.0
Summary|vtable_verify objects still |vtable_verify objects still
   |trying to be linked on  |trying to be installed even
   |Android |when disabled
 Ever confirmed|0   |1

--- Comment #3 from Uroš Bizjak  ---
I also see this on x86_64 linux build.

Although not a regression, I think that this build problem should be fixed
before 4.9 is released.

[Bug c/60442] New: No -Wparentheses warning for "if (a += b)"

2014-03-06 Thread chengniansun at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60442

Bug ID: 60442
   Summary: No -Wparentheses warning for "if (a += b)"
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: chengniansun at gmail dot com

The gcc trunk emits -Wparentheses warnings for "if(a = b)" and "if(a = a + b)",
but not "if(a += b)"


$: cat s.c 
int b;
int f(int a) {
  if (a = b) 
return 0;
  else if (a = a + b)
return 3;
  else if (a += b) /* <- no warning here*/ 
return 2;
  else 
return 1;
}
$: gcc-trunk -Wparentheses -c s.c 
s.c: In function ‘f’:
s.c:3:3: warning: suggest parentheses around assignment used as truth value
[-Wparentheses]
   if (a = b) 
   ^
s.c:5:3: warning: suggest parentheses around assignment used as truth value
[-Wparentheses]
   else if (a = a + b)
   ^
$:

[Bug preprocessor/60436] [4.8/4.9 Regression] C preprocessor segfaults on assembly file

2014-03-06 Thread trippels at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60436

--- Comment #2 from Markus Trippelsdorf  ---
ASAN:SIGSEGV
=
==20669==ERROR: AddressSanitizer: SEGV on unknown address 0x0018 (pc
0x023044cf sp 0x7fff99677740 bp 0x8001 T0)
#0 0x23044ce in get_data_from_adhoc_loc(line_maps*, unsigned int)
../../gcc/libcpp/line-map.c:156
#1 0x22c9240 in expand_location_1 ../../gcc/gcc/input.c:142
#2 0x22cb68d in expand_location(unsigned int) ../../gcc/gcc/input.c:724
#3 0x7a3cd9 in scan_translation_unit
../../gcc/gcc/c-family/c-ppoutput.c:214
#4 0x7a3cd9 in preprocess_file(cpp_reader*)
../../gcc/gcc/c-family/c-ppoutput.c:101
#5 0x7a05df in c_common_init() ../../gcc/gcc/c-family/c-opts.c:1040
#6 0x68bccd in c_objc_common_init() ../../gcc/gcc/c/c-objc-common.c:65
#7 0x1251227 in lang_dependent_init ../../gcc/gcc/toplev.c:1712
#8 0x1251227 in do_compile ../../gcc/gcc/toplev.c:1900
#9 0x1251227 in toplev_main(int, char**) ../../gcc/gcc/toplev.c:1990
#10 0x7f051b6cafaf in __libc_start_main (/lib/libc.so.6+0x1ffaf)
#11 0x5beb60
(/var/tmp/gcc_sani/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.9.0/cc1+0x5beb60)

AddressSanitizer can not provide additional info.


[Bug preprocessor/60436] [4.8/4.9 Regression] C preprocessor segfaults on assembly file

2014-03-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60436

--- Comment #3 from Jakub Jelinek  ---
Strange, can't reproduce this myself using the same options, neither in
bootstrapped cc1, nor in non-bootstrapped -O0 built, nor bootstrapped cc1 under
valgrind, both 4.8 (older and latest) and trunk.
I'd have thought this would be r200376, but that is fixed on the trunk and now
(since today) on the 4.8 branch too.


[Bug c/60442] No -Wparentheses warning for "if (a += b)"

2014-03-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60442

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek  ---
I'm not convinced there is anything wrong.  The reason to warn about if(a = b)
or if(a = a + b) is that way too often people just mean to write if(a == b)
or if(a == a + b) instead, but confusing += for == happens orders of magnitude
less often.


[Bug target/60443] New: Target specific options that change the ABI should be marked

2014-03-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60443

Bug ID: 60443
   Summary: Target specific options that change the ABI should be
marked
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Keywords: lto
  Severity: enhancement
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: rguenth at gcc dot gnu.org
CC: hubicka at gcc dot gnu.org

Currently there is no way to handle ABI-changing target options conservatively
in lto-wrapper (complain if there are mismatches inbetween files, make sure
to carry them over to link-time).  This is because explicitely handling them
is not possible (the OPT_ enum is different for each target).

ABI changing options should be marked in the .opt files with a flag that
can be checked instead.


[Bug target/60387] The gcc compiler for the ppc architecture is not compatible with PPC ABI and DWARF standards.

2014-03-06 Thread m_nistor at yahoo dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60387

--- Comment #7 from Nistor, Mihail-Marian  ---
Hello,

Doe to the fact that the gcc is not compatible with the DWARF and PPC ABI for
the PPC processors, as you said that is a fact of life and we need to live with
it. Users must always be informed when a compiler does not comply with an ABI,
so please add a notice in the release note to inform the user that the ppc gcc
is not compatible with the DWARF and PPC ABI. And please also add information
about exception from these standards and provide information about the new
DWARF register number mapping that is used by gcc in the .eh_frame section. 
My 2 cents.
Mihai


[Bug c/60442] No -Wparentheses warning for "if (a += b)"

2014-03-06 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60442

Jonathan Wakely  changed:

   What|Removed |Added

   Keywords||diagnostic

--- Comment #2 from Jonathan Wakely  ---
I agree with Jakub, the warning is meant to catch typographical errors, not
assignments used as truth values in general.  There's nothing wrong with using
assignments as truth values, as long as that's what you actually intended to
type.


[Bug target/60387] The gcc compiler for the ppc architecture is not compatible with PPC ABI and DWARF standards.

2014-03-06 Thread m_nistor at yahoo dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60387

Nistor, Mihail-Marian  changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|INVALID |---

--- Comment #8 from Nistor, Mihail-Marian  ---
Hello,

Doe to the fact that the gcc is not compatible with the DWARF and PPC ABI for
the PPC processors, as you said that is a fact of life and we need to live with
it. Users must always be informed when a compiler does not comply with an ABI,
so please add a notice in the release note to inform the user that the ppc gcc
is not compatible with the DWARF and PPC ABI. And please also add information
about exception from these standards and provide information about the new
DWARF register number mapping that is used by gcc in the .eh_frame section. 
My 2 cents.
Mihai


[Bug middle-end/60435] GCC failes to apply CSE for va_arg with different types whose representations match

2014-03-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60435

--- Comment #1 from Richard Biener  ---
Can't verify it as there isn't a compilable testcase.  But I guess this is
just because GCC doesn't have a code hoisting pass, not because of
int vs. long.  See PR23286 of which this is a duplicate I think.


[Bug lto/60424] [4.9 regression] FAIL: gcc.dg/lto/20110201-1 c_lto_20110201-1_0.o-c_lto_20110201-1_0.o link, -O0 -flto

2014-03-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60424

Richard Biener  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-03-06
 Depends on||60427
 Ever confirmed|0   |1

--- Comment #5 from Richard Biener  ---
Looks related, yes.  Confirmed btw.


[Bug c/60444] New: No -Wmaybe-uninitialized warning

2014-03-06 Thread chengniansun at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60444

Bug ID: 60444
   Summary: No -Wmaybe-uninitialized warning
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: chengniansun at gmail dot com

The auto variable "x" may be uninitialized if "b" is not zero. 

$: cat s.c 
extern void foo();
int test(int b) {
  int x;
  if (b) {
  foo();
  } else {
x = 1;
  }
  return x;
}
$: gcc-trunk -Wmaybe-uninitialized -c s.c -O3


[Bug target/60387] The gcc compiler for the ppc architecture is not compatible with PPC ABI and DWARF standards.

2014-03-06 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60387

Andrew Pinski  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #9 from Andrew Pinski  ---
Please read the links I gave.  They give the background on what is going on and
why even we cannot change it.  Having the eh_frame being different from
debug_frame is now part of the GNU ABI and cannot be changed.


[Bug middle-end/60429] Miscompilation (aliasing) with -finline-functions

2014-03-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60429

Richard Biener  changed:

   What|Removed |Added

   Keywords||wrong-code
 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2014-03-06
  Component|libgcc  |middle-end
 Ever confirmed|0   |1

--- Comment #5 from Richard Biener  ---
Can you identify the inlined call?  Is it

if (pSLL && y == pSLL->scanline) {
loadAET(&AET, pSLL->edgelist);
pSLL = pSLL->next;
}

or

if (pSLL && y == pSLL->scanline) {
loadAET(&AET, pSLL->edgelist);
computeWAET(&AET);
pSLL = pSLL->next;
}

?

Can you also show the correct and the invalid assembly snippet?

Not sure if it is possible, but having a "driver" around this (in
a separate compilation-unit) that calls PolygonRegion, verifying correct output
for correct input
and thus showing the miscompile would be nice (so there is a runtime
testcase).  It doesn't matter if linking requires Qt.

I am somewhat lost in that large function ;)


[Bug preprocessor/60436] [4.8/4.9 Regression] C preprocessor segfaults on assembly file

2014-03-06 Thread trippels at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60436

Markus Trippelsdorf  changed:

   What|Removed |Added

 CC||dehao at gcc dot gnu.org

--- Comment #4 from Markus Trippelsdorf  ---
Probably started with r191494.


[Bug middle-end/60445] New: [4.9 Regression] 473.astar miscompares with -Ofast

2014-03-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60445

Bug ID: 60445
   Summary: [4.9 Regression] 473.astar miscompares with -Ofast
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: rguenth at gcc dot gnu.org
Target: x86_64-*-*, i?86-*-*

Seen on x86_64 with -Ofast and on both x86_64 and i?86 with -Ofast -flto
-march=native.

*** Miscompare of BigLakes2048.out, see
/gcc/spec/cpu2006/benchspec/CPU2006/473.astar/run/run_peak_ref_x86_64-linux.0002/BigLakes2048.out.mis
0009:  Total way length : 761939
   Total way length : 741884
   ^
0012:  Reg ways quantity : 4603
   Reg ways quantity : 4314
  ^
0013:  Total reg way length : 1417263
   Total reg way length : 786132
   ^
0017:  Total river way length : 173223
   Total river way length : 163674
 ^
...

*** Miscompare of rivers.out, see
/gcc/spec/cpu2006/benchspec/CPU2006/473.astar/run/run_peak_ref_x86_64-linux.0002/rivers.out.mis
0008:  Ways quantity : 16536
   Ways quantity : 16353
   ^
0009:  Total way length : 5106389
   Total way length : 5086593
^
0012:  Reg ways quantity : 39579
   Reg ways quantity : 34944
   ^


[Bug middle-end/60445] [4.9 Regression] 473.astar miscompares with -Ofast

2014-03-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60445

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P1
   Target Milestone|--- |4.9.0

--- Comment #1 from Richard Biener  ---
Last revision working with plain -Ofast on x86_64: r208303
First revision failing with plain -Ofast on x86_64: r208335

astar is short C++ code.  It works with -O2.


[Bug preprocessor/60436] [4.8/4.9 Regression] C preprocessor segfaults on assembly file

2014-03-06 Thread trippels at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60436

--- Comment #5 from Markus Trippelsdorf  ---
markus@x4 tmp % gdb --args /var/tmp/gcc_test/usr/local/bin/g++
-DTABLES_NEXT_TO_CODE -x assembler-with-cpp -c ghc3240_8.s
Reading symbols from /var/tmp/gcc_test/usr/local/bin/g++...done.
(gdb) run
Starting program: /var/tmp/gcc_test/usr/local/bin/g++ -DTABLES_NEXT_TO_CODE -x
assembler-with-cpp -c ghc3240_8.s
[New process 7553]
process 7553 is executing new program:
/var/tmp/gcc_test/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.9.0/cc1

Program received signal SIGABRT, Aborted.
[Switching to process 7553]
0x77604ff4 in raise () from /lib/libc.so.6
(gdb) bt
#0  0x77604ff4 in raise () from /lib/libc.so.6
#1  0x776063e7 in abort () from /lib/libc.so.6
#2  0x00f25198 in linemap_location_from_macro_expansion_p
(set=, location=, location@entry=2147483542)
at ../../gcc/libcpp/line-map.c:948
#3  0x00f252ff in linemap_lookup (set=set@entry=0x77ff8000,
line=line@entry=2147483542) at ../../gcc/libcpp/line-map.c:642
#4  0x00f253bc in linemap_macro_loc_to_exp_point (set=0x77ff8000,
location=2147483542, original_map=original_map@entry=0x7fffdfb8)
at ../../gcc/libcpp/line-map.c:1181
#5  0x00f25611 in linemap_resolve_location (set=,
loc=, loc@entry=2147483542, lrk=,
map=map@entry=0x7fffdfb8)
at ../../gcc/libcpp/line-map.c:1262
#6  0x00f0e3ae in expand_location_1 (loc=loc@entry=2147483542,
expansion_point_p=expansion_point_p@entry=true) at ../../gcc/gcc/input.c:164
#7  0x00f0f08e in expand_location (loc=loc@entry=2147483542) at
../../gcc/gcc/input.c:724
#8  0x005ec236 in maybe_print_line_1 (stream=0x15e2860,
src_loc=2147483542) at ../../gcc/gcc/c-family/c-ppoutput.c:314
#9  maybe_print_line (src_loc=src_loc@entry=2147483542) at
../../gcc/gcc/c-family/c-ppoutput.c:351
#10 0x005ec7fb in do_line_change (pfile=0x15d8cd0, token=0x15d9210,
src_loc=2147483542, parsing_args=0) at ../../gcc/gcc/c-family/c-ppoutput.c:420
#11 0x00f240b4 in _cpp_lex_token (pfile=0x15d8cd0) at
../../gcc/libcpp/lex.c:2078
#12 0x00f28d10 in cpp_get_token_1 (pfile=0x15d8cd0, location=0x1d81,
location@entry=0x7fffe134) at ../../gcc/libcpp/macro.c:2359
#13 0x00f28f75 in cpp_get_token_with_location
(pfile=pfile@entry=0x15d8cd0, loc=loc@entry=0x7fffe134) at
../../gcc/libcpp/macro.c:2541
#14 0x005ec9d8 in scan_translation_unit (pfile=0x15d8cd0) at
../../gcc/gcc/c-family/c-ppoutput.c:176
#15 preprocess_file (pfile=0x15d8cd0) at
../../gcc/gcc/c-family/c-ppoutput.c:101
#16 0x005eb3e9 in c_common_init () at
../../gcc/gcc/c-family/c-opts.c:1040
#17 0x0057dd7e in c_objc_common_init () at
../../gcc/gcc/c/c-objc-common.c:65
#18 0x0099f477 in lang_dependent_init (name=0x7fffe73b
"ghc3240_8.s") at ../../gcc/gcc/toplev.c:1712
#19 do_compile () at ../../gcc/gcc/toplev.c:1900
#20 toplev_main (argc=14, argv=0x7fffe2c8) at ../../gcc/gcc/toplev.c:1990
#21 0x775f0fb0 in __libc_start_main () from /lib/libc.so.6
#22 0x005306a1 in _start ()
(gdb)

location@entry=2147483542 = 0x7F96 is near "#define MAX_SOURCE_LOCATION
0x7FFF"


[Bug lto/60427] [4.9 Regression] r208312 causes ICE and wrong code for Fortran with -flto

2014-03-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60427

--- Comment #3 from Richard Biener  ---
Author: rguenth
Date: Thu Mar  6 11:19:13 2014
New Revision: 208379

URL: http://gcc.gnu.org/viewcvs?rev=208379&root=gcc&view=rev
Log:
2014-03-06  Richard Biener  

PR middle-end/60445
PR lto/60424
PR lto/60427
Revert
2014-03-04  Paulo Matos  

* tree-streamer.c (record_common_node): Assert we don't record
nodes with type double.
(preload_common_node): Skip type double, complex double and
double pointer since it is now frontend dependent due to
fshort-double option.

* gcc.dg/lto/pr55113_0.c: New testcase.

Removed:
trunk/gcc/testsuite/gcc.dg/lto/pr55113_0.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-streamer.c


[Bug middle-end/60445] [4.9 Regression] 473.astar miscompares with -Ofast

2014-03-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60445

--- Comment #2 from Richard Biener  ---
Author: rguenth
Date: Thu Mar  6 11:19:13 2014
New Revision: 208379

URL: http://gcc.gnu.org/viewcvs?rev=208379&root=gcc&view=rev
Log:
2014-03-06  Richard Biener  

PR middle-end/60445
PR lto/60424
PR lto/60427
Revert
2014-03-04  Paulo Matos  

* tree-streamer.c (record_common_node): Assert we don't record
nodes with type double.
(preload_common_node): Skip type double, complex double and
double pointer since it is now frontend dependent due to
fshort-double option.

* gcc.dg/lto/pr55113_0.c: New testcase.

Removed:
trunk/gcc/testsuite/gcc.dg/lto/pr55113_0.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-streamer.c


[Bug middle-end/60445] [4.9 Regression] 473.astar miscompares with -Ofast

2014-03-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60445

--- Comment #3 from Richard Biener  ---
Ok, the -flto fails I can reproduce locally and are caused by r208312 (now
reverted).  Still trying to reproduce with plain -Ofast as seen on one of
the testers...


[Bug lto/60424] [4.9 regression] FAIL: gcc.dg/lto/20110201-1 c_lto_20110201-1_0.o-c_lto_20110201-1_0.o link, -O0 -flto

2014-03-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60424

--- Comment #6 from Richard Biener  ---
Author: rguenth
Date: Thu Mar  6 11:19:13 2014
New Revision: 208379

URL: http://gcc.gnu.org/viewcvs?rev=208379&root=gcc&view=rev
Log:
2014-03-06  Richard Biener  

PR middle-end/60445
PR lto/60424
PR lto/60427
Revert
2014-03-04  Paulo Matos  

* tree-streamer.c (record_common_node): Assert we don't record
nodes with type double.
(preload_common_node): Skip type double, complex double and
double pointer since it is now frontend dependent due to
fshort-double option.

* gcc.dg/lto/pr55113_0.c: New testcase.

Removed:
trunk/gcc/testsuite/gcc.dg/lto/pr55113_0.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-streamer.c


[Bug lto/60424] [4.9 regression] FAIL: gcc.dg/lto/20110201-1 c_lto_20110201-1_0.o-c_lto_20110201-1_0.o link, -O0 -flto

2014-03-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60424
Bug 60424 depends on bug 60427, which changed state.

Bug 60427 Summary: [4.9 Regression] r208312 causes ICE and wrong code for 
Fortran with -flto
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60427

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED


[Bug lto/60427] [4.9 Regression] r208312 causes ICE and wrong code for Fortran with -flto

2014-03-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60427

Richard Biener  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #4 from Richard Biener  ---
Fixed.


[Bug lto/60424] [4.9 regression] FAIL: gcc.dg/lto/20110201-1 c_lto_20110201-1_0.o-c_lto_20110201-1_0.o link, -O0 -flto

2014-03-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60424

Richard Biener  changed:

   What|Removed |Added

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

--- Comment #7 from Richard Biener  ---
Confirmed fixed.


[Bug libgcc/59339] vtable_verify objects still trying to be installed even when disabled

2014-03-06 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59339

Rainer Orth  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
URL||http://gcc.gnu.org/ml/gcc-p
   ||atches/2014-03/msg00278.htm
   ||l
 CC||ro at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |ro at gcc dot gnu.org

--- Comment #4 from Rainer Orth  ---
Patch submitted.


[Bug target/60431] [PATCH] [TIC6X] target description missing abssi2 insn

2014-03-06 Thread wojtek.golf at interia dot pl
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60431

Wojciech Migda  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #7 from Wojciech Migda  ---
misread documentation.


[Bug middle-end/60445] [4.9 Regression] 473.astar miscompares with -Ofast

2014-03-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60445

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #4 from Jakub Jelinek  ---
So fixed now?


[Bug target/58595] internal compiler error: in gen_movsi when compiling on arm some files of lttng-tools with -fPIE

2014-03-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58595

--- Comment #14 from Jakub Jelinek  ---
Author: jakub
Date: Thu Mar  6 12:07:07 2014
New Revision: 208380

URL: http://gcc.gnu.org/viewcvs?rev=208380&root=gcc&view=rev
Log:
PR target/58595
* config/arm/arm.c (arm_tls_symbol_p): Remove.
(arm_legitimize_address): Call legitimize_tls_address for any
arm_tls_referenced_p expression, handle constant addend.  Call it
before testing for !TARGET_ARM.
(thumb_legitimize_address): Don't handle arm_tls_symbol_p here.

* gcc.dg/tls/pr58595.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/tls/pr58595.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/arm/arm.c
trunk/gcc/testsuite/ChangeLog


[Bug bootstrap/58572] [4.9 regression] make bootstrap-lean leads to installation failure (doing extra rebuilds and invoking system compiler)

2014-03-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58572

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #7 from Jakub Jelinek  ---
Or perhaps if the *prev* directories are missing during install, symlink them
to the latest stage ones for the duration of make install?


[Bug target/60446] New: [PATCH] [TIC6X] implementing abssf2/absdf2 insns, _fabs/_fabsf/__builtin_c6x_fabs/__builtin_c6x_fabsf intrinsics

2014-03-06 Thread wojtek.golf at interia dot pl
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60446

Bug ID: 60446
   Summary: [PATCH] [TIC6X] implementing abssf2/absdf2 insns,
_fabs/_fabsf/__builtin_c6x_fabs/__builtin_c6x_fabsf
intrinsics
   Product: gcc
   Version: 4.8.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: wojtek.golf at interia dot pl
  Host: Linux wmigda-desktop 3.11.0-13-generic #20-Ubuntu SMP
Wed Oct 23 17:26:33 UTC 2013 i686 i686 i686 GNU/Linux
Target: tic6x-none-elf
 Build: tic6x-none-elf-gcc-4.8.3 (GCC) 4.8.3 20140303
(prerelease)

TI's SPRU187u document lists _fabs and _fabsf intrinsics, being resolved to
absdp and abssp, respectively. TIC6X machine definition lacks specification of
abs:SF and abs:DF alike instructions and _fabs/_fabsf intrinsics. This patch is
intended to amend that.

According to SPRUFE8B abssp and absdp are available for C67 family (TARGET_FP).

gcc already can inline fabs/fabsf but these require the  header. When
implemented, __builtin_c6x_fabs/__builtin_c6x_fabsf may be used without pulling
in any headers, or _fabs/_fabsf when c6x_intrinsics.h is included.

ChangeLog
2014-03-06  Wojciech Migda  

* gcc/config/c6x/c6x.c: added __builtin_c6x_fabs{,f} intrinsics.
* gcc/config/c6x/c6x.md: added abssf2/absdf2 instructions.
* gcc/config/c6x/c6x_intrinsics.h: definitions for _fabs and _fabsf.
* gcc/testsuite/gcc.target/tic6x/fpabs-scan.c: new testcases for fabs,
_fabs, and __builtin_c6x_fabs, as well as their 'float' variants.

Bootstrapping and testing
Host: Linux wmigda-desktop 3.11.0-13-generic #20-Ubuntu SMP Wed Oct 23 17:26:33
UTC 2013 i686 i686 i686 GNU/Linux
Target: tic6x-none-elf
Results for the new testcases (run with make check-gcc
RUNTESTFLAGS="CFLAGS_FOR_TARGET='$CFLAGS_FOR_TARGET
--sysroot=${CXTOOLS}${TRIPLET}/sysroot' -v -v tic6x.exp")

PASS: gcc.target/tic6x/fpabs-scan.c (test for excess errors)
PASS: gcc.target/tic6x/fpabs-scan.c scan-assembler-times abssp 3
PASS: gcc.target/tic6x/fpabs-scan.c scan-assembler-times absdp 3

Patch attached.
Thanks.


[Bug target/60446] [PATCH] [TIC6X] implementing abssf2/absdf2 insns, _fabs/_fabsf/__builtin_c6x_fabs/__builtin_c6x_fabsf intrinsics

2014-03-06 Thread wojtek.golf at interia dot pl
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60446

--- Comment #1 from Wojciech Migda  ---
Created attachment 32284
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32284&action=edit
Proposed patch


[Bug target/58400] gcc for h8300 internal compiler error: insn does not satisfy its constraints at fs/ext4/mballoc.c: In function 'mb_free_blocks':

2014-03-06 Thread amylaar at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58400

Jorn Wolfgang Rennecke  changed:

   What|Removed |Added

 CC||amylaar at gcc dot gnu.org

--- Comment #8 from Jorn Wolfgang Rennecke  ---
Created attachment 32285
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32285&action=edit
patch made as an example how to debug gcc

here is a patch - not regtested.
you might also consider to put the three non-constriant uses of
[satisfies_constraint_]"U" in predicates.md into a different
constraint /vpredicate.
And delete the unused fix_bit_operand,


[Bug libgcc/59339] vtable_verify objects still trying to be installed even when disabled

2014-03-06 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59339

--- Comment #5 from Rainer Orth  ---
Author: ro
Date: Thu Mar  6 12:24:11 2014
New Revision: 208381

URL: http://gcc.gnu.org/viewcvs?rev=208381&root=gcc&view=rev
Log:
Don't install vtv_*.o unless --enable-vtable-verify (PR libgcc/59339)

PR libgcc/59339
* config.host (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu)
(*-*-knetbsd*-gnu, *-*-gnu*, *-*-kopensolaris*-gnu): Only add
vtv_*.o to extra_parts if enable_vtable_verify.

Modified:
trunk/libgcc/ChangeLog
trunk/libgcc/config.host


[Bug libgcc/59339] vtable_verify objects still trying to be installed even when disabled

2014-03-06 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59339

Rainer Orth  changed:

   What|Removed |Added

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

--- Comment #6 from Rainer Orth  ---
Fixed for 4.9.0.


[Bug middle-end/60445] [4.9 Regression] 473.astar miscompares with -Ofast

2014-03-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60445

Richard Biener  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #5 from Richard Biener  ---
I think so.


[Bug target/60387] The gcc compiler for the ppc architecture is not compatible with PPC ABI and DWARF standards.

2014-03-06 Thread m_nistor at yahoo dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60387

--- Comment #10 from Nistor, Mihail-Marian  ---
Could you please show me where this information is in the GNU ABI?
My request is to add all exceptions from the standards to release note.


[Bug target/60387] The gcc compiler for the ppc architecture is not compatible with PPC ABI and DWARF standards.

2014-03-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60387

--- Comment #11 from Jakub Jelinek  ---
But what exceptions are you talking about?  I believe for .dwarf_frame PPC now
emits the psABI mandated register numbers, and .eh_frame, being a GCC
invention, simply has different register numbering, there is no reason why it
would need to follow the psABI, it has it's own ABI (of course it would be
better if it used the same register numbering, and it does on most targets). 
So what exactly you want to document and why?


[Bug fortran/60447] New: Empty .s file created when using -E flag

2014-03-06 Thread vladimir.fuka at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60447

Bug ID: 60447
   Summary: Empty .s file created when using -E flag
   Product: gcc
   Version: 4.8.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vladimir.fuka at gmail dot com

> touch test.f90
> gfortran -E -cpp test.f90
# 1 "test.f90"
# 1 ""
# 1 "test.f90"

> ls -l test.s
-rw-r--r-- 1 lada users 0  6. bře 13.47 test.s


C and C++ front-ends do not do this

> touch test.c
> gfortran -E -cpp test.c
# 1 "test.c"
# 1 ""
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 1 "" 2
# 1 "test.c"
> ls -l test.s
ls: cannot access test.s: No such file or directory

[Bug fortran/60236] gfortran.dg/vect/pr32380.f fails on ARM

2014-03-06 Thread bernd.edlinger at hotmail dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60236

Bernd Edlinger  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #9 from Bernd Edlinger  ---
should be fixed now.


[Bug c/60197] ICE with _Cilk_spawn in expression

2014-03-06 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60197

--- Comment #5 from Marek Polacek  ---
Author: mpolacek
Date: Thu Mar  6 13:41:46 2014
New Revision: 208382

URL: http://gcc.gnu.org/viewcvs?rev=208382&root=gcc&view=rev
Log:
PR c/60197
c-family/
* cilk.c (contains_cilk_spawn_stmt): New function.
(contains_cilk_spawn_stmt_walker): Likewise.
(recognize_spawn): Give error on invalid use of _Cilk_spawn.
* c-common.h (contains_cilk_spawn_stmt): Add declaration.
c/
* c-typeck.c (c_finish_return): Call contains_cilk_spawn_stmt instead
of checking tree code.
cp/
* typeck.c (check_return_expr): Call contains_cilk_spawn_stmt instead
of checking tree code.
testsuite/
* c-c++-common/cilk-plus/CK/pr60197.c: New test.
* c-c++-common/cilk-plus/CK/pr60197-2.c: New test.


Added:
trunk/gcc/testsuite/c-c++-common/cilk-plus/CK/pr60197-2.c
trunk/gcc/testsuite/c-c++-common/cilk-plus/CK/pr60197.c
Modified:
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-common.h
trunk/gcc/c-family/cilk.c
trunk/gcc/c/ChangeLog
trunk/gcc/c/c-typeck.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog


[Bug c/60197] ICE with _Cilk_spawn in expression

2014-03-06 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60197

Marek Polacek  changed:

   What|Removed |Added

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

--- Comment #6 from Marek Polacek  ---
Fixed.


[Bug libstdc++/60448] New: swap_ranges does not use ADL correctly

2014-03-06 Thread public at alisdairm dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60448

Bug ID: 60448
   Summary: swap_ranges does not use ADL correctly
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: public at alisdairm dot net

Created attachment 32286
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32286&action=edit
Demonstrate swap_ranges does not find swap via ADL

The attached program does not correctly use ADL to find the 'swap' member
implemented inside the tagged local class in C++11/C++1y builds.  It is not
expected to compile in C++03 or earlier dialects.

The problem compiles and runs as expected on Clang 3.4 with libc++ in both
C++11 and C++1y modes.


[Bug fortran/60447] Empty .s file created when using -E flag

2014-03-06 Thread kargl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60447

kargl at gcc dot gnu.org changed:

   What|Removed |Added

 CC||kargl at gcc dot gnu.org

--- Comment #1 from kargl at gcc dot gnu.org ---
Use the -o option.


[Bug fortran/60447] Empty .s file created when using -E flag

2014-03-06 Thread kargl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60447

kargl at gcc dot gnu.org changed:

   What|Removed |Added

 CC|kargl at gcc dot gnu.org   |
   Severity|normal  |trivial


[Bug fortran/60447] Empty .s file created when using -E flag

2014-03-06 Thread vladimir.fuka at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60447

--- Comment #2 from Vladimir Fuka  ---
-o option for what?


[Bug preprocessor/60436] [4.8/4.9 Regression] C preprocessor segfaults on assembly file

2014-03-06 Thread trippels at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60436

Markus Trippelsdorf  changed:

   What|Removed |Added

 CC||jsm28 at gcc dot gnu.org

--- Comment #6 from Markus Trippelsdorf  ---
(In reply to Markus Trippelsdorf from comment #4)
> Probably started with r191494.

No, sorry.
This issue started with r192715.


[Bug libstdc++/60448] swap_ranges does not use ADL correctly

2014-03-06 Thread public at alisdairm dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60448

--- Comment #1 from Alisdair Meredith  ---
Created attachment 32287
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32287&action=edit
Cleaner tagging scheme for the local class

Simplified the example to more directly expose the local class via ADL without
any funky casts.


[Bug fortran/60447] Empty .s file created when using -E flag

2014-03-06 Thread kargl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60447

kargl at gcc dot gnu.org changed:

   What|Removed |Added

 CC||kargl at gcc dot gnu.org

--- Comment #3 from kargl at gcc dot gnu.org ---
(In reply to Vladimir Fuka from comment #2)
> -o option for what?

% ls *.s
ls: No match.
% ls foo.*
foo.F90
% gfortran46 -E -o foo.f90 -cpp foo.F90
% ls foo.* *.s
foo.F90 foo.f90


[Bug ada/60411] ADA canadian cross build fails.

2014-03-06 Thread bernd.edlinger at hotmail dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60411

--- Comment #2 from Bernd Edlinger  ---
when I revert this check-inm the build-succeeds:

 http://gcc.gnu.org/viewcvs/gcc?view=revision&revision=208150


[Bug preprocessor/60436] [4.8/4.9 Regression] C preprocessor segfaults on assembly file

2014-03-06 Thread trippels at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60436

--- Comment #7 from Markus Trippelsdorf  ---
Adding "-nostdinc" is a simple workaround.


[Bug c++/51253] [C++11][DR 1030] Evaluation order (sequenced-before relation) among initializer-clauses in braced-init-list

2014-03-06 Thread akim.demaille at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51253

--- Comment #7 from Akim Demaille  ---
Hi all,

I'd really love to have some feedback on this issue.  It looks like nobody is
having a look at this.

Thanks for all the good work, and sorry for insisting.


[Bug fortran/60447] Empty .s file created when using -E flag

2014-03-06 Thread vladimir.fuka at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60447

--- Comment #4 from Vladimir Fuka  ---
I see, but I just wanted to print the content or pipe it somewhere, so I don't
think that resolves it.


[Bug fortran/60447] Empty .s file created when using -E flag

2014-03-06 Thread sgk at troutmask dot apl.washington.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60447

--- Comment #5 from Steve Kargl  ---
On Thu, Mar 06, 2014 at 02:45:38PM +, vladimir.fuka at gmail dot com wrote:
>
> I see, but I just wanted to print the content or pipe it somewhere, so I don't
> think that resolves it.
> 

I did not say that it resolves the problem (as I obviously
did not close the PR).  I'm showing you a way to eliminate
the spurious *.s file if it really bothers you.


[Bug libstdc++/60448] swap_ranges does not use ADL correctly

2014-03-06 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60448

--- Comment #2 from Jonathan Wakely  ---
(In reply to Alisdair Meredith from comment #1)
> Created attachment 32287 [details]
> Cleaner tagging scheme for the local class
> 
> Simplified the example to more directly expose the local class via ADL
> without any funky casts.

Clang and G++ both reject this because the swap call is ambiguous


[Bug libstdc++/60448] swap_ranges does not use ADL correctly

2014-03-06 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60448

--- Comment #3 from Jonathan Wakely  ---
I don't understand what we can be doing wrong in the library, we just call
std::iter_swap(it1, it2) which calls swap(*it1, *it2) unqualified.


[Bug bootstrap/58572] [4.9 regression] make bootstrap-lean leads to installation failure (doing extra rebuilds and invoking system compiler)

2014-03-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58572

--- Comment #8 from Jakub Jelinek  ---
Created attachment 32288
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32288&action=edit
gcc49-pr58572.patch

That didn't work for some reason (tried that just manually, after make
bootstrap-lean did ln -sf {,prev-}x86_64-unknown-linux-gnu, but make install
still failed when using g++ which doesn't grok -Wnarrowing and -Wno-narrowing
(used a shell script wrapper around /usr/bin/g++ that rejected those options).

But this patch worked, apparently libstdc++-v3 headers already use #pragma GCC
system_header, so this patch shouldn't make a difference warning-wise, but it
makes a difference for -MMD.


[Bug libstdc++/60448] swap_ranges does not use ADL correctly

2014-03-06 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60448

--- Comment #4 from Jonathan Wakely  ---
Looks like the difference between libc++ and libstdc++ is whether std::swap()
is declared before std::swap_ranges or not, this reproduces the same behaviour,
with swapper replacing swap_ranges:

namespace tagged
{

template 
struct Swappable {};

template 
void swap(Swappable & a, Swappable & b) {
   static_cast(a).swap(static_cast(b));
}

} // namespace tagged

namespace std
{
  template
void do_std_swap(T& a, T& b)
{
  T tmp = static_cast(a);
  a = static_cast(b);
  b = static_cast(tmp);
}

#ifdef SWAP_FIRST
  template
void swap(T& a, T& b)
{
  do_std_swap(a, b);
}
#endif

  template
void swapper(T t)
{
  swap(*t, *t);
}

#ifndef SWAP_FIRST
  template
void swap(T& a, T& b)
{
  do_std_swap(a, b);
}
#endif

}

int main()
{
  struct local : tagged::Swappable {
local(int x) : data(x) {}

local(local const &) = delete;
local(local  &&) = delete;
local & operator=(local const &) = delete;
local & operator=(local  &&) = delete;

void swap(local & other) {
   auto x = other.data;
   other.data = this->data;
   this->data = x;
}
  private:
int data;
  };

  local l{1};
  std::swapper(&l);
}

When SWAP_FIRST is defined G++ and Clang call std::swap, otherwise they find
tagged::swap by ADL.


[Bug c++/60384] [4.9 Regression] [c++1y] ICE with invalid typedef

2014-03-06 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60384

Paolo Carlini  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |paolo.carlini at oracle 
dot com

--- Comment #2 from Paolo Carlini  ---
Looking into it.


[Bug libstdc++/60448] swap_ranges does not use ADL correctly

2014-03-06 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60448

--- Comment #5 from Jonathan Wakely  ---
Slightly different version of that last test:

namespace tagged
{

template 
struct Swappable {};

#ifndef NO_CUSTOM_SWAP
template 
void swap(Swappable & a, Swappable & b) {
   static_cast(a).swap(static_cast(b));
}
#endif

} // namespace tagged

namespace std
{
#ifdef SWAP_FIRST
  template
void swap(T& a, T& b);
#endif

  template
void swapper(T t)
{
  swap(*t, *t);
}

  template
void swap(T& a, T& b)
{
  T tmp = static_cast(a);
  a = static_cast(b);
  b = static_cast(tmp);
}
}

int main()
{
  struct local : tagged::Swappable {
local(int x) : data(x) {}

local(local const &) = delete;
local(local  &&) = delete;
local & operator=(local const &) = delete;
local & operator=(local  &&) = delete;

void swap(local & other) {
   auto x = other.data;
   other.data = this->data;
   this->data = x;
}
  private:
int data;
  };

  local l{1};
  std::swapper(&l);
}


I must be guessing something wrong about libc++'s std::swap_ranges(), because
if it was declared before std::swap() then it would never work with any type
that doesn't provide its own swap() overload, as demonstrated by compiling the
above with NO_CUSTOM_SWAP defined.

So I don't know exactly what's going on, but I'm not convinced libstdc++ is
doing anything wrong.


[Bug libstdc++/60448] swap_ranges does not use ADL correctly

2014-03-06 Thread glisse at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60448

--- Comment #6 from Marc Glisse  ---
libc++ sfinae constrains std::swap.


[Bug libstdc++/60448] swap_ranges does not use ADL correctly

2014-03-06 Thread glisse at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60448

--- Comment #7 from Marc Glisse  ---
(In reply to Marc Glisse from comment #6)
> libc++ sfinae constrains std::swap.

More precisely: they do have swap declared before iter_swap, if you remove the
=delete it is ambiguous with libc++ as well, it just happens that the template
constraints disable the std swap in this particular case.

So I don't think libstdc++ is doing anything wrong.

I don't understand why ADL should get this to work. No function is more
specialized than the other, and ADL doesn't disable unqualified lookup. But
then again I am bad at understanding this text, it looks to me like it says ADL
shouldn't even happen, which is clearly not the case...


[Bug target/60410] [4.7/4.8/4.9 Regression] -fshort-double ICEs x86_64

2014-03-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60410

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org,
   ||rth at gcc dot gnu.org,
   ||uros at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek  ---
Started with r189974, but that is just because it added an assertion.
The question is, if -fshort-double really has to be supported on x86_64/i686
(as ABI changing option), what to do with the intrinsics, grep double
config/i386/*intrin*.h shows quite a lot of intrinsics that use double, and
various builtins really assume DFmode arguments/return values/V*DF vectors etc.
So, perhaps we could just override
ix86_builtin_type_tab[(int)IX86_BT_DOUBLE] if double_type_node doesn't have
DFmode TYPE_MODE to some DFmode REAL_TYPE (that would likely fix this ICE), and
perhaps tweak the *intrin*.h headers to use typedef double __real_double
__attribute__((__mode__(__DFmode__))); instead of double (perhaps not this
part, it will very unlikely do the right thing, perhaps just tell people not to
use the intrinsics).


[Bug lto/60449] New: Merging function DECLs discards leaf attribute which causes cfg verifier to fail

2014-03-06 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60449

Bug ID: 60449
   Summary: Merging function DECLs discards leaf attribute which
causes cfg verifier to fail
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: lto
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jamborm at gcc dot gnu.org

I've come across this verify_flow_info failure when attempting to LTO
build Firefox.  I'm attaching a small testcase (I'm using trunk
revision 208276 on x86-64-linux), to reproduce do:

$ ~/gcc/trunk/inst/bin/gcc -c -O2 -flto gtod1.c 
$ ~/gcc/trunk/inst/bin/gcc -c -O2 -flto gtod2.c
$ ~/gcc/trunk/inst/bin/gcc -O2 -flto gtod1.o gtod2.o 
gtod2.c: In function ‘main’:
gtod2.c:41:5: error: control flow in the middle of basic block 6
 int main (void)
 ^
gtod2.c:41:5: error: control flow in the middle of basic block 6
gtod2.c:41:5: error: control flow in the middle of basic block 6
gtod2.c:41:5: internal compiler error: verify_flow_info failed

The order of .o files in the linking stage is important.

My artificial testcase declares gettimeofday itself, twice, each time
with different attributes on purpose.  When building FF, all
declarations claim to come from /usr/include/sys/time.h, I do not know
why some of them lost or did not get their attributes.

The problem with loosing the leaf attribute is that calls from
function that calls setjmp are considered control flow statements
unless they are without side effects or leaf (see stmt_ends_bb_p,
is_ctrl_altering_stmt and call_can_make_abnormal_goto).  Therefore, if
a leaf attribute is lost, calls to that functions suddenly may need to
break BBs or face the verifiers wrath.

[Bug lto/60449] Merging function DECLs discards leaf attribute which causes cfg verifier to fail

2014-03-06 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60449

--- Comment #1 from Martin Jambor  ---
Created attachment 32289
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32289&action=edit
Part one of a testcase


[Bug lto/60449] Merging function DECLs discards leaf attribute which causes cfg verifier to fail

2014-03-06 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60449

--- Comment #2 from Martin Jambor  ---
Created attachment 32290
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32290&action=edit
Part two of a testcase


[Bug fortran/60447] Empty .s file created when using -E flag

2014-03-06 Thread sgk at troutmask dot apl.washington.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60447

--- Comment #6 from Steve Kargl  ---
On Thu, Mar 06, 2014 at 03:01:52PM +, sgk at troutmask dot
apl.washington.edu wrote:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60447
> 
> --- Comment #5 from Steve Kargl  ---
> On Thu, Mar 06, 2014 at 02:45:38PM +, vladimir.fuka at gmail dot com 
> wrote:
> >
> > I see, but I just wanted to print the content or pipe it somewhere,
> > so I don't think that resolves it.
> > 
> 
> I did not say that it resolves the problem (as I obviously
> did not close the PR).  I'm showing you a way to eliminate
> the spurious *.s file if it really bothers you.

Possible patch.

Index: cpp.c
===
--- cpp.c(revision 207633)
+++ cpp.c(working copy)
@@ -536,16 +536,13 @@ gfc_cpp_init_0 (void)

   if (gfc_cpp_preprocess_only ())
 {
+  /* If only cpp is desired, then a hack is needed to redirect assembler
+ output (actually nothing as -E implies -fsyntax-only) to another
+ file, otherwise the output from preprocessing is lost.  */
+  asm_file_name = gfc_cpp_option.temporary_filename;
+
   if (gfc_cpp_option.output_filename)
 {
-  /* This needs cheating: with "-E -o ", the user wants the
- preprocessed output in . However, if nothing is done
- about it  is also used for assembler output. Hence, it
- is necessary to redirect assembler output (actually nothing
- as -E implies -fsyntax-only) to another file, otherwise the
- output from preprocessing is lost.  */
-  asm_file_name = gfc_cpp_option.temporary_filename;
-
   print.outf = fopen (gfc_cpp_option.output_filename, "w");
   if (print.outf == NULL)
 gfc_fatal_error ("opening output file %s: %s",


[Bug lto/45375] [meta-bug] Issues with building Mozilla with LTO

2014-03-06 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45375

--- Comment #200 from Martin Jambor  ---
I currently cannot build Firefox with LTO due to PR 60449 (yeah, I
know, using gcc configured with checking makes life hard, sometimes
unnecessarily).

I get errors like
 /home/mjambor/mozilla/mzc2/media/libvpx/vp8/encoder/onyx_if.c:4884:5: error:
control flow  in the middle of basic block 7


[Bug lto/45375] [meta-bug] Issues with building Mozilla with LTO

2014-03-06 Thread trippels at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45375

--- Comment #201 from Markus Trippelsdorf  ---
With current gcc trunk and mozilla-central trunk Firefox crashes on startup
when
build with -flto (--enable-optimize=-O3):

0x75ce5d8f in nsCOMPtr_base::assign_with_AddRef(nsISupports*) [clone
.constprop.13162] () from /var/tmp/moz-build-dir/dist/bin/libxul.so
(gdb) bt
#0  0x75ce5d8f in nsCOMPtr_base::assign_with_AddRef(nsISupports*)
[clone .constprop.13162] () from /var/tmp/moz-build-dir/dist/bin/libxul.so
#1  0x73fe60eb in nsSocketTransport::OnSocketDetached(PRFileDesc*) ()
from /var/tmp/moz-build-dir/dist/bin/libxul.so
#2  0x73eb74ac in
nsSocketTransportService::DetachSocket(nsSocketTransportService::SocketContext*,
nsSocketTransportService::SocketContext*) ()
   from /var/tmp/moz-build-dir/dist/bin/libxul.so
#3  0x73fff28f in nsSocketTransportService::Run() () from
/var/tmp/moz-build-dir/dist/bin/libxul.so
#4  0x74059c6a in nsThread::ProcessNextEvent(bool, bool*) () from
/var/tmp/moz-build-dir/dist/bin/libxul.so
#5  0x75ce5b39 in NS_ProcessNextEvent(nsIThread*, bool) [clone
.constprop.13167] () from /var/tmp/moz-build-dir/dist/bin/libxul.so
#6  0x745af7a0 in
mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*)
() from /var/tmp/moz-build-dir/dist/bin/libxul.so
#7  0x73ec649d in MessageLoop::Run() () from
/var/tmp/moz-build-dir/dist/bin/libxul.so
#8  0x73fe7a56 in nsThread::ThreadFunc(void*) () from
/var/tmp/moz-build-dir/dist/bin/libxul.so
#9  0x77e7757c in _pt_root () from
/var/tmp/moz-build-dir/dist/bin/libnspr4.so
#10 0x77bc41e2 in start_thread () from /lib/libpthread.so.0
#11 0x774932ad in clone () from /lib/libc.so.6

When I build with PGO/LTO Firefox crashes later (when I close a
tab with e.g.: https://github.com/JuliaLang/julia/pull/6018 ):

Program received signal SIGSEGV, Segmentation fault.
0x751645ed in PL_DHashTableEnumerate(PLDHashTable*, PLDHashOperator
(*)(PLDHashTable*, PLDHashEntryHdr*, unsigned int, void*), void*) ()
   from /var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
(gdb) bt
#0  0x751645ed in PL_DHashTableEnumerate(PLDHashTable*, PLDHashOperator
(*)(PLDHashTable*, PLDHashEntryHdr*, unsigned int, void*), void*) ()
   from /var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#1  0x75754d32 in PresShell::Destroy() () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#2  0x75754831 in nsDocumentViewer::DestroyPresShell() () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#3  0x755ee5c4 in nsDocumentViewer::Hide() () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#4  0x757b72eb in nsDocShell::SetVisibility(bool) () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#5  0x75a589a4 in nsFrameLoader::Hide() () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#6  0x75a588f6 in nsHideViewer::Run() () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#7  0x753b97de in nsContentUtils::RemoveScriptBlocker() () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#8  0x753cc954 in nsDocument::EndUpdate(unsigned int) () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#9  0x75651dd6 in mozilla::dom::XULDocument::EndUpdate(unsigned int) ()
from /var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#10 0x7549673b in nsINode::doRemoveChildAt(unsigned int, bool,
nsIContent*, nsAttrAndChildArray&) () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#11 0x75496085 in nsXULElement::RemoveChildAt(unsigned int, bool) ()
from /var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#12 0x75494df9 in nsINode::RemoveChild(nsINode&, mozilla::ErrorResult&)
() from /var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#13 0x75494a00 in mozilla::dom::NodeBinding::removeChild(JSContext*,
JS::Handle, nsINode*, JSJitMethodCallArgs const&) [clone
.lto_priv.13709] ()
   from /var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#14 0x753b01e7 in mozilla::dom::GenericBindingMethod(JSContext*,
unsigned int, JS::Value*) () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#15 0x75262744 in js::Invoke(JSContext*, JS::CallArgs,
js::MaybeConstruct) () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#16 0x7524a14c in Interpret(JSContext*, js::RunState&) () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#17 0x75249801 in js::RunScript(JSContext*, js::RunState&) () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#18 0x752627ec in js::Invoke(JSContext*, JS::CallArgs,
js::MaybeConstruct) () from
/var/tmp/firefox-destdir/usr/lib/firefox-30.0a1/libxul.so
#19 0x752a574c in js::Invoke(JSContext*, JS::Value const&, JS::Value
const&, unsign

[Bug libstdc++/60448] swap_ranges does not use ADL correctly

2014-03-06 Thread public at alisdairm dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60448

--- Comment #8 from Alisdair Meredith  ---
I agree with Mark's analysis.  I was trying to force use of swap on a local
class, and found a pattern that worked for libc++ but missed that neither
template would be more specialized - my original attempt used friends ands not
valid for other reasons.  The key is that libc++ SFINAEs swap on the type
requirements, while libstdc++ defers the error until swap is instantiated.  I
am still surprised that I get an error for calling the move operations of
'local' though (in the second example) rather than getting an ambiguous lookup.
 I think the first example is unambiguously a user-error (mine) by this
analysis.


[Bug lto/60449] Merging function DECLs discards leaf attribute which causes cfg verifier to fail

2014-03-06 Thread trippels at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60449

Markus Trippelsdorf  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-03-06
 CC||trippels at gcc dot gnu.org
   Target Milestone|--- |4.9.0
 Ever confirmed|0   |1

--- Comment #3 from Markus Trippelsdorf  ---
Confirmed.


[Bug lto/60449] Merging function DECLs discards leaf attribute which causes cfg verifier to fail

2014-03-06 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60449

--- Comment #4 from Martin Jambor  ---
Created attachment 32291
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32291&action=edit
Untested proposed fix

Untested proposed fix


[Bug lto/45375] [meta-bug] Issues with building Mozilla with LTO

2014-03-06 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45375

--- Comment #202 from H.J. Lu  ---
LTO miscompiles 435.gromacs in SPEC CPU 2006 on x32 with

-mx32 -O3 -funroll-loops -ffast-math

since r208165 (PR 60418).  Can you try r208163?


[Bug preprocessor/60436] [4.8/4.9 Regression] C preprocessor segfaults on assembly file

2014-03-06 Thread joseph at codesourcery dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60436

--- Comment #8 from joseph at codesourcery dot com  ---
Implicit preincludes should probably be disabled when preprocessing .S 
files (though I don't know if that would help with this issue).


[Bug debug/56974] c++ ref qualifiers not represented in DWARF

2014-03-06 Thread jan.kratochvil at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56974

Jan Kratochvil  changed:

   What|Removed |Added

 CC||jan.kratochvil at redhat dot 
com

--- Comment #1 from Jan Kratochvil  ---
"&&": g++-4.8.2 for 'void f(int &&r) {}' produces DW_TAG_rvalue_reference_type.

Or do you mean something else?



[Bug debug/56974] c++ ref qualifiers not represented in DWARF

2014-03-06 Thread tromey at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56974

--- Comment #2 from Tom Tromey  ---
(In reply to Jan Kratochvil from comment #1)
> "&&": g++-4.8.2 for 'void f(int &&r) {}' produces
> DW_TAG_rvalue_reference_type.
> 
> Or do you mean something else?

"ref qualifiers" is a term from C++11 relating to the
mechanism for putting constraints on the receiver
of a method call.  E.g.:
http://gcc.gnu.org/ml/gcc-patches/2013-04/msg00024.html


[Bug middle-end/60418] [4.9 Regression] 435.gromacs in SPEC CPU 2006 is miscompiled

2014-03-06 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60418

--- Comment #9 from H.J. Lu  ---
One pass removes a preheader in

  if (_47 > 0)
goto ;
  else
goto ;

  :

  :
  # n_20 = PHI <1(3), n_269(7)>

and becomes:

  if (_47 > 0)
goto ;
  else
goto ;

  :
  # n_20 = PHI <1(2), n_269(6)>

The next pass adds the preheader back:

  if (_47 > 0)
goto ;
  else
goto ;

  :
  # n_264 = PHI <1(2)> 

  :
  # n_20 = PHI 

which changes the loop behavior and generates different results.


[Bug middle-end/60429] Miscompilation (aliasing) with -finline-functions

2014-03-06 Thread linux at carewolf dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60429

--- Comment #6 from Allan Jensen  ---
(In reply to Richard Biener from comment #5)
> Can you identify the inlined call?  Is it
> 
> if (pSLL && y == pSLL->scanline) {
> loadAET(&AET, pSLL->edgelist);
> pSLL = pSLL->next;
> }
> 
> or
> 
> if (pSLL && y == pSLL->scanline) {
> loadAET(&AET, pSLL->edgelist);
> computeWAET(&AET);
> pSLL = pSLL->next;
> }
> 
> ?
> 

It is the first one (at least that is the one I have triggered).

> Can you also show the correct and the invalid assembly snippet?

I haven't really been able to identify it except that between code from loadAET
and the following while loop, there appears to be no code loading the variable
pAET which controls the loop, it appears to be loaded before loadAET, even
though loadAET may change it. 

Note that I have made a work-around for the issue by making AET a pointer to an 
EdgeTableEntry on the heap instead of an object on the stack. I believe somehow
the aliasing between AET and the pointers in loadAET which may point to it is
lost by GCC.

> 
> Not sure if it is possible, but having a "driver" around this (in
> a separate compilation-unit) that calls PolygonRegion, verifying correct
> output for correct input
> and thus showing the miscompile would be nice (so there is a runtime
> testcase).  It doesn't matter if linking requires Qt.
> 
> I am somewhat lost in that large function ;)

I posted like this in case the description would be enough to make someone know
where to look. If you need to debug it and dig into it, I will try to make a
proper reduced test case.


[Bug lto/45375] [meta-bug] Issues with building Mozilla with LTO

2014-03-06 Thread trippels at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45375

--- Comment #203 from Markus Trippelsdorf  ---
(In reply to H.J. Lu from comment #202)
> LTO miscompiles 435.gromacs in SPEC CPU 2006 on x32 with
> 
> -mx32 -O3 -funroll-loops -ffast-math
> 
> since r208165 (PR 60418).  Can you try r208163?

Yes. Unfortunately with r208163 Firefox still crashes on startup.


[Bug target/60387] The gcc compiler for the ppc architecture is not compatible with PPC ABI and DWARF standards.

2014-03-06 Thread m_nistor at yahoo dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60387

--- Comment #12 from Nistor, Mihail-Marian  ---
The ppc gcc uses the DWARF register number mapping that is defined by the
psABI, but the main problem is: the psABI is for AI32/64 architectures. The
DWARF register number mapping is also used to encode all debug data information
so the affected DWARF sections are:  .debug_info and .debug_frame. The ppc gcc
must document division from the PPC ABI standard (see an example at comment 2).
It should also specify that the internal/unofficial DWARF register number
mapping will be used for .eh_frame and DWARF standard.
The AI32/64 ABI consists of the following: psABI, ABI-EH and SWCONV (see more
information at http://mentorembedded.github.io/cxx-abi/abi.html on 1.5 Base
Document). An important notice here is the primary API for this architecture
(psABI) refers ABI-EH and SWCONV documents. In the SWCONV document the AI32/64
describes how the debugger should access the data that are particular for this
architecture (see more information in 11. Stack Unwinding and Exception
Handling chapter).

I didn’t see any documents on how the support is done for PPC architecture.
This document must be provided and the PPC ABI must refer to it.

I don’t think that the most important rules from the “11.3 Coding Conventions
for Reliable Unwinding” chapter from SWCONV were followed by the ppc gcc
implementation. The “prolog” and “epilog”   ranges do not obey these rules
defined in 11 chapter.

Until the above problems is solved we have a reference from DWARF3/4 that
should be resolved by using undocumented ABI (the test case is: the debugger
should compute the location for a local variable that is related to the frame
base (DW_AT_location is defined as DW_OP_fbreg) and the value for
DW_AT_frame_base is defined as DW_OP_call_frame_cfa for current function).  

I have been looking to see a full specification and implementation for this
custom solution.

[Bug c/60442] No -Wparentheses warning for "if (a += b)"

2014-03-06 Thread chengniansun at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60442

--- Comment #3 from Chengnian Sun  ---
(In reply to Jakub Jelinek from comment #1)
> I'm not convinced there is anything wrong.  The reason to warn about if(a =
> b) or if(a = a + b) is that way too often people just mean to write if(a ==
> b)
> or if(a == a + b) instead, but confusing += for == happens orders of
> magnitude less often.

Thanks, Jakub and Jonathan.


[Bug c/60442] No -Wparentheses warning for "if (a += b)"

2014-03-06 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60442

Marek Polacek  changed:

   What|Removed |Added

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

--- Comment #4 from Marek Polacek  ---
I agree with Jakub and Jonathan.  Closing.


  1   2   >