Jakub Jelinek [Wed, 28 Jan 2009 10:40:06 +0000 (11:40 +0100)]
re PR middle-end/38934 (ICE in set_value_range, at tree-vrp.c:398)
PR middle-end/38934
* tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
set to varying whenever max has TREE_OVERFLOW set, similarly
for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
Adam Nemet [Wed, 28 Jan 2009 02:55:20 +0000 (02:55 +0000)]
c.opt (Wpacked-bitfield-compat): Change init value to -1.
* c.opt (Wpacked-bitfield-compat): Change init value to -1.
* c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
was not supplied then set warn_packed_bitfield_compat to the
default value of 1.
* stor-layout.c (place_field): Check warn_packed_bitfield_compat
against 1.
Daniel Kraft [Tue, 27 Jan 2009 18:07:54 +0000 (19:07 +0100)]
re PR fortran/38883 (ICE for MVBITS with derived type argument that has run-time subscripts)
2009-01-27 Daniel Kraft <d@domob.eu>
PR fortran/38883
* trans-stmt.c (gfc_conv_elemental_dependencies): Create temporary
for the real type needed to make it work for subcomponent-references.
2009-01-27 Daniel Kraft <d@domob.eu>
PR fortran/38883
* gfortran.dg/mvbits_6.f90: New test.
* gfortran.dg/mvbits_7.f90: New test.
* gfortran.dg/mvbits_8.f90: New test.
Richard Guenther [Tue, 27 Jan 2009 10:42:59 +0000 (10:42 +0000)]
re PR middle-end/38503 (warnings from -isystem headers strikes back.)
2009-01-27 Richard Guenther <rguenther@suse.de>
PR tree-optimization/38503
* cfgexpand.c (expand_gimple_basic_block): Ignore
GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
* tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
variables that cannot have TBAA applied.
(compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
statements.
* g++.dg/warn/Wstrict-aliasing-bogus-placement-new.C: New testcase.
Richard Guenther [Mon, 26 Jan 2009 09:55:30 +0000 (09:55 +0000)]
re PR tree-optimization/38745 (ICE: statement makes a memory store, but has no VDEFS)
2009-01-26 Richard Guenther <rguenther@suse.de>
PR tree-optimization/38745
* tree-ssa.c (execute_update_addresses_taken): Do not include
variables that cannot possibly be a register in not_reg_needs.
Do not clear TREE_ADDRESSABLE on vars that may not become
registers.
* tree-ssa.c (update_alias_info_1): Include those in the set
of addressable vars.
bitfld-15.c: Gate warning on target pcc_bitfield_type_matters.
* gcc.dg/bitfld-15.c: Gate warning on target
pcc_bitfield_type_matters.
* gcc.dg/bitfld-17.c, g++.dg/ext/bitfield2.C,
g++.dg/ext/bitfield4.C: Likewise.
* gcc.dg/pr17112-1.c: Don't expect a warning for the packed
bitfield for any target.
Sebastian Pop [Sat, 24 Jan 2009 00:59:51 +0000 (00:59 +0000)]
re PR tree-optimization/38953 ([graphite] loop closed SSA not maintained by graphite code generation)
2009-01-24 Sebastian Pop <sebastian.pop@amd.com>
PR tree-optimization/38953
* graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
(scop_adjust_phis_for_liveouts): Initialize false_i to zero.
(gloog): Split the exit of the scop when the scop exit is a loop exit.
(graphite_transform_loops): Only call cleanup_tree_cfg if gloog
changed the CFG.
Paul Brook [Sat, 24 Jan 2009 00:10:30 +0000 (00:10 +0000)]
neon.md (neon_type): Move to arm.md.
2009-01-24 Paul Brook <paul@codesourcery.com>
gcc/
* config/arm/neon.md (neon_type): Move to arm.md.
(neon_mov<VSTRUCT>): Add neon_type attribute.
* config/arm/arm.md (neon_type): Move to here.
(conds): Add "unconditioal" and use as default for NEON insns.
gcc/testsuite/
* gcc.target/arm/neon-cond-1.c: New test.
Adam Nemet [Fri, 23 Jan 2009 06:29:54 +0000 (06:29 +0000)]
c-decl.c (finish_struct): Move code to set DECL_PACKED after DECL_BIT_FIELD is alreay known.
* c-decl.c (finish_struct): Move code to set DECL_PACKED after
DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
regardless of their type.
* c-common.c (handle_packed_attribute): Don't ignore packed on
bitfields.
* c.opt (Wpacked-bitfield-compat): New warning option.
* stor-layout.c (place_field): Warn if offset of a field changed.
* doc/extend.texi (packed): Mention the ABI change.
* doc/invoke.texi (-Wpacked-bitfield-compat): Document.
(Warning Options): Add it to the list.
cp/
* class.c (check_field_decls): Also inherit packed for bitfields
regardless of their type.
testsuite/
* gcc.dg/bitfld-15.c, gcc.dg/bitfld-16.c,
gcc.dg/bitfld-17.c,gcc.dg/bitfld-18.c: New tests.
* g++.dg/ext/bitfield2.C, g++.dg/ext/bitfield3.C,
g++.dg/ext/bitfield4.C, g++.dg/ext/bitfield5.C: New tests.
Uros Bizjak [Wed, 21 Jan 2009 18:47:19 +0000 (19:47 +0100)]
re PR rtl-optimization/38879 (scheduler does not look for conflicting alias sets)
PR rtl-optimization/38879
* alias.c (base_alias_check): Unaligned access via AND address can
alias all surrounding object types except those with sizes equal
or wider than the size of unaligned access.
PR c++/26693
* c-decl.c: (clone_underlying_type): Move this ...
* c-common.c (set_underlying_type): ... here.
Also, make sure the function properly sets TYPE_STUB_DECL() on
the newly created typedef variant type.
(is_typedef_decl ): New entry point.
* tree.h: Added a new member member_types_needing_access_check to
struct tree_decl_non_common.
(set_underlying_type): New entry point.
(is_typedef_type): Likewise.
PR c++/26693
* decl2.c (grokfield): when a typedef appears in a
class, create the typedef variant type node for it.
(save_template_attributes): Creating typedef variant type node
here is now useless.
* decl.c (grokdeclarator): If the typedef'ed struct/class was
anonymous, set the proper type name to all its type variants.
* name-lookup.c (pushdecl_maybe_friend): Reuse the
set_underlying_type function to install typedef variant types.
* cp-tree.h (MEMBER_TYPES_NEEDING_ACCESS_CHECK): New template accessor
macro.
(append_type_to_template_for_access_check): New entry points.
* semantics.c (check_accessibility_of_qualified_id):
When a typedef that is a member of a class appears in a template,
add it to the template. It will be ...
* pt.c (instantiate_class_template, instantiate_template ): ... access
checked at template instantiation time.
(tsubst): Handle the case of being called with NULL args.
(resolve_type_name_type): The type name should be the name of the
main type variant.
(append_type_to_template_for_access_check): New entry point.
PR c++/26693
* g++.dg/template/typedef11.C: New test.
* g++.dg/template/typedef12.C: Likewise.
* g++.dg/template/typedef13.C: Likewise.
* g++.dg/template/typedef14.C: Likewise.
* g++.dg/template/sfinae3.C: Compile this pedantically.
The only errors expected should be the one saying the typedef is ill
formed.
* g++.old-deja/g++.pt/typename8.C: Likewise.
* g++.dg/template/access11.C: Update this.
* include/ext/bitmap_allocator.h: the typedefs should be made public
if we want them to be accessible. This has been revealed by the patch
that fixes PR c++/26693 in g++.
Paul Thomas [Tue, 20 Jan 2009 21:56:49 +0000 (21:56 +0000)]
re PR fortran/38907 (ICE when contained function has same name as module function and used in expression)
2009-01-20 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38907
* resolve.c (check_host_association): Remove the matching to
correct an incorrect host association and use manipulation of
the expression instead.
2009-01-20 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38907
* gfortran.dg/host_assoc_function_7.f90: New test.
Andrew Pinski [Tue, 20 Jan 2009 17:10:40 +0000 (17:10 +0000)]
re PR tree-optimization/38747 (Wrong code due to VIEW_CONVERT_EXPR)
2009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
Richard Guenther <rguenther@suse.de>
PR tree-optimization/38747
PR tree-optimization/38748
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
conversion if the base address is an indirect reference and the
aliasing sets could cause issues.
* gcc.dg/tree-ssa/struct-aliasing-1.c: New test.
* gcc.dg/tree-ssa/struct-aliasing-2.c: Likewise.
* gcc.c-torture/execute/struct-aliasing-1.c: Likewise.
Co-Authored-By: Richard Guenther <rguenther@suse.de>
From-SVN: r143523
gcc/
* config/darwin.h: Add static-libgfortran to LINK_SPEC.
gcc/testsuite/
* lib/gfortran.exp: Add -B options for targets that use
libgfortran.a%s in their specs.
libgomp/
* testsuite/lib/libgomp.exp: Add -B option for targets that
use libgfortran.a%s in their specs.
Richard Guenther [Sun, 18 Jan 2009 15:51:12 +0000 (15:51 +0000)]
re PR tree-optimization/38819 (trapping expression wrongly hoisted out of loop)
2009-01-18 Richard Guenther <rguenther@suse.de>
PR tree-optimization/38819
* tree-flow.h (operation_could_trap_helper_p): Declare.
* tree-eh.c (operation_could_trap_helper_p): Export.
* tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
* tree-ssa-sccvn.c (vn_nary_may_trap): New function.
* tree-ssa-pre.c (insert_into_preds_of_block): Check if we
are about to insert a possibly trapping instruction and fail
in this case.
Ben Elliston [Sun, 18 Jan 2009 08:51:56 +0000 (08:51 +0000)]
bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate C++ warning about implicit conversion from void * to...
* bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
C++ warning about implicit conversion from void * to struct
bitmap_head_def *.
(bitmap_obstack_free): Likewise for bitmap_element *.
Paul Thomas [Sat, 17 Jan 2009 11:58:48 +0000 (11:58 +0000)]
re PR fortran/38657 (PUBLIC/PRIVATE Common blocks)
2009-01-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38657
* module.c (write_common_0): Add argument 'this_module' and
check that non-use associated common blocks are written first.
(write_common): Call write_common_0 twice, once with true and
then with false.