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.
Paul Thomas [Sat, 17 Jan 2009 11:32:02 +0000 (11:32 +0000)]
re PR fortran/34955 (transfer_assumed_size_1.f90: Valgrind error: invalid read of size 3)
2009-01-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/34955
* trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Has
been absorbed into gfc_conv_intrinsic_transfer. All
references to it in trans-intrinsic.c have been changed
accordingly. PR fixed by using a temporary for scalar
character transfer, when the source is shorter than the
destination.
2009-01-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/34955
* gfortran.dg/transfer_intrinsic_1.f90: New test.
* gfortran.dg/transfer_intrinsic_2.f90: New test.
Sebastian Pop [Fri, 16 Jan 2009 15:18:28 +0000 (15:18 +0000)]
graphite.c (add_conditions_to_domain): Add the loops to the dimension of the iteration domain.
2009-01-16 Sebastian Pop <sebastian.pop@amd.com>
Tobias Grosser <tobi.grosser@amd.com>
* graphite.c (add_conditions_to_domain): Add the loops to
the dimension of the iteration domain. Do copy the domain
only when it exists.
(build_scop_conditions_1): Do not call add_conditions_to_domain.
(add_conditions_to_constraints): New.
(can_generate_code_stmt, can_generate_code): Removed.
(gloog): Do not call can_generate_code.
(graphite_transform_loops): Call add_conditions_to_constraints
after building the iteration domain.
Sebastian Pop [Thu, 15 Jan 2009 23:23:48 +0000 (23:23 +0000)]
graphite.c (scan_tree_for_params): On substractions negate all the coefficients of the term.
2009-01-15 Sebastian Pop <sebastian.pop@amd.com>
Tobias Grosser <tobi.grosser@amd.com>
Jan Sjodin <jan.sjodin@amd.com>
* graphite.c (scan_tree_for_params): On substractions negate
all the coefficients of the term.
(clast_to_gcc_expression_red): New. Handle reduction expressions
of more than two operands.
(clast_to_gcc_expression): Call clast_to_gcc_expression_red.
(get_vdef_before_scop): Handle also the case of default definitions.
Co-Authored-By: Jan Sjodin <jan.sjodin@amd.com> Co-Authored-By: Tobias Grosser <tobi.grosser@amd.com>
From-SVN: r143415
caller-save.c (add_used_regs_1, [...]): New functions.
gcc/
* caller-save.c (add_used_regs_1, add_used_regs): New functions.
(insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
Also use them when walking CALL_INSN_FUNCTION_USAGE.
* src/compatibility.cc: Also export long double versions of "C" math
library if hppa-linux.
* config/abi/pre/gnu.ver: Remove unused __signbit exports.
* doc/xml/manual/appendix_contributing.xml: Remove libmath reference.
Jason Merrill [Thu, 15 Jan 2009 18:14:32 +0000 (13:14 -0500)]
re PR c++/36334 (typedef to function type leads to problems)
PR c++/36334
PR c++/37646
* tree.c (lvalue_p_1): Handle BASELINK. A COMPONENT_REF to
a function isn't necessarily an lvalue. Take tree, not const_tree.
(lvalue_p, real_lvalue_p): Take tree, not const_tree.
* typeck.c (lvalue_or_else): Likewise.
* cp-tree.h: Adjust prototypes.
Jakub Jelinek [Thu, 15 Jan 2009 08:07:38 +0000 (09:07 +0100)]
re PR rtl-optimization/38245 (stack corruption when a call is removed but not the outgoing argument pushes)
PR rtl-optimization/38245
* calls.c (expand_call): Add stack arguments to
CALL_INSN_FUNCTION_USAGE even for pure calls (when
ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
in regs and partially in memory or BLKmode arguments.
(emit_library_call_value_1): Add stack arguments to
CALL_INSN_FUNCTION_USAGE even for pure calls (when
ACCUMULATE_OUTGOING_ARGS).
* dce.c: Include tm_p.h.
(find_call_stack_args): New function.
(deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
argument.
(mark_insn): Call find_call_stack_args for CALL_Ps.
(prescan_insns_for_dce): Walk insns backwards in bb rather than
forwards. Allocate and free arg_stores bitmap if needed, pass it
down to deletable_insn_p, don't mark stores set in arg_stores
bitmap, clear the bitmap at the beginning of each bb.
* Makefile.in (dce.o): Depend on $(TM_P_H).
* gcc.dg/pr38245-3.c: New test.
* gcc.dg/pr38245-3.h: New file.
* gcc.dg/pr38245-4.c: New file.
* gcc.dg/pr38364.c: New test.
Sebastian Pop [Wed, 14 Jan 2009 21:11:05 +0000 (21:11 +0000)]
re PR middle-end/38431 ([graphite] several ICEs with CP2K (summary))
2009-01-14 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/38431
* graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
(scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
(gloog): Do not call cleanup_tree_cfg.
(graphite_transform_loops): Call cleanup_tree_cfg after all
scops have been code generated.
Richard Guenther [Wed, 14 Jan 2009 16:45:22 +0000 (16:45 +0000)]
re PR tree-optimization/38826 (points-to result wrong for reads from call-clobbered vars)
2009-01-14 Richard Guenther <rguenther@suse.de>
PR tree-optimization/38826
PR middle-end/38477
* tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
initialization notes only if we actually emitted a warning.
(intra_create_variable_infos): Add constraints for a result decl
that is passed by hidden reference.
(build_pred_graph): Mark all related variables non-direct on
address-taking.
* gcc.dg/Wstrict-aliasing-bogus-pta-1.c: New testcase.
Nick Clifton [Wed, 14 Jan 2009 11:28:01 +0000 (11:28 +0000)]
ira-conflicts.c: Include addresses.h for the definition of base_reg_class.
* ira-conflicts.c: Include addresses.h for the definition of
base_reg_class.
(ira_build_conflicts): Use base_reg_class instead of
BASE_REG_CLASS.
* Makefile.in: Add a dependency of ira-conflicts.o on
addresses.h.
Jakub Jelinek [Tue, 13 Jan 2009 22:36:06 +0000 (23:36 +0100)]
re PR rtl-optimization/38774 (ice in df_refs_verify, at df-scan.c:4307)
PR rtl-optimization/38774
* combine.c (simplify_set): When undoing cc_use change, don't do
PUT_CODE on the newly created comparison, but instead put back the
old comparison.