[Bug libstdc++/59283] New: missing std::basic_string constructor

2013-11-25 Thread tmmikolajczyk at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59283

Bug ID: 59283
   Summary: missing std::basic_string constructor
   Product: gcc
   Version: 4.8.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: tmmikolajczyk at gmail dot com

The C++11 standard specifies the following c-tor in the std::basic_string
class:

basic_string (const basic_string, const allocator_type);

It looks like the c-tor is missing in the current libstdc++ implementation.


[Bug ipa/59282] New: ICE: When compiling 252.eon

2013-11-25 Thread zhenqiang.chen at linaro dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59282

Bug ID: 59282
   Summary: ICE: When compiling 252.eon
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: ipa
  Assignee: unassigned at gcc dot gnu.org
  Reporter: zhenqiang.chen at linaro dot org

Created attachment 31288
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31288action=edit
preprocessed source file

ICE for both x86-64 and ARM.

./install/bin/gcc -O2 ggNRooksSample2.ii -S

ooksSample2.cc: In constructor ‘ggNRooksSample2::ggNRooksSample2()’:
ggNRooksSample2.cc:41:1: error: stmt (0x7f9491441be0) marked modified after
optimization pass:
# .MEM_26 = VDEF .MEM_25
ggNRooksSample2::Generate (this_2(D));
ggNRooksSample2.cc:41:1: internal compiler error: verify_ssa failed
0xd129cc verify_ssa(bool)
gcc/gcc/tree-ssa.c:1090
0xab8c0e execute_function_todo
gcc/gcc/passes.c:1840
0xab9603 execute_todo
gcc/gcc/passes.c:1873
0xabb19b execute_one_ipa_transform_pass
gcc/gcc/passes.c:2058
0xabb19b execute_all_ipa_transforms()
gcc/gcc/passes.c:2089
0x8544ca expand_function
gcc/gcc/cgraphunit.c:1750
0x856380 expand_all_functions
gcc/gcc/cgraphunit.c:1862
0x856380 compile()
gcc/gcc/cgraphunit.c:2196
0x856b64 finalize_compilation_unit()
gcc/gcc/cgraphunit.c:2273
0x6424ba cp_write_global_declarations()
gcc/gcc/cp/decl2.c:4402
Please submit a full bug report,

./install/bin/gcc -O3 ggNRooksSample2.ii -S
ggNRooksSample2.cc: In constructor ‘ggNRooksSample2::ggNRooksSample2()’:
ggNRooksSample2.cc:41:1: internal compiler error: in initialize_flags_in_bb, at
tree-into-ssa.c:457
0xbcb77d initialize_flags_in_bb
gcc/gcc/tree-into-ssa.c:457
0xbcb77d mark_block_for_update
gcc/gcc/tree-into-ssa.c:471
0xbcf89b prepare_block_for_update
gcc/gcc/tree-into-ssa.c:2500
0xbcff5e prepare_block_for_update
gcc/gcc/tree-into-ssa.c:2580
0xbcff5e prepare_block_for_update
gcc/gcc/tree-into-ssa.c:2580
0xbcff5e prepare_block_for_update
gcc/gcc/tree-into-ssa.c:2580
0xbcff5e prepare_block_for_update
gcc/gcc/tree-into-ssa.c:2580
0xbd3655 update_ssa(unsigned int)
gcc/gcc/tree-into-ssa.c:3223
0xab8b47 execute_function_todo
gcc/gcc/passes.c:1812
0xab9603 execute_todo
gcc/gcc/passes.c:1873
0xabb19b execute_one_ipa_transform_pass
gcc/gcc/passes.c:2058
0xabb19b execute_all_ipa_transforms()
gcc/gcc/passes.c:2089
0x8544ca expand_function
gcc/gcc/cgraphunit.c:1750
0x856380 expand_all_functions
gcc/gcc/cgraphunit.c:1862
0x856380 compile()
gcc/gcc/cgraphunit.c:2196
0x856b64 finalize_compilation_unit()
gcc/gcc/cgraphunit.c:2273
0x6424ba cp_write_global_declarations()
gcc/gcc/cp/decl2.c:4402
Please submit a full bug report,

[Bug ipa/59282] ICE: When compiling 252.eon

2013-11-25 Thread zhenqiang.chen at linaro dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59282

--- Comment #1 from zhenqiang.chen at linaro dot org ---
ICE from:

commit 3af5e0b77894f5348512dfd60c034da9e859ef11
Author: hubicka hubicka@138bc75d-0d04-0410-961f-82ee72b054a4
Date:   Tue Nov 19 10:05:54 2013 +

* cgraph.c (cgraph_create_indirect_edge): Use
get_polymorphic_call_info.
* cgraph.h (cgraph_indirect_call_info): Add outer_type,
maybe_in_construction
and maybe_derived_type.
* ipa-utils.h (ipa_polymorphic_call_context): New structure.
(ipa_dummy_polymorphic_call_context): New global var.
(possible_polymorphic_call_targets): Add context paramter.
(dump_possible_polymorphic_call_targets): Likewise; update
wrappers.
(possible_polymorphic_call_target_p): Likewise.
(get_polymorphic_call_info): New function.
* ipa-devirt.c (ipa_dummy_polymorphic_call_context): New function.
(add_type_duplicate): Remove forgotten debug output.
(method_class_type): Add sanity check.
(maybe_record_node): Add FINALP parameter.
(record_binfo): Add OUTER_TYPE and OFFSET; walk the inner
by info by get_binfo_at_offset.
(possible_polymorphic_call_targets_1): Add OUTER_TYPE/OFFSET
parameters;
pass them to record-binfo.
(polymorphic_call_target_d): Add context and FINAL.
(polymorphic_call_target_hasher::hash): Hash context.
(polymorphic_call_target_hasher::equal): Compare context.
(free_polymorphic_call_targets_hash):
(get_class_context): New function.
(contains_type_p): New function.
(get_polymorphic_call_info): New function.
(walk_bases): New function.
(possible_polymorphic_call_targets): Add context parameter; honnor it.
(dump_possible_polymorphic_call_targets): Dump context.
(possible_polymorphic_call_target_p): Add context.
(update_type_inheritance_graph): Update comment.s
(ipa_set_jf_known_type): Assert that compoentn type is known.
(ipa_note_param_call): Do not tamper with offsets.
(ipa_analyze_indirect_call_uses): When offset is being changed; clear
outer type.
(update_indirect_edges_after_inlining): Likewise.
(ipa_write_indirect_edge_info): Stream new fields.
(ipa_read_indirect_edge_info): Stream in new fields.

* ipa/devirt9.C: Verify that the optimization happens already before.
whole-program.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205019
138bc75d-0d04-0410-961f-82ee72b054a4


[Bug bootstrap/59279] [4.9 Regression] r205337 breaks bootstrap with java

2013-11-25 Thread steven at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59279

--- Comment #5 from Steven Bosscher steven at gcc dot gnu.org ---
OK, thinko on my part: Can't remove the label before a JUMP_TABLE_DATA
if we're in cfglayout mode, because:

1. PREV_INSN (label) may be NULL
2. remove_insn doesn't update BB_FOOTER/BB_HEADER

I'll re-test the patch with a change to retain the label.


[Bug ipa/59201] [4.9 Regression] error: stmt (0x7f01c4708130) marked modified after optimization pass

2013-11-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59201

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||zhenqiang.chen at linaro dot 
org

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
*** Bug 59282 has been marked as a duplicate of this bug. ***


[Bug ipa/59282] ICE: When compiling 252.eon

2013-11-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59282

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
Dup of PR59201 and PR59208.

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


[Bug c/59280] [4.8/4.9 Regression] ICE with attribute((constructor(invalid)))

2013-11-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59280

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P2
   Target Milestone|--- |4.8.3


[Bug target/59277] x86_64 code generation defects when SSE instructions are disabled

2013-11-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59277

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||diagnostic
 Target|X86_64  |x86_64-*-*
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-11-25
 Ever confirmed|0   |1
   Severity|normal  |enhancement

--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org ---
We still have to follow the ABI.  Of course I'd say with -mno-sse you
should get a fatal_error () whenever you run into an ABI piece that requires
SSE registers (instead of silently using them).

We may have one or more (near) duplicates of this bug.


[Bug middle-end/59273] [4.9 Regression] ICE in expand_expr_real_2, at expr.c:9188 on alpha

2013-11-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59273

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1


[Bug c++/59270] [4.9 Regression] [c++11] ICE with decltype of a broken class

2013-11-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59270

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P5
   Target Milestone|--- |4.9.0


[Bug c++/59271] [4.9 Regression] a.C:16:21: internal compiler error: in strip_typedefs, at cp/tree.c:1315

2013-11-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59271

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1


[Bug c++/59269] [4.9 Regression] ICE with reference in union

2013-11-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59269

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P5
   Target Milestone|--- |4.9.0


[Bug c++/59268] [4.7/4.8/4.9 Regression] [c++11] ICE with constexpr in a virtual function

2013-11-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59268

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P2
   Target Milestone|--- |4.7.4


[Bug ipa/59265] [4.9 Regression] Segmentation fault in ipa_note_param_call for -fprofile-use in SPEC CPU2006

2013-11-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59265

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1
 CC||hubicka at gcc dot gnu.org
  Component|c++ |ipa
   Target Milestone|--- |4.9.0
Summary|Segmentation fault in   |[4.9 Regression]
   |ipa_note_param_call for |Segmentation fault in
   |-fprofile-use in SPEC   |ipa_note_param_call for
   |CPU2006 |-fprofile-use in SPEC
   ||CPU2006


[Bug middle-end/59261] [4.9 regression] FAIL: gcc.dg/vect/bb-slp-26.c -flto -ffat-lto-objects (internal compiler error)

2013-11-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59261

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.9.0


[Bug tree-optimization/59262] __attribute__ ((optimize())) broken (and corrupts optimization of the whole compilation unit)

2013-11-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59262

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |WONTFIX

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
More specifically we cannot inline across changes of -ffast-math as that would
generate wrong-code.  Thus the non-fast-math 'sum' cannot be inlined
into a fast-math annotated function.  Which then of course defeats
vectorization.

Generally I'd advise against using the optimize attribute.


[Bug bootstrap/59260] [4.9 Regression] fold-const.c:14871:5: error: 'hash_table' has not been declared

2013-11-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59260

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.9.0
Summary|fold-const.c:14871:5:   |[4.9 Regression]
   |error: 'hash_table' has not |fold-const.c:14871:5:
   |been declared   |error: 'hash_table' has not
   ||been declared


[Bug c++/59080] [4.9 Regression] [c++11] ICE with array of auto

2013-11-25 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59080

--- Comment #2 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org ---
Author: paolo
Date: Mon Nov 25 09:29:18 2013
New Revision: 205344

URL: http://gcc.gnu.org/viewcvs?rev=205344root=gccview=rev
Log:
/cp
2013-11-25  Paolo Carlini  paolo.carl...@oracle.com

PR c++/59080
* pt.c (unify): Don't call unify_array_domain with a NULL_TREE
third argument.

PR c++/59096
* pt.c (apply_late_template_attributes): Check that TREE_VALUE
isn't NULL_TREE in the attribute_takes_identifier_p case.

/testsuite
2013-11-25  Paolo Carlini  paolo.carl...@oracle.com

PR c++/59080
* g++.dg/cpp0x/initlist75.C: New.

PR c++/59096
* g++.dg/cpp0x/gen-attrs-57.C: New.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/gen-attrs-57.C
trunk/gcc/testsuite/g++.dg/cpp0x/initlist75.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/59096] [4.9 Regression] [c++11] ICE with template attribute

2013-11-25 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59096

--- Comment #2 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org ---
Author: paolo
Date: Mon Nov 25 09:29:18 2013
New Revision: 205344

URL: http://gcc.gnu.org/viewcvs?rev=205344root=gccview=rev
Log:
/cp
2013-11-25  Paolo Carlini  paolo.carl...@oracle.com

PR c++/59080
* pt.c (unify): Don't call unify_array_domain with a NULL_TREE
third argument.

PR c++/59096
* pt.c (apply_late_template_attributes): Check that TREE_VALUE
isn't NULL_TREE in the attribute_takes_identifier_p case.

/testsuite
2013-11-25  Paolo Carlini  paolo.carl...@oracle.com

PR c++/59080
* g++.dg/cpp0x/initlist75.C: New.

PR c++/59096
* g++.dg/cpp0x/gen-attrs-57.C: New.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/gen-attrs-57.C
trunk/gcc/testsuite/g++.dg/cpp0x/initlist75.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/59080] [4.9 Regression] [c++11] ICE with array of auto

2013-11-25 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59080

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

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

--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com ---
Fixed.


[Bug c/59219] ____builtin___memcpy_chk and -fno-builtin-memcpy

2013-11-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59219

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |NEW

--- Comment #5 from Richard Biener rguenth at gcc dot gnu.org ---
(In reply to Martin Sebor from comment #4)
 I understand. The current semantics of __builtin__xxx_chk are to:
 
 a) check the constraints of the xxx function at compile time, and
 b) diagnose constraint violations detected in (a) and call __xxx_chk, or
 c) expand xxx inline if constraints are satisfied

c) isn't correct - the rule is that __xxx_chk is either expanded to
a call to __builtin_xxx or to a call to __xxx_chk.

__builtin_xxx is then either expanded inline or as a call to xxx
dependent on cost and flags.

 I'm suggesting that it would be useful to change the semantics in (c):
 
 c) if constraints are satisfied, then if -fbuiltin is used, expand xxx
 inline, or
 d) if -fno-builtin is used, call xxx

I think you are asking that __builtin_xxx_chk should expand to
__xxx_chk or xxx (instead of __builtin_xxx).

 I.e., reduce the effects of the __builtin__xxx_chk intrinsics to just
 checking the constraints, and (when -fno-builtin is used) make it possible
 to customize the implementation within those constraints.
 
 This would let freestanding implementations use the __builtin__xxx_chk
 intrinsics and also provide their own semantics for the xxx functions within
 the constraints specified by the language.

A target independent flag that controls inline expansion of xxx would be
more useful I think.  You can use -mstringop-strategy=libcall on x86.

 (PS I belatedly realized that my mention of a freestanding sprintf using '$'
 to introduce a freestanding format directive didn't make sense as it would
 violate the function's constraint. Please diregard that part.)


[Bug c++/59096] [4.9 Regression] [c++11] ICE with template attribute

2013-11-25 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59096

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
   Assignee|paolo.carlini at oracle dot com|unassigned at gcc dot 
gnu.org

--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com ---
Fixed.


[Bug c++/59255] [4.8/4.9 Regression] Segmentation fault with std::function and -fprofile-use

2013-11-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59255

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-11-25
  Known to work||4.7.3
   Target Milestone|--- |4.8.3
Summary|Segmentation fault with |[4.8/4.9 Regression]
   |std::function and   |Segmentation fault with
   |-fprofile-use   |std::function and
   ||-fprofile-use
 Ever confirmed|0   |1

--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org ---
Confirmed.


[Bug fortran/59143] [OOP] Bogus warning with array-valued type-bound procedure

2013-11-25 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59143

--- Comment #5 from janus at gcc dot gnu.org ---
Author: janus
Date: Mon Nov 25 09:45:40 2013
New Revision: 205345

URL: http://gcc.gnu.org/viewcvs?rev=205345root=gccview=rev
Log:
2013-11-25  Janus Weil  ja...@gcc.gnu.org

PR fortran/59143
* interface.c (get_expr_storage_size): Handle array-valued type-bound
procedures.

2013-11-25  Janus Weil  ja...@gcc.gnu.org

PR fortran/59143
* gfortran.dg/typebound_proc_30.f90: New.

Added:
trunk/gcc/testsuite/gfortran.dg/typebound_proc_30.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/interface.c
trunk/gcc/testsuite/ChangeLog


[Bug fortran/59143] [OOP] Bogus warning with array-valued type-bound procedure

2013-11-25 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59143

janus at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #6 from janus at gcc dot gnu.org ---
Fixed with r205345. Closing.

Thanks for the report!


[Bug sanitizer/59258] usan: ICE(segfault): stack-buffer-overflow with -fsanitize=undefined

2013-11-25 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59258

--- Comment #8 from Marek Polacek mpolacek at gcc dot gnu.org ---
Author: mpolacek
Date: Mon Nov 25 10:46:20 2013
New Revision: 205347

URL: http://gcc.gnu.org/viewcvs?rev=205347root=gccview=rev
Log:
2013-11-25  Marek Polacek  pola...@redhat.com

* ubsan.c (ubsan_create_data): Increase the size of the fields array.


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


[Bug c++/59284] New: missing diagnostic on incomplete type at the point of template definition

2013-11-25 Thread vanyacpp at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59284

Bug ID: 59284
   Summary: missing diagnostic on incomplete type at the point of
template definition
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vanyacpp at gmail dot com

According to [temp.res]p8 this code is invalid, but gcc don't show error on it:

struct x;

template typename T
void f()
{
x x;
}

If a type used in a non-dependent name is incomplete at the point at which a
template is defined but is complete at the point at which an instantiation is
done, and if the completeness of that type affects whether or not the program
is well-formed or affects the semantics of the program, the program is
ill-formed; no diagnostic is required.

clang gives error:

19.cpp:7:7: error: variable has incomplete type 'x'
x x;
  ^
19.cpp:2:8: note: forward declaration of 'x'
struct x;
   ^
1 error generated.


[Bug sanitizer/59250] ubsan: ICE (segfault) with -fsanitize=undefined in ubsan_create_data

2013-11-25 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59250

--- Comment #4 from Marek Polacek mpolacek at gcc dot gnu.org ---
Author: mpolacek
Date: Mon Nov 25 11:17:23 2013
New Revision: 205349

URL: http://gcc.gnu.org/viewcvs?rev=205349root=gccview=rev
Log:
2013-11-25  Marek Polacek  pola...@redhat.com

testsuite/
* g++.dg/ubsan/pr59250.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/ubsan/pr59250.C
Modified:
trunk/gcc/testsuite/ChangeLog


[Bug sanitizer/59250] ubsan: ICE (segfault) with -fsanitize=undefined in ubsan_create_data

2013-11-25 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59250

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 middle-end/59285] New: gcc.dg/builtin-unreachable-6.c:17:1: internal compiler error: in rtl_verify_fallthru, at cfgrtl.c:2862

2013-11-25 Thread ktkachov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59285

Bug ID: 59285
   Summary: gcc.dg/builtin-unreachable-6.c:17:1: internal compiler
error: in rtl_verify_fallthru, at cfgrtl.c:2862
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: ktkachov at gcc dot gnu.org

The gcc.dg/builtin-unreachable-6.c testcase fails on arm-none-eabi with:

$SRC/gcc/gcc/testsuite/gcc.dg/builtin-unreachable-6.c: In function 'foo':
$SRC/gcc/gcc/testsuite/gcc.dg/builtin-unreachable-6.c:17:1: error:
verify_flow_info: Incorrect fallthru 2-5
$SRC/gcc/gcc/testsuite/gcc.dg/builtin-unreachable-6.c:17:1: error: wrong insn
in the fallthru edge
(barrier 21 20 27)
$SRC/gcc/gcc/testsuite/gcc.dg/builtin-unreachable-6.c:17:1: internal compiler
error: in rtl_verify_fallthru, at cfgrtl.c:2862
0x95d645 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
$SRC/gcc/gcc/rtl-error.c:109
0x69254a rtl_verify_fallthru
$SRC/gcc/gcc/cfgrtl.c:2862
0x69254a rtl_verify_flow_info
$SRC/gcc/gcc/cfgrtl.c:2962
0x681af7 verify_flow_info()
$SRC/gcc/gcc/cfghooks.c:258
0xe5c24f if_convert
$SRC/gcc/gcc/ifcvt.c:4460
0xe5d95d rest_of_handle_if_after_reload
$SRC/gcc/gcc/ifcvt.c:4594
0xe5d95d execute
$SRC/gcc/gcc/ifcvt.c:4625
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See http://gcc.gnu.org/bugs.html for instructions.

Bisection shows it started with r205074:

* tree-ssa-threadedge.c (thread_across_edge): After threading
through a joiner, allow threading a normal block requiring
duplication.

* tree-ssa-threadupdate.c (thread_block_1): Improve code to detect
jump threading requests that would muck up the loop structures.


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

2013-11-25 Thread akim.demaille at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51253

--- Comment #5 from Akim Demaille akim.demaille at gmail dot com ---
Happy two-year birthday, bug!  Sorry I'm (slightly more that) off-by-one.


[Bug libstdc++/59283] missing std::basic_string constructor

2013-11-25 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59283

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org ---
This is a known issue. Our std::string does not support the C++11 allocator
requirements, and the current implementation probably never will.  When we
switch to a non-Copy-On-Write std::string it will include C++11 allocator
support.


[Bug target/12306] GOT pointer (r12) reloaded unnecessarily

2013-11-25 Thread chrbr at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12306

chrbr at gcc dot gnu.org changed:

   What|Removed |Added

 CC||chrbr at gcc dot gnu.org

--- Comment #5 from chrbr at gcc dot gnu.org ---

 
 needs it.  If we knew that that pic function can't be called from
 any non-pic functions by some additional information, we could
 optimize the code with removing that saverestore r12.

or from a pic function from the same module. using visibility protected perhaps
?


[Bug middle-end/51982] Shrink-wrapping opportunity

2013-11-25 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51982

Bug 51982 depends on bug 10474, which changed state.

Bug 10474 Summary: shrink wrapping for functions
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10474

   What|Removed |Added

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


[Bug rtl-optimization/10474] shrink wrapping for functions

2013-11-25 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10474

Martin Jambor jamborm at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||ramana.r at gmail dot com
 Resolution|--- |FIXED

--- Comment #17 from Martin Jambor jamborm at gcc dot gnu.org ---
The testcase is now shrink-wrapped on ppc64 and x86_64, it is not on
others such as i?86 because parameter-passing ABI basically prevents
it.  If any of the three testcases pass also on any other platform
(e.g. Ramana claimed it also works on AArch32 [1]), feel free to add
it to the dg target in the testcase(s).

For my part, I now consider this to be fixed.

[1] http://gcc.gnu.org/ml/gcc-patches/2013-11/msg02726.html


[Bug bootstrap/59260] [4.9 Regression] fold-const.c:14871:5: error: 'hash_table' has not been declared

2013-11-25 Thread amacleod at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59260

--- Comment #3 from Andrew Macleod amacleod at redhat dot com ---
Author: amacleod
Date: Mon Nov 25 13:23:09 2013
New Revision: 205352

URL: http://gcc.gnu.org/viewcvs?rev=205352root=gccview=rev
Log:
PR bootstrap/59260
* fold-const.c: Include hash-table.h.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/fold-const.c


[Bug rtl-optimization/58934] [4.9 Regression]: build fails on cris-elf in reload_cse_simplify_operands for newlib dtoa.c

2013-11-25 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58934

--- Comment #14 from Martin Jambor jamborm at gcc dot gnu.org ---
(In reply to r...@cebitec.uni-bielefeld.de from comment #12)
 FAIL: gfortran.fortran-torture/execute/pr32604.f90 execution,  -O2
 -fbounds-check 
 

I did not find this failure in your latest test results
(http://gcc.gnu.org/ml/gcc-testresults/2013-11/msg01857.html) and so I
assume it has been also fixed by any of the subsequent patches
addressing other issues.


[Bug rtl-optimization/10474] shrink wrapping for functions

2013-11-25 Thread scovich at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10474

--- Comment #18 from Ryan Johnson scovich at gmail dot com ---
(In reply to Martin Jambor from comment #17)
 The testcase is now shrink-wrapped on ppc64 and x86_64, it is not on
 others such as i?86 because parameter-passing ABI basically prevents
 it.  If any of the three testcases pass also on any other platform
 (e.g. Ramana claimed it also works on AArch32 [1]), feel free to add
 it to the dg target in the testcase(s).
 
 For my part, I now consider this to be fixed.
 
 [1] http://gcc.gnu.org/ml/gcc-patches/2013-11/msg02726.html

Great! Does this mean shrink-wrapping will be in gcc-4.9, at least for x86_64
and ppc64?


[Bug rtl-optimization/58934] [4.9 Regression]: build fails on cris-elf in reload_cse_simplify_operands for newlib dtoa.c

2013-11-25 Thread ro at CeBiTec dot Uni-Bielefeld.DE
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58934

--- Comment #15 from ro at CeBiTec dot Uni-Bielefeld.DE ro at CeBiTec dot 
Uni-Bielefeld.DE ---
 --- Comment #14 from Martin Jambor jamborm at gcc dot gnu.org ---
 (In reply to r...@cebitec.uni-bielefeld.de from comment #12)
 FAIL: gfortran.fortran-torture/execute/pr32604.f90 execution,  -O2
 -fbounds-check 
 

 I did not find this failure in your latest test results
 (http://gcc.gnu.org/ml/gcc-testresults/2013-11/msg01857.html) and so I
 assume it has been also fixed by any of the subsequent patches
 addressing other issues.

Right, it's gone in this weekend's bootstraps.

Rainer


[Bug tree-optimization/59249] if-conversion doesn't handle basic-blocks with only critical predecessor edges

2013-11-25 Thread bmei at broadcom dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59249

--- Comment #3 from Bingfeng Mei bmei at broadcom dot com ---
Richard, I am not sure I understand about how to split edge.

 BB4 
 / \
/   \
  BB5|
   |\|
   | \   |
   |  \  |
   |   BB6
   |   /
   |  /
   BB7


Compiler (HEAD) complains only critical predecessors of BB6 (its predcessor
BB5 has more than one successor). Do you suggest to split edge between BB5 
BB6 and insert an empty BB? 

In the email thread, you blame poor implementation of tree-level if-conversion.
But RTL-level CE passes cannot handle that too.


[Bug sanitizer/59061] Port leaksanitizer

2013-11-25 Thread earthdok at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59061

--- Comment #38 from Sergey Matveev earthdok at google dot com ---
(In reply to Jakub Jelinek from comment #28)
 Author: jakub
 Date: Fri Nov 22 21:13:08 2013
 New Revision: 205290

It looks like you use dynamic linking by default. The last time I checked, leak
detection (in both ASan and standalone LSan) didn't work 100% correctly with
dynamic linking. Should be easy to fix by giving one of the interceptors a
stronger visibility.


[Bug rtl-optimization/10474] shrink wrapping for functions

2013-11-25 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10474

--- Comment #19 from Martin Jambor jamborm at gcc dot gnu.org ---
(In reply to Ryan Johnson from comment #18)
 Great! Does this mean shrink-wrapping will be in gcc-4.9, at least for
 x86_64 and ppc64?

Well, a fairly basic (but not altogether unreasonable) shrink-wrapping
was in gcc 4.8 (and earlier versions) too and that has not changed
at all.  The problem with this and similar testcases was that the
register allocator made decisions which made shrink-wrapping
impossible (or at least too difficult to perform).  The change I
committed and which will be a part of gcc 4.9 fixes this for a class
of pseudo-registers which commonly result in this problem but other
cases will still remain unresolved, for example PR 51982.  For some
statistics about what impact the implemented technique has, see the
email accompanying the first submission of the patch:
http://gcc.gnu.org/ml/gcc-patches/2013-10/msg01719.html

If you find another similar example which is important and clearly
possible to shrink-wrap but we don't do it, feel free to submit a
new missed-optimization bug and CC me.


[Bug sanitizer/59286] New: segfault in __sanitizer::StackDepotGet

2013-11-25 Thread Joost.VandeVondele at mat dot ethz.ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59286

Bug ID: 59286
   Summary: segfault in  __sanitizer::StackDepotGet
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: sanitizer
  Assignee: unassigned at gcc dot gnu.org
  Reporter: Joost.VandeVondele at mat dot ethz.ch
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

Running our tsan instrumented code, I'm seeing a segfault in tsan. I have no
suitable testcase for this yet (short of building CP2K), so I'm posting the
backtrace here in case this rings a bell / triggers some suggestions on what
might be going on. I'll try to do some further testing.

Program received signal SIGSEGV, Segmentation fault.
0x74a27428 in __sanitizer::StackDepotGet (id=8388952,
size=0x7ffcb8f8) at
../../../../gcc/libsanitizer/sanitizer_common/sanitizer_stackdepot.cc:192
192  if (s-id == id) {
(gdb) bt
#0  0x74a27428 in __sanitizer::StackDepotGet (id=8388952,
size=0x7ffcb8f8) at
../../../../gcc/libsanitizer/sanitizer_common/sanitizer_stackdepot.cc:192
#1  0x74a1d9de in __tsan::ScopedReport::AddLocation (this=0x800158,
this@entry=0x7ffcb9f0, addr=140737488140536, addr@entry=137748196274048,
size=140737321271672, 
size@entry=8) at ../../../../gcc/libsanitizer/tsan/tsan_rtl_report.cc:339
#2  0x74a1ed30 in __tsan::ReportRace (thr=optimized out) at
../../../../gcc/libsanitizer/tsan/tsan_rtl_report.cc:697
#3  0x74a21e02 in __tsan_report_race_thunk () at
../../../../gcc/libsanitizer/tsan/tsan_rtl_amd64.S:122
#4  0x749ef9c8 in HandleRace (old=..., cur=..., shadow_mem=optimized
out, thr=optimized out) at ../../../../gcc/libsanitizer/tsan/tsan_rtl.cc:376
#5  MemoryAccessImpl (cur=..., shadow_mem=optimized out, kIsAtomic=optimized
out, kAccessIsWrite=optimized out, kAccessSizeLog=optimized out,
addr=optimized out, 
thr=optimized out) at ../../../../gcc/libsanitizer/tsan/tsan_rtl.cc:460
#6  __tsan::MemoryAccess (thr=0x761f2780, pc=496049752, addr=82100428376,
kAccessSizeLog=8, kAccessIsWrite=true, kIsAtomic=true)
at ../../../../gcc/libsanitizer/tsan/tsan_rtl.cc:531
#7  0x767e62c0 in timings::timeset (routinen=error reading variable:
Cannot access memory at address 0x3fe13824d8597625, 
handle=error reading variable: Cannot access memory at address
0x3fe13824d8597005, _routinen=optimized out) at
/data/vjoost/clean/cp2k/cp2k/src/../src/timings.F:254
(gdb) print s
$1 = (__sanitizer::StackDesc *) 0x4d634810890c558b
(gdb) print s-id
Cannot access memory at address 0x4d634810890c5593
(gdb) print id
$2 = 8388952
(gdb) list
187CHECK_LT(idx, kTabSize);
188atomic_uintptr_t *p = depot.tab[idx];
189uptr v = atomic_load(p, memory_order_consume);
190StackDesc *s = (StackDesc*)(v  ~1);
191for (; s; s = s-link) {
192  if (s-id == id) {
193*size = s-size;
194return s-stack;
195  }
196}
(gdb) print idx
$3 = 4476
(gdb) print kTabSize
$5 = 1048576
(gdb) print depot.tab[idx]
$6 = {val_dont_use = 140737321271672}
(gdb) print depot


[Bug tree-optimization/59287] New: points-to analysis confused by union accesses

2013-11-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59287

Bug ID: 59287
   Summary: points-to analysis confused by union accesses
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: rguenth at gcc dot gnu.org

static void
get_constraint_for_component_ref (tree t, vecce_s *results,
  bool address_p, bool lhs_p)
{
...
  /* Handle type-punning through unions.  If we are extracting a pointer
 from a union via a possibly type-punning access that pointer
 points to anything, similar to a conversion of an integer to
 a pointer.  */
  if (!lhs_p)
{
  tree u;
  for (u = t;
   TREE_CODE (u) == COMPONENT_REF || TREE_CODE (u) == ARRAY_REF;
   u = TREE_OPERAND (u, 0))
if (TREE_CODE (u) == COMPONENT_REF
 TREE_CODE (TREE_TYPE (TREE_OPERAND (u, 0))) == UNION_TYPE)
  {
struct constraint_expr temp;

temp.offset = 0;
temp.var = anything_id;
temp.type = ADDRESSOF;
results-safe_push (temp);
return;
  }
}

has the adverse affect that if you have code like

  foo (TREE_CODE (t))

then it makes ANYTHING escape ... which is the worst thing that can happen.

The above shouldn't be necessary.


[Bug tree-optimization/59288] New: [4.7/4.8/4.9 Regression

2013-11-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59288

Bug ID: 59288
   Summary: [4.7/4.8/4.9 Regression
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jakub at gcc dot gnu.org


[Bug tree-optimization/59288] [4.7/4.8/4.9 Regression] ICE in get_initial_def_for_induction

2013-11-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59288

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.7.4
Summary|[4.7/4.8/4.9 Regression |[4.7/4.8/4.9 Regression]
   ||ICE in
   ||get_initial_def_for_inducti
   ||on

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org ---
void
baz (int *d)
{
  long int i, j, k;
  for (i = 0, j = 0, k = 0; i  512; i = (int) i + 1, j = (int) j + 1, k =
(int) k + 3)
d[i] = j ^ (i * 3) ^ (2 * k + 2);
}

ICEs at -O3 with:
internal compiler error: in get_initial_def_for_induction, at
tree-vect-loop.c:3257
 baz (int *d)
 ^
0xd581c4 get_initial_def_for_induction
../../gcc/tree-vect-loop.c:3257
0xd5df87 vectorizable_induction(gimple_statement_base*,
gimple_stmt_iterator_d*, gimple_statement_base**)
../../gcc/tree-vect-loop.c:5438
0xd4b7c0 vect_transform_stmt(gimple_statement_base*, gimple_stmt_iterator_d*,
bool*, _slp_tree*, _slp_instance*)
../../gcc/tree-vect-stmts.c:6507
0xd5f0cc vect_transform_loop(_loop_vec_info*)
../../gcc/tree-vect-loop.c:5847
0xd732d3 vectorize_loops()
../../gcc/tree-vectorizer.c:379
0xc86812 tree_loop_vectorize
../../gcc/tree-ssa-loop.c:154
0xc8689c execute
../../gcc/tree-ssa-loop.c:189


[Bug tree-optimization/59288] [4.7/4.8/4.9 Regression] ICE in get_initial_def_for_induction

2013-11-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59288

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2013-11-25
   Assignee|unassigned at gcc dot gnu.org  |rguenth at gcc dot 
gnu.org
 Ever confirmed|0   |1

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
Mine.


[Bug middle-end/59285] [4.9 Regression] gcc.dg/builtin-unreachable-6.c:17:1: internal compiler error: in rtl_verify_fallthru, at cfgrtl.c:2862

2013-11-25 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59285

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.9.0
Summary|gcc.dg/builtin-unreachable- |[4.9 Regression]
   |6.c:17:1: internal compiler |gcc.dg/builtin-unreachable-
   |error: in   |6.c:17:1: internal compiler
   |rtl_verify_fallthru, at |error: in
   |cfgrtl.c:2862   |rtl_verify_fallthru, at
   ||cfgrtl.c:2862


[Bug rtl-optimization/10474] shrink wrapping for functions

2013-11-25 Thread scovich at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10474

--- Comment #20 from Ryan Johnson scovich at gmail dot com ---
Hi Martin,

(PM reply because I don't have up-to-date information to file a proper 
bug report with)

On 25/11/2013 9:57 AM, jamborm at gcc dot gnu.org wrote:
 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10474

 --- Comment #19 from Martin Jambor jamborm at gcc dot gnu.org ---
 (In reply to Ryan Johnson from comment #18)
 Great! Does this mean shrink-wrapping will be in gcc-4.9, at least for
 x86_64 and ppc64?
 Well, a fairly basic (but not altogether unreasonable) shrink-wrapping
 was in gcc 4.8 (and earlier versions) too and that has not changed
 at all.  The problem with this and similar testcases was that the
 register allocator made decisions which made shrink-wrapping
 impossible (or at least too difficult to perform).  The change I
 committed and which will be a part of gcc 4.9 fixes this for a class
 of pseudo-registers which commonly result in this problem but other
 cases will still remain unresolved, for example PR 51982.  For some
 statistics about what impact the implemented technique has, see the
 email accompanying the first submission of the patch:
 http://gcc.gnu.org/ml/gcc-patches/2013-10/msg01719.html

 If you find another similar example which is important and clearly
 possible to shrink-wrap but we don't do it, feel free to submit a
 new missed-optimization bug and CC me.

One that comes to mind right off, but is from several years ago and 
possibly no longer true: on platforms like solaris/sparc, accesses to 
thread-local storage require a function call to retrieve the base of 
thread-local storage; the compiler seems to emit the call once, in the 
function prologue. I strongly suspect (but can't confirm, since I no 
longer have access to Solaris/sparc) that such a 
function-call-in-prologue would confound subsequent efforts at shrink 
wrapping. I don't know how often this sort of scenario arises any more, 
though. It may be that the new emutls stuff has changed everything, 
because on cygwin and gcc-4.8 I now see separate calls into emutls for 
every TLS access.

As for PR 51982, it looks like having flow-sensitive local analysis 
could go a long way: just as it can be useful know that an escaped 
pointer has not *yet* escaped (e.g. PR 50346), here it would be useful 
to know that the stack frame, though perhaps eventually needed, is not 
needed just yet. Then, generation of the stack frame can be pushed down 
to the first basic block(s) where the need for a stack frame is 
undisputed, after any conditions that gate it. But I've been told that 
teaching gcc to think that way would not be easy...

In any case, thanks for the improvement to a hairy problem.

Regards,
Ryan


[Bug target/59289] New: [ARM] regression on unsigned-extend-2.c

2013-11-25 Thread christophe.lyon at st dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59289

Bug ID: 59289
   Summary: [ARM] regression on unsigned-extend-2.c
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: christophe.lyon at st dot com

Since commit 203160 (New rtx costs infrastructure for ARM), I have noticed that
gcc.target/arm/unsigned-extend-2.c scan-assembler ands
gcc.target/arm/unsigned-extend-2.c scan-assembler-not cmp
now FAIL (used to PASS).

I have configured GCC as:
target: arm-none-linux-gnueabihf
mode: thumb
cpu: cortex-a15
fpu: neon-vfpv4

With r203159:
movsr3, #8
.L3:
lsrsr0, r0, #1
subsr3, r3, #1
andsr3, r3, #255
bne.L3
bxlr

with r203160:
movsr3, #0
.L3:
lsrsr0, r0, #1
addsr3, r3, #1
cmpr3, #8
bne.L3
bxlr

It seems that code gen has slightly evolved in trunk since r203160, but the
test still fails.

The code sequence does not seem really worse than the original one, but the
testcase should at least be updated.


[Bug sanitizer/59258] ubsan: ICE(segfault): stack-buffer-overflow with -fsanitize=undefined

2013-11-25 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59258

--- Comment #9 from Marek Polacek mpolacek at gcc dot gnu.org ---
(In reply to Marek Polacek from comment #6)
 Seems like we're passing bogus location.  Can you e-mail me the unreduced
 testcase?  I'll look into it.

The unreduced testcase doesn't fail with -gstrict-dwarf.


[Bug c++/58810] [4.7/4.8/4.9 Regression] ICE with invalid function typedef

2013-11-25 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58810

--- Comment #3 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org ---
Author: paolo
Date: Mon Nov 25 16:10:29 2013
New Revision: 205356

URL: http://gcc.gnu.org/viewcvs?rev=205356root=gccview=rev
Log:
/cp
2013-11-25  Paolo Carlini  paolo.carl...@oracle.com

PR c++/58810
* decl.c (grokdeclarator): Don't handle qualified free functions here,
leave the diagnostic to grokfndecl.

/testsuite
2013-11-25  Paolo Carlini  paolo.carl...@oracle.com

PR c++/58810
* g++.dg/other/cv_func3.C: New.
* g++.dg/other/cv_func.C: Adjust.
* g++.dg/parse/fn-typedef2.C: Likewise.

Added:
trunk/gcc/testsuite/g++.dg/other/cv_func3.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/other/cv_func.C
trunk/gcc/testsuite/g++.dg/parse/fn-typedef2.C


[Bug c++/58810] [4.7/4.8 Regression] ICE with invalid function typedef

2013-11-25 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58810

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
   Target Milestone|4.7.4   |4.9.0
Summary|[4.7/4.8/4.9 Regression]|[4.7/4.8 Regression] ICE
   |ICE with invalid function   |with invalid function
   |typedef |typedef

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com ---
Fixed for 4.9.0.


[Bug other/50900] 'gmake pdf' fails in libiberty

2013-11-25 Thread joseph at codesourcery dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50900

--- Comment #13 from joseph at codesourcery dot com joseph at codesourcery dot 
com ---
Isn't this the issue fixed by

2012-06-29  Andreas Schwab  sch...@linux-m68k.org

* copying-lib.texi (Library Copying): Don't use @heading inside
@enumerate.

(which I more recently backported to 4.7 branch when I encountered it 
there)?


[Bug middle-end/59285] [4.9 Regression] gcc.dg/builtin-unreachable-6.c:17:1: internal compiler error: in rtl_verify_fallthru, at cfgrtl.c:2862

2013-11-25 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59285

Jeffrey A. Law law at redhat dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2013-11-25
 Ever confirmed|0   |1


[Bug target/12306] GOT pointer (r12) reloaded unnecessarily

2013-11-25 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12306

--- Comment #6 from Oleg Endo olegendo at gcc dot gnu.org ---
Maybe something like function multi-versioning could be used for that?

When compiling as PIC, each function would be output twice.  Once with the
assumption that it can be called from non-PIC functions and once with the
assumption that it can't.  So we'll have one function that does the r12 stuff
and another that doesn't.  Then the linker could figure it out by e.g. dead
code stripping, and maybe also taking into account the visibility.  In the
worst case, if the linker can't make a decision, it should leave the
with-r12-stuff version.


[Bug other/50900] 'gmake pdf' fails in libiberty

2013-11-25 Thread sgk at troutmask dot apl.washington.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50900

--- Comment #14 from Steve Kargl sgk at troutmask dot apl.washington.edu ---
On Mon, Nov 25, 2013 at 04:15:53PM +, joseph at codesourcery dot com wrote:
 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50900
 
 --- Comment #13 from joseph at codesourcery dot com joseph at codesourcery 
 dot com ---
 Isn't this the issue fixed by
 
 2012-06-29  Andreas Schwab  sch...@linux-m68k.org
 
 * copying-lib.texi (Library Copying): Don't use @heading inside
 @enumerate.
 
 (which I more recently backported to 4.7 branch when I encountered it 
 there)?
 

Don't know.  Don't care.  I'm cleaning up old PRs and
those that I'm cc'd on before I ask overseer@ to disable
my account, svn access, and bugzilla access.


[Bug target/59290] New: [ARM] regression on negdi-2.c (big-endian)

2013-11-25 Thread christophe.lyon at st dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59290

Bug ID: 59290
   Summary: [ARM] regression on negdi-2.c (big-endian)
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: christophe.lyon at st dot com

Since commit 203828 (new cortexa9_extra_costs table), I have noticed a
regression on:
  gcc.target/arm/negdi-2.c scan-assembler-times mov 1
in big-endian targets:
armeb-none-linux-gnueabihf
mode: arm or thumb
cpu=cortex-a9
fpu=neon-fp16

The preceding test in the same testcase (scan-assembler-times negs\\tr0, r0
1) FAILs too, but it was already the case before that commit.

The testcase might need to be adapted to cope with big-endian targets.


[Bug target/53976] [SH] Unnecessary clrt after bt

2013-11-25 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53976

--- Comment #7 from Oleg Endo olegendo at gcc dot gnu.org ---
Author: olegendo
Date: Mon Nov 25 16:47:16 2013
New Revision: 205358

URL: http://gcc.gnu.org/viewcvs?rev=205358root=gccview=rev
Log:
PR target/53976
PR target/59243
* config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value): Update
comments.
(sh_optimize_sett_clrt::find_last_ccreg_values): Check stack of
previously visited basic blocks before recursing instead of only one
basic block.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/sh/sh_optimize_sett_clrt.cc


[Bug target/59243] [SH] Build fails during compiling libjava/interpret.cc with segfault

2013-11-25 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59243

--- Comment #4 from Oleg Endo olegendo at gcc dot gnu.org ---
Author: olegendo
Date: Mon Nov 25 16:47:16 2013
New Revision: 205358

URL: http://gcc.gnu.org/viewcvs?rev=205358root=gccview=rev
Log:
PR target/53976
PR target/59243
* config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value): Update
comments.
(sh_optimize_sett_clrt::find_last_ccreg_values): Check stack of
previously visited basic blocks before recursing instead of only one
basic block.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/sh/sh_optimize_sett_clrt.cc


[Bug target/59243] [SH] Build fails during compiling libjava/interpret.cc with segfault

2013-11-25 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59243

Oleg Endo olegendo at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #5 from Oleg Endo olegendo at gcc dot gnu.org ---
Fixed.


[Bug target/59277] x86_64 code generation defects when SSE instructions are disabled

2013-11-25 Thread aron at udel dot edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59277

--- Comment #4 from Aaron Myles Landwehr aron at udel dot edu ---
That is completely fair. Correct me if I'm wrong here, but that also means that
any code that passes doubles as arguments should also get fatal_error() instead
of dropping arguments to the stack as is currently done.


[Bug target/54019] [SH] Tail calls with -fPIC use bsrf instead of braf

2013-11-25 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54019

--- Comment #3 from Oleg Endo olegendo at gcc dot gnu.org ---
(In reply to Kazumoto Kojima from comment #2)
 Confirmed.

Assuming my theories in comment #1 are correct, I guess to fix/improve this it
would require similar mechanisms as mentioned in PR 12306


[Bug target/59290] [4.9 regression][ARM] regression on negdi-2.c (big-endian)

2013-11-25 Thread rearnsha at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59290

Richard Earnshaw rearnsha at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-11-25
Version|unknown |4.9.0
Summary|[ARM] regression on |[4.9 regression][ARM]
   |negdi-2.c (big-endian)  |regression on negdi-2.c
   ||(big-endian)
 Ever confirmed|0   |1

--- Comment #1 from Richard Earnshaw rearnsha at gcc dot gnu.org ---
Generating 2 mov instructions with the new cost tables.  This is a code quality
regression


[Bug target/59290] [4.9 regression][ARM] regression on negdi-2.c (big-endian)

2013-11-25 Thread rearnsha at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59290

--- Comment #2 from Richard Earnshaw rearnsha at gcc dot gnu.org ---
The tests do need fixing for big-endian, though, since the rsb operation should
write r1 in big-endian and r0 in little-endian.


[Bug bootstrap/59260] [4.9 Regression] fold-const.c:14871:5: error: 'hash_table' has not been declared

2013-11-25 Thread dimhen at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59260

Dmitry G. Dyachenko dimhen at gmail dot com changed:

   What|Removed |Added

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

--- Comment #4 from Dmitry G. Dyachenko dimhen at gmail dot com ---
fixed in r205352


[Bug target/59291] New: [SH] Group T bit related isnsn before combine

2013-11-25 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59291

Bug ID: 59291
   Summary: [SH] Group T bit related isnsn before combine
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: olegendo at gcc dot gnu.org
Target: sh*-*-*

The following example function

struct result
{
  int a, b;
};

result test2 (int a, int b, int d)
{
  result r;
  r.a = a == b;
  r.b = d + b + 1;
  return r;
};


compiled with -O2 -m4 -ml results in

cmp/eq  r5,r4
add r5,r6
mov r6,r1
movtr0
rts
add #1,r1   missed addc combine opportunity.


Initially the function is expanded to...
(notice the eq:SI that sets the T_REG and the movt that stores the comparison
result are next to each other)

(note 1 0 6 NOTE_INSN_DELETED)
(note 6 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK)
(insn 2 6 3 2 (set (reg/v:SI 166 [ a ])
(reg:SI 4 r4 [ a ])) sh_tmp.cpp:7 -1
 (nil))
(insn 3 2 4 2 (set (reg/v:SI 167 [ b ])
(reg:SI 5 r5 [ b ])) sh_tmp.cpp:7 -1
 (nil))
(insn 4 3 5 2 (set (reg/v:SI 168 [ d ])
(reg:SI 6 r6 [ d ])) sh_tmp.cpp:7 -1
 (nil))
(note 5 4 8 2 NOTE_INSN_FUNCTION_BEG)
(insn 8 5 9 2 (set (reg:SI 147 t)
(eq:SI (reg/v:SI 166 [ a ])
(reg/v:SI 167 [ b ]))) sh_tmp.cpp:9 -1
 (nil))
(insn 9 8 10 2 (set (reg:SI 170 [ D.1945 ])
(reg:SI 147 t)) sh_tmp.cpp:9 -1
 (nil))
(insn 10 9 11 2 (set (subreg:SI (reg:DI 164 [ D.1936 ]) 0)
(reg:SI 170 [ D.1945 ])) sh_tmp.cpp:11 -1
 (nil))
(insn 11 10 12 2 (set (reg:SI 171 [ D.1946 ])
(plus:SI (reg/v:SI 168 [ d ])
(reg/v:SI 167 [ b ]))) sh_tmp.cpp:10 -1
 (nil))
(insn 12 11 13 2 (set (reg:SI 172 [ D.1946 ])
(plus:SI (reg:SI 171 [ D.1946 ])
(const_int 1 [0x1]))) sh_tmp.cpp:10 -1
 (nil))
(insn 13 12 14 2 (set (subreg:SI (reg:DI 164 [ D.1936 ]) 4)
(reg:SI 172 [ D.1946 ])) sh_tmp.cpp:11 -1
 (nil))
(insn 14 13 18 2 (set (reg:DI 165 [ retval ])
(reg:DI 164 [ D.1936 ])) sh_tmp.cpp:11 -1
 (nil))
(insn 18 14 21 2 (set (reg/i:DI 0 r0)
(reg:DI 165 [ retval ])) sh_tmp.cpp:12 -1
 (nil))
(insn 21 18 0 2 (use (reg/i:DI 0 r0)) sh_tmp.cpp:12 -1
 (nil))


The fwprop1 pass however, changes this to...

;;total ref usage 48{26d,22u,0e} in 9{9 regular + 0 call} insns.
(note 6 0 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK)
(insn 2 6 3 2 (set (reg/v:SI 166 [ a ])
(reg:SI 4 r4 [ a ])) sh_tmp.cpp:7 257 {movsi_ie}
 (expr_list:REG_DEAD (reg:SI 4 r4 [ a ])
(nil)))
(insn 3 2 4 2 (set (reg/v:SI 167 [ b ])
(reg:SI 5 r5 [ b ])) sh_tmp.cpp:7 257 {movsi_ie}
 (expr_list:REG_DEAD (reg:SI 5 r5 [ b ])
(nil)))
(insn 4 3 5 2 (set (reg/v:SI 168 [ d ])
(reg:SI 6 r6 [ d ])) sh_tmp.cpp:7 257 {movsi_ie}
 (expr_list:REG_DEAD (reg:SI 6 r6 [ d ])
(nil)))
(note 5 4 8 2 NOTE_INSN_FUNCTION_BEG)
(insn 8 5 11 2 (set (reg:SI 147 t)
(eq:SI (reg/v:SI 166 [ a ])
(reg/v:SI 167 [ b ]))) sh_tmp.cpp:9 17 {cmpeqsi_t}
 (expr_list:REG_DEAD (reg/v:SI 166 [ a ])
(nil)))
(insn 11 8 12 2 (set (reg:SI 171 [ D.1946 ])
(plus:SI (reg/v:SI 168 [ d ])
(reg/v:SI 167 [ b ]))) sh_tmp.cpp:10 75 {*addsi3_compact}
 (expr_list:REG_DEAD (reg/v:SI 168 [ d ])
(expr_list:REG_DEAD (reg/v:SI 167 [ b ])
(nil
(insn 12 11 26 2 (set (reg:SI 172 [ D.1946 ])
(plus:SI (reg:SI 171 [ D.1946 ])
(const_int 1 [0x1]))) sh_tmp.cpp:10 75 {*addsi3_compact}
 (expr_list:REG_DEAD (reg:SI 171 [ D.1946 ])
(nil)))
(insn 26 12 27 2 (set (reg:SI 0 r0)
(reg:SI 147 t)) sh_tmp.cpp:12 399 {movt}
 (expr_list:REG_DEAD (reg:SI 147 t)
(nil)))
(insn 27 26 21 2 (set (reg:SI 1 r1 [+4 ])
(reg:SI 172 [ D.1946 ])) sh_tmp.cpp:12 257 {movsi_ie}
 (expr_list:REG_DEAD (reg:SI 172 [ D.1946 ])
(nil)))
(insn 21 27 0 2 (use (reg/i:DI 0 r0)) sh_tmp.cpp:12 -1
 (nil))

... which makes the T_REG live across the addsi insns and thus combine will
fail to replace them with an addc insn which clobbers the T_REG.
Insns that use the T_REG (the movt insn in this case) should be reordered in
such a way that they immediately follow the insn that sets the T_REG (the
cmpeqsi insn in this case) before combine.  This would increase the probability
of combine successes.
However, there could be some unlucky cases.  If the movt destination is 'r0' as
above, and it is moved above other insns which might clobber/need the r0 reg
(e.g. tst #imm, logical #imm ops etc), there could be reload problems or the
code might get worse for such sequences.


[Bug target/59290] [4.9 regression][ARM] regression on negdi-2.c (big-endian)

2013-11-25 Thread ktkachov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59290

ktkachov at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #3 from ktkachov at gcc dot gnu.org ---
Mine, got a patch in testing.


[Bug c/16351] NULL dereference warnings

2013-11-25 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16351

--- Comment #15 from Jeffrey A. Law law at redhat dot com ---
I expect it will be in GCC 4.9.  It's a wrap-up item for
-fisolate-erroneous-paths.


[Bug rtl-optimization/58033] counterproductive bb-reorder

2013-11-25 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58033

--- Comment #5 from Oleg Endo olegendo at gcc dot gnu.org ---
Another somewhat related SH example, compiled with -m4 -O2 -ml on rev 205313:

int
foo1 (long long value)
{
  const long long constant = 0xc0008000LL;

  if (value  constant)
return 1;
  else
return 2;
}

mov.l   .L12,r1
cmp/ge  r1,r5
bt/s.L10  should branch to L10
cmp/gt  r1,r5
mov #1,r0
.L6:
rts
nop
.align 1
.L10:
bf  .L11  never branches, always falls through
.L5:
rts
mov#2,r0
.align 1
.L11:
mov.l   .L13,r1
cmp/hs  r1,r4
bt  .L5
mov #1,r0
bra .L6   could just duplicate BB from L6 here
nop  (see also PR 58615)


[Bug sanitizer/59258] ubsan: ICE(segfault): stack-buffer-overflow with -fsanitize=undefined

2013-11-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59258

--- Comment #10 from Jakub Jelinek jakub at gcc dot gnu.org ---
Created attachment 31289
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31289action=edit
gcc49-pr59258.patch

Untested fix for the dwarf2out.c ICE.  The problem is that -fsanitize=null
will preserve in location_t of ADDR_EXPR a reference to a block, but the BLOCK
isn't referenced from anywhere else and thus during ggc_collect removed as
unused, then dwarf2out.c allocates the same GC memory for something else and
finally when processing the ADDR_EXPR the old BLOCK is modified again.

Either of the hunks in the patch should fix this, IMHO we want both, it doesn't
make sense to provide any locus for the ADDR_EXPR of the string in the static
ctor, and as ubsan_create_data compares loc to UNKNOWN_LOCATION in a bunch of
places, not doing LOCATION_LOCUS there means it might not compare to
UNKNOWN_LOCATION even when it actually is UNKNOWN_LOCATION just with some
non-NULL associated block.  Perhaps my
* ubsan.c (ubsan_source_location): Don't crash on unknown locations.
change will be unneeded now?


[Bug c++/59292] New: Spurious warning: ‘anonymous’ is used uninitialized in this function

2013-11-25 Thread bluesmissionnaire at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59292

Bug ID: 59292
   Summary: Spurious warning: ‘anonymous’ is used uninitialized
in this function
   Product: gcc
   Version: 4.4.7
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: bluesmissionnaire at gmail dot com

Created attachment 31290
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31290action=edit
/usr/bin/g++-4.4 -Wall -Wextra -save-temps -c -O1
anonymous_may_be_used_uninitialized.cpp

Using g++-4.4 (GCC) 4.4.7 20120313 (Red Hat 4.4.7-1)

/usr/bin/g++-4.4 -Wall -Wextra -save-temps -c -O1
anonymous_may_be_used_uninitialized.cpp

warns:

anonymous_may_be_used_uninitialized.cpp: In function ‘typename T::value_type
gccBug::getFirstElement(const T) [with T = std::mapgccBug::VectorSubclass,
gccBug::SomeTemplatedTypegccBug::SomeEnum, unsigned int,
std::lessgccBug::VectorSubclass, std::allocatorstd::pairconst
gccBug::VectorSubclass, gccBug::SomeTemplatedTypegccBug::SomeEnum, unsigned
int   ]’:
anonymous_may_be_used_uninitialized.cpp:45: warning: ‘anonymous’ may be used
uninitialized in this function
anonymous_may_be_used_uninitialized.cpp:45: note: ‘anonymous’ was declared
here

When I decrease optimization level to 0 a warning disappears.

I checked test files attached to multiple similar bugs (including
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58877 which disappeared after
upgrade from 4.4.6 to 4.4.7) but none of them generated this warning. That is
why I am creating a new bug.
Using http://gcc.godbolt.org/ I confirmed that this bug still occurs on
Ubuntu/Linaro 4.4.7-1ubuntu2 and does not occur on newer versions so at least
the code attached my serve as an addition to your regression suite.

[Bug c++/59292] Spurious warning: ‘anonymous’ is used uninitialized in this function

2013-11-25 Thread bluesmissionnaire at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59292

--- Comment #1 from Przemysław Strzelczak bluesmissionnaire at gmail dot com 
---
Created attachment 31291
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31291action=edit
corresponding source file.

[Bug c++/59113] [c++1y] ICE using auto as parameter in local function

2013-11-25 Thread reichelt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59113

Volker Reichelt reichelt at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #2 from Volker Reichelt reichelt at gcc dot gnu.org ---
Fixed by Adam's patch.


[Bug c++/59112] [c++1y] ICE using auto as parameter in local class

2013-11-25 Thread reichelt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59112

Volker Reichelt reichelt at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #2 from Volker Reichelt reichelt at gcc dot gnu.org ---
Fixed by Adam's patch.


[Bug c/59293] New: Bogus -Wsign-compare warning when using typeof() on a constant

2013-11-25 Thread shawn at churchofgit dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59293

Bug ID: 59293
   Summary: Bogus -Wsign-compare warning when using typeof() on a
constant
   Product: gcc
   Version: 4.8.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: shawn at churchofgit dot com

#define MAX(a,b) \
__extension__ ({ \
typeof(a) _a = (a);  \
typeof(b) _b = (b);  \
_a  _b ? _a : _b;   \
})

int main() {
if (MAX(5, (unsigned)3))
return 1;
return 0;
}


gives:
excessive_signed_compare.c:5:28: warning: comparison between signed and
unsigned integer expressions [-Wsign-compare]
 _a  _b ? _a : _b;   \
^
excessive_signed_compare.c:9:6: note: in expansion of macro ‘MAX’
  if (MAX(5, (unsigned)3))
  ^
excessive_signed_compare.c:5:38: warning: signed and unsigned type in
conditional expression [-Wsign-compare]
 _a  _b ? _a : _b;   \

[Bug sanitizer/59258] ubsan: ICE(segfault): stack-buffer-overflow with -fsanitize=undefined

2013-11-25 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59258

--- Comment #11 from Tobias Burnus burnus at gcc dot gnu.org ---
(In reply to Jakub Jelinek from comment #10)
 Created attachment 31289 [details]
 Untested fix for the dwarf2out.c ICE.

Seem to solve the problem with both -g and no -g for one unreduced test file.
Thanks!

 Perhaps my
 * ubsan.c (ubsan_source_location): Don't crash on unknown locations.
 change will be unneeded now?

Possibly yes; when I revert it, PR59250's test case still passes and also the
unreduced test case (for this PR's problem) passes. (I will try the bigger code
tomorrow.)


[Bug middle-end/59285] [4.9 Regression] gcc.dg/builtin-unreachable-6.c:17:1: internal compiler error: in rtl_verify_fallthru, at cfgrtl.c:2862

2013-11-25 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59285

--- Comment #1 from Jeffrey A. Law law at redhat dot com ---
Patch in testing.


[Bug fortran/58026] [4.9 Regression] [OOP] ICE in generate_finalization_wrapper, at fortran/class.c:1521

2013-11-25 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58026

janus at gcc dot gnu.org changed:

   What|Removed |Added

 CC||pault at gcc dot gnu.org

--- Comment #6 from janus at gcc dot gnu.org ---
For the record: The code that I'm proposing to remove in comment 4 has been
added by Paul in r105913:

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


[Bug c++/58607] [4.9 Regression] [c++11] ICE with undeclared variable in constexpr

2013-11-25 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58607

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
   Assignee|paolo.carlini at oracle dot com|unassigned at gcc dot 
gnu.org

--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com ---
Fixed.


[Bug c++/55004] [meta-bug] constexpr issues

2013-11-25 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55004

Bug 55004 depends on bug 58607, which changed state.

Bug 58607 Summary: [4.9 Regression] [c++11] ICE with undeclared variable in 
constexpr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58607

   What|Removed |Added

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


[Bug c++/58607] [4.9 Regression] [c++11] ICE with undeclared variable in constexpr

2013-11-25 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58607

--- Comment #2 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org ---
Author: paolo
Date: Mon Nov 25 20:51:56 2013
New Revision: 205364

URL: http://gcc.gnu.org/viewcvs?rev=205364root=gccview=rev
Log:
/cp
2013-11-25  Paolo Carlini  paolo.carl...@oracle.com

PR c++/58607
* semantics.c (check_constexpr_ctor_body): Check for BIND_EXPR_VARS.

/testsuite
2013-11-25  Paolo Carlini  paolo.carl...@oracle.com

PR c++/58607
* g++.dg/cpp0x/constexpr-ice9.C: New.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-ice9.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/semantics.c
trunk/gcc/testsuite/ChangeLog


[Bug fortran/58026] [4.9 Regression] [OOP] ICE in generate_finalization_wrapper, at fortran/class.c:1521

2013-11-25 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58026

--- Comment #7 from Tobias Burnus burnus at gcc dot gnu.org ---
(In reply to janus from comment #6)
 For the record: The code that I'm proposing to remove in comment 4 has been
 added by Paul in r105913:

For PR24158 (ice-on-invalid-code), which was on 2005-10-26.


[Bug target/59187] internal error with -O2

2013-11-25 Thread ktietz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59187

Kai Tietz ktietz at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #4 from Kai Tietz ktietz at gcc dot gnu.org ---
Yes, bug was already fixed. Therefore closed


[Bug lto/55902] lto1 SIGSEGV

2013-11-25 Thread ktietz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55902

Kai Tietz ktietz at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ktietz at gcc dot gnu.org

--- Comment #6 from Kai Tietz ktietz at gcc dot gnu.org ---
Gold isn't available for pe-coff targets.  Gold is ELF only.
You might want to check if you have same issues with HJ's *special* ld version.
 HJ's patched variant never got into upstream (AFAIK), but resolves a lot of
such issues.  Biggest problem here is mainly that LTO doesn't handle
object-files proper in linker.  By this crt-objects (startup and co) might
cause issues.
I learned that in some cases it was helpful to build mingw-w64's
startup-libraries with enabled -flto.


[Bug target/52368] internal compiler error: in convert_move, at expr.c:326

2013-11-25 Thread ktietz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52368

Kai Tietz ktietz at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution|--- |FIXED

--- Comment #2 from Kai Tietz ktietz at gcc dot gnu.org ---
 So report is older then 1 year, no reply.  So assume issue is solved.


[Bug other/33797] Enable zlib for x86_64-pc-mingw32 64-bit targets

2013-11-25 Thread ktietz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33797

Kai Tietz ktietz at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #3 from Kai Tietz ktietz at gcc dot gnu.org ---
gcc build libz only if libjava gets enabled.  There is no need for gcc to build
it without this target-library.
YOu can enable now java built, then libz gets built too.


[Bug rtl-optimization/56451] [4.8/4.9 regression] Wrong code for gcc.c-torture/execute/941015-1.c on SH

2013-11-25 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56451

Oleg Endo olegendo at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-11-25
 Ever confirmed|0   |1

--- Comment #6 from Oleg Endo olegendo at gcc dot gnu.org ---
Hm, I'm just poking around here, sorry if it's just useless noise ...

In dbr_schedule, doing:

  fill_simple_delay_slots (1);
  fill_simple_delay_slots (0);
  fill_eager_delay_slots ();
  relax_delay_slots (first);

or
//  fill_simple_delay_slots (1);
  fill_simple_delay_slots (0);
  fill_eager_delay_slots ();
  relax_delay_slots (first);

- produces bad code.



  fill_simple_delay_slots (1);
  fill_simple_delay_slots (0);
//  fill_eager_delay_slots ();
  relax_delay_slots (first);

- doesn't do anything to the code.

//  fill_simple_delay_slots (1);
//  fill_simple_delay_slots (0);
  fill_eager_delay_slots ();
  relax_delay_slots (first);

or
  fill_simple_delay_slots (1);
//  fill_simple_delay_slots (0);
  fill_eager_delay_slots ();
  relax_delay_slots (first);


- results in the following code (looks OK):

mov.l   .L8,r1
cmp/ge  r1,r5
bf/s.L11
mov #1,r0

cmp/gt  r1,r5
bt/s.L6
mov #2,r0

mov.l   .L9,r1
cmp/hs  r1,r4
bt  .L6
mov #1,r0
.L6:
.align 1
.L11:
rts
nop
.L10:


[Bug c++/56597] unaligned local variable used by implicit sse instructions

2013-11-25 Thread ktietz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56597

--- Comment #5 from Kai Tietz ktietz at gcc dot gnu.org ---
Issue here is that x64 ABI just requires that stack has 16-byte alignment.
So that means within a function, using instruction requestion higher-alignment,
compiler should either make sure that for those instructions variables get
desired alignment, or that unaligned access is used.
Otherwise I don't see here a way to resolve that, especially in scenario that
code gets used by foreign compiler.


[Bug c++/55898] Can't obtain stack trace

2013-11-25 Thread ktietz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55898

Kai Tietz ktietz at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-11-25
 Ever confirmed|0   |1

--- Comment #5 from Kai Tietz ktietz at gcc dot gnu.org ---
Yes, this is related to the switch --enable-sjlj-exceptions turning off
eh_frame information


[Bug c/59293] Bogus -Wsign-compare warning when using typeof() on a constant

2013-11-25 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59293

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org ---
I don't think this is a bogus warning as the warning is correct as you have a
signed int variable  unsigned int variable.  The compiler does not know that
variable is assigned to a constant here.


[Bug bootstrap/55886] gcc/configure.ac problems lead to GCC 4.7.2 not building for x86_64-pc-mingw64

2013-11-25 Thread ktietz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55886

Kai Tietz ktietz at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P5
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-11-25
 CC||ktietz at gcc dot gnu.org
 Ever confirmed|0   |1
   Severity|normal  |enhancement

--- Comment #2 from Kai Tietz ktietz at gcc dot gnu.org ---
The use of target's host-part-name mingw64 is strongly discuraged.  Most checks
in binutils, gdb, gcc, etc (and all their testsuites) are using still mingw32.
Therefore for resolve your issue use triplet x86_64-pc-mingw32 instead.

I will keep this bug as long-term issue.  Nothing to fix soon.


[Bug bootstrap/49557] make chokes on various Makefile constructs

2013-11-25 Thread ktietz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49557

Kai Tietz ktietz at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 CC||ktietz at gcc dot gnu.org
 Resolution|--- |WONTFIX

--- Comment #13 from Kai Tietz ktietz at gcc dot gnu.org ---
No response for over 2 years now.  close at won't fix


[Bug c++/54485] g++ should diagnose default arguments in out-of-line definitions for template class member functions

2013-11-25 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54485

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
   Assignee|paolo.carlini at oracle dot com|unassigned at gcc dot 
gnu.org

--- Comment #6 from Paolo Carlini paolo.carlini at oracle dot com ---
Fixed for 4.9.0.


[Bug c++/54485] g++ should diagnose default arguments in out-of-line definitions for template class member functions

2013-11-25 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54485

--- Comment #5 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org ---
Author: paolo
Date: Mon Nov 25 22:24:58 2013
New Revision: 205367

URL: http://gcc.gnu.org/viewcvs?rev=205367root=gccview=rev
Log:
/cp
2013-11-25  Paolo Carlini  paolo.carl...@oracle.com

PR c++/54485
* decl.c (duplicate_decls): Enforce 8.3.6/6 about default arguments
for member functions of class templates.

/testsuite
2013-11-25  Paolo Carlini  paolo.carl...@oracle.com

PR c++/54485
* g++.dg/other/default8.C: New.
* g++.dg/tc1/dr217.C: Remove xfail.
* g++.dg/other/default5.C: Adjust.
* g++.old-deja/g++.mike/p1989.C: Likewise.

Added:
trunk/gcc/testsuite/g++.dg/other/default8.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/other/default5.C
trunk/gcc/testsuite/g++.dg/tc1/dr217.C
trunk/gcc/testsuite/g++.old-deja/g++.mike/p1989.C


[Bug c++/58950] [4.9 Regression] Missing statement has no effect

2013-11-25 Thread glisse at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58950

--- Comment #2 from Marc Glisse glisse at gcc dot gnu.org ---
For __builtin_shuffle, the issue is that we now call save_expr, which always
sets TREE_SIDE_EFFECTS to 1. I don't know if it would make sense to introduce a
maybe_save_expr that is equivalent to save_expr but does not set
TREE_SIDE_EFFECTS if its argument doesn't have it. But in any case I think we
still want to warn for an unused result in __builtin_shuffle(x,++m) so that's
not the solution. In C we also have the side_effects_flag but we still warn in
warn_if_unused_value (the default for unknown trees), whereas in C++ (near the
end of convert_to_void in cvt.c) only some tcc_comparison, tcc_unary and
tcc_binary can warn when they have side effects. It would be easy to add
VEC_PERM_EXPR to the list and get a value computed is not used, I just don't
know if something more general is possible.

For (i+i), the PLUS_EXPR ends up with nowarning_flag = 1 somehow.


[Bug c++/59292] Spurious warning: ‘anonymous’ is used uninitialized in this function

2013-11-25 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59292

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

   What|Removed |Added

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

--- Comment #2 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
Thanks for the report. However, this testcase is not very useful for the
regression testsuite. We need a minimal testcase:
http://gcc.gnu.org/bugs/minimize.html.

Since you say that the bug is not present in newer releases (4.4 is very old),
I think it is better to close this.

[Bug c/59293] Bogus -Wsign-compare warning when using typeof() on a constant

2013-11-25 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59293

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

   What|Removed |Added

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

--- Comment #2 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
This would require CCP in the FE or moving these warnings to the middle-end,
which is something that no current developer thinks is a good idea.

Clang also warns here.

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

[Bug c/38470] value range propagation (VRP) would improve -Wsign-compare

2013-11-25 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38470

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

   What|Removed |Added

 CC||shawn at churchofgit dot com

--- Comment #12 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
*** Bug 59293 has been marked as a duplicate of this bug. ***

[Bug c++/59294] New: template friend declaration 'hidden' by member of same name

2013-11-25 Thread stefan.schwarzer at ipm dot fraunhofer.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59294

Bug ID: 59294
   Summary: template friend declaration 'hidden' by member of same
name
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: stefan.schwarzer at ipm dot fraunhofer.de

/* Dear experts,

   I would like to use the same identifier for a member function and 
   a friend function of similar signature. Either declaring the friend 
   or the member works fine, but if both (#ifdef PROBLEM true) are present, 
   g++ starts yelling at me:
*/

template class T class Q;

template class T 
const QT conjugate(const QT );

templateclass T
struct Q {

#define PROBLEM
#ifdef PROBLEM
const Q conjugate() { return *this; }
#endif 

friend const QT conjugateT(const QT ); // PROBLEM
// friend const Q conjugateT(const Q ); // -- equivalent
// friend const Q conjugate(const Q );  // -- equivalent
};

template class T 
const QT conjugate(const QT ) { return QT(); }

int main () {
Qint q;
#ifdef PROBLEM 
q.conjugate();
#endif
conjugate(q);
return 0;
}

/*
$ g++ t.cc
t.cc:17:20: error: ‘conjugate’ is neither function nor member function; cannot
be declared friend
  friend const QT conjugateT(const QT );
^
t.cc:17:20: error: expected ‘;’ at end of member declaration
t.cc:17:29: error: expected unqualified-id before ‘’ token
  friend const QT conjugateT(const QT );

  Nothing I tried really helps:
  - the existence or not of the forward declaration does not help
  - my three feeble attempts of syntax variation (in comments) behave
equivalently
  - using a qualified-id ::conjugate in the friend declaration only changes the 
error message

  Am I missing something basic or is this a compiler bug?

(debian testing)
$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.8.2-1'
--with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs
--enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.8 --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls
--with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin
--with-system-zlib --disable-browser-plugin --enable-java-awt=gtk
--enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre
--enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64
--with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--enable-objc-gc --enable-multiarch --with-arch-32=i586 --with-abi=m64
--with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release
--build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.2 (Debian 4.8.2-1)  

*/

  1   2   >