Ian Lance Taylor [Sun, 18 Nov 2012 07:56:13 +0000 (07:56 +0000)]
compiler: Adjust for vec changes.
From-SVN: r193596
Diego Novillo [Sun, 18 Nov 2012 02:54:30 +0000 (21:54 -0500)]
This patch rewrites the old VEC macro-based interface into a new one based on the template class 'vec'.
This patch rewrites the old VEC macro-based interface into a new one
based on the template class 'vec'. The user-visible changes are
described in http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec.
I have tested the patch pretty extensively:
- Regular bootstraps on x86_64, ppc, ia64, sparc and hppa.
- Bootstraps with --enable-checking=release
- Bootstraps with --enable-checking=gc,gcac
- Basic builds on all targets (using contrib/config-list.mk).
We no longer access the vectors via VEC_* macros. The pattern is
"VEC_operation (T, A, V, args)" becomes "V.operation (args)".
The only thing I could not do is create proper ctors and dtors for the
vec class. Since these vectors are stored in unions, we
have to keep them as PODs (C++03 does not allow non-PODs in unions).
This means that creation and destruction must be explicit. There is a
new method vec<type, allocation, layout>::create() and another vec<type,
allocation, layout>::destroy() to allocate the internal vector.
For vectors that must be pointers, there is a family of free functions
that implement the operations that need to tolerate NULL vectors.
These functions all start with the prefix 'vec_safe_'. See the wiki
page for details.
The gengtype change removes the special handling for VEC() that used
to exist in gengtype. Additionally, it allows gengtype to recognize
templates of more than one argument and introduces the concept of an
undefined type (useful for template arguments that may or may not be
types).
When a TYPE_UNDEFINED is reached, gengtype will ignore it if it
happens inside a type marked with GTY((user)). Otherwise, it will
emit an error.
Finally, gengtype rejects root types marked GTY((user)) that are not
first class pointers.
2012-11-16 Diego Novillo <dnovillo@google.com>
VEC API overhaul (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
* vec.c (register_overhead): Convert it into
member function of vec_prefix.
(release_overhead): Likewise.
(calculate_allocation): Likewise.
(vec_heap_free): Remove.
(vec_gc_o_reserve_1): Remove.
(vec_heap_o_reserve_1): Remove.
(vec_stack_o_reserve_1): Remove.
(vec_stack_o_reserve_exact): Remove.
(register_stack_vec): New.
(stack_vec_register_index): New.
(unregister_stack_vec): New.
(vec_assert_fail): Remove.
* vec.h: Conditionally include ggc.h. Document conditional
hackery.
Update top-level documentation.
(ALONE_VEC_CHECK_INFO): Remove.
(VEC_CHECK_INFO): Remove.
(ALONE_VEC_CHECK_DECL): Remove.
(VEC_CHECK_DECL): Remove.
(ALONE_VEC_CHECK_PASS): Remove.
(VEC_CHECK_PASS): Remove.
(VEC_ASSERT): Remove.
(vec_prefix): Add friends va_gc, va_gc_atomic, va_heap and
va_stack.
Mark fields alloc_ and num_ as protected.
(struct vec_t): Remove. Remove all function members.
(struct vl_embed): Declare.
(struct vl_ptr): Declare.
(free): Remove.
(reserve_exact): Remove.
(reserve): Remove.
(safe_splice): Remove.
(safe_push): Remove.
(safe_grow): Remove.
(safe_grow_cleared): Remove.
(safe_insert): Remove.
(DEF_VEC_I): Remove.
(DEF_VEC_ALLOC_I): Remove.
(DEF_VEC_P): Remove.
(DEF_VEC_ALLOC_P): Remove.
(DEF_VEC_O): Remove.
(DEF_VEC_ALLOC_O): Remove.
(DEF_VEC_ALLOC_P_STACK): Remove.
(DEF_VEC_ALLOC_O_STACK): Remove.
(DEF_VEC_ALLOC_I_STACK): Remove.
(DEF_VEC_A): Remove.
(DEF_VEC_ALLOC_A): Remove.
(vec_stack_p_reserve_exact_1): Remove.
(vec_stack_o_reserve): Remove.
(vec_stack_o_reserve_exact): Remove.
(VEC_length): Remove.
(VEC_empty): Remove.
(VEC_address): Remove.
(vec_address): Remove.
(VEC_last): Remove.
(VEC_index): Remove.
(VEC_iterate): Remove.
(VEC_embedded_size): Remove.
(VEC_embedded_init): Remove.
(VEC_free): Remove.
(VEC_copy): Remove.
(VEC_space): Remove.
(VEC_reserve): Remove.
(VEC_reserve_exact): Remove.
(VEC_splice): Remove.
(VEC_safe_splice): Remove.
(VEC_quick_push): Remove.
(VEC_safe_push): Remove.
(VEC_pop): Remove.
(VEC_truncate): Remove.
(VEC_safe_grow): Remove.
(VEC_replace): Remove.
(VEC_quick_insert): Remove.
(VEC_safe_insert): Remove.
(VEC_ordered_remove): Remove.
(VEC_unordered_remove): Remove.
(VEC_block_remove): Remove.
(VEC_lower_bound): Remove.
(VEC_alloc): Remove.
(VEC_qsort): Remove.
(va_heap): Declare.
(va_heap::default_layout): New typedef to vl_ptr.
(va_heap::reserve): New.
(va_heap::release): New.
(va_gc): Declare.
(va_gc::default_layout): New typedef to vl_embed.
(va_gc::reserve): New.
(va_gc::release): New.
(va_gc_atomic): Declare. Inherit from va_gc.
(va_stack): Declare.
(va_stack::default_layout): New typedef to vl_ptr.
(va_stack::alloc): New.
(va_stack::reserve): New.
(va_stack::release): New.
(register_stack_vec): Declare.
(stack_vec_register_index): Declare.
(unregister_stack_vec): Declare.
(vec<T, A = va_heap, L = typename A::default_layout>): Declare
empty vec template.
(vec<T, A, vl_embed>): Partial specialization for embedded
layout.
(vec<T, A, vl_embed>::allocated): New.
(vec<T, A, vl_embed>::length): New.
(vec<T, A, vl_embed>::is_empty): New.
(vec<T, A, vl_embed>::address): New.
(vec<T, A, vl_embed>::operator[]): New.
(vec<T, A, vl_embed>::last New.
(vec<T, A, vl_embed>::space): New.
(vec<T, A, vl_embed>::iterate): New.
(vec<T, A, vl_embed>::iterate): New.
(vec<T, A, vl_embed>::copy): New.
(vec<T, A, vl_embed>::splice): New.
(vec<T, A, vl_embed>::quick_push New.
(vec<T, A, vl_embed>::pop New.
(vec<T, A, vl_embed>::truncate): New.
(vec<T, A, vl_embed>::quick_insert): New.
(vec<T, A, vl_embed>::ordered_remove): New.
(vec<T, A, vl_embed>::unordered_remove): New.
(vec<T, A, vl_embed>::block_remove): New.
(vec<T, A, vl_embed>::qsort): New.
(vec<T, A, vl_embed>::lower_bound): New.
(vec<T, A, vl_embed>::embedded_size): New.
(vec<T, A, vl_embed>::embedded_init): New.
(vec<T, A, vl_embed>::quick_grow): New.
(vec<T, A, vl_embed>::quick_grow_cleared): New.
(vec_safe_space): New.
(vec_safe_length): New.
(vec_safe_address): New.
(vec_safe_is_empty): New.
(vec_safe_reserve): New.
(vec_safe_reserve_exact): New.
(vec_alloc): New.
(vec_free): New.
(vec_safe_grow): New.
(vec_safe_grow_cleared): New.
(vec_safe_iterate): New.
(vec_safe_push): New.
(vec_safe_insert): New.
(vec_safe_truncate): New.
(vec_safe_copy): New.
(vec_safe_splice): New.
(vec<T, A, vl_ptr>): New partial specialization for the space
efficient layout.
(vec<T, A, vl_ptr>::exists): New.
(vec<T, A, vl_ptr>::is_empty): New.
(vec<T, A, vl_ptr>::length): New.
(vec<T, A, vl_ptr>::address): New.
(vec<T, A, vl_ptr>::operator[]): New.
(vec<T, A, vl_ptr>::operator!=): New.
(vec<T, A, vl_ptr>::operator==): New.
(vec<T, A, vl_ptr>::last): New.
(vec<T, A, vl_ptr>::space): New.
(vec<T, A, vl_ptr>::iterate): New.
(vec<T, A, vl_ptr>::copy): New.
(vec<T, A, vl_ptr>::reserve): New.
(vec<T, A, vl_ptr>::reserve_exact): New.
(vec<T, A, vl_ptr>::splice): New.
(vec<T, A, vl_ptr>::safe_splice): New.
(vec<T, A, vl_ptr>::quick_push): New.
(vec<T, A, vl_ptr>::safe_push): New.
(vec<T, A, vl_ptr>::pop): New.
(vec<T, A, vl_ptr>::truncate): New.
(vec<T, A, vl_ptr>::safe_grow): New.
(vec<T, A, vl_ptr>::safe_grow_cleared): New.
(vec<T, A, vl_ptr>::quick_grow): New.
(vec<T, A, vl_ptr>::quick_grow_cleared): New.
(vec<T, A, vl_ptr>::quick_insert): New.
(vec<T, A, vl_ptr>::safe_insert): New.
(vec<T, A, vl_ptr>::ordered_remove): New.
(vec<T, A, vl_ptr>::unordered_remove): New.
(vec<T, A, vl_ptr>::block_remove): New.
(vec<T, A, vl_ptr>::qsort): New.
(vec<T, A, vl_ptr>::lower_bound): New.
(vec_stack_alloc): Define.
(FOR_EACH_VEC_SAFE_ELT): Define.
* vecir.h: Remove. Update all users.
* vecprim.h: Remove. Update all users.
Move uchar to coretypes.h.
* Makefile.in (VEC_H): Add $(GGC_H).
Remove vecir.h and vecprim.h dependencies everywhere.
2012-11-16 Diego Novillo <dnovillo@google.com>
* gengtype-lex.l (VEC): Remove.
Add characters in the set [\!\>\.-].
* gengtype-parse.c (token_names): Remove "VEC".
(require_template_declaration): Remove handling of VEC_TOKEN.
(type): Likewise.
Call create_user_defined_type when parsing GTY((user)).
* gengtype-state.c (type_lineloc): handle TYPE_UNDEFINED.
(write_state_undefined_type): New.
(write_state_type): Call write_state_undefined_type for
TYPE_UNDEFINED.
(read_state_type): Call read_state_undefined_type for
TYPE_UNDEFINED.
* gengtype.c (dbgprint_count_type_at): Handle TYPE_UNDEFINED.
(create_user_defined_type): Make extern.
(type_for_name): Factor out of resolve_typedef.
(create_undefined_type): New
(resolve_typedef): Call it when we cannot find a previous
typedef and the type is not a template.
(find_structure): Accept TYPE_UNDEFINED.
(set_gc_used_type): Add argument ALLOWED_UNDEFINED_TYPES,
default to false.
Emit an error for TYPE_UNDEFINED unless LEVEL is GC_UNUSED or
ALLOWED_UNDEFINED_TYPES is set.
Set ALLOWED_UNDEFINED_TYPES to true for TYPE_USER_STRUCT.
(filter_type_name): Accept templates with more than one
argument.
(output_mangled_typename): Handle TYPE_UNDEFINED
(walk_type): Likewise.
(write_types_process_field): Likewise.
(write_func_for_structure): If CHAIN_NEXT is set, ORIG_S
should not be a user-defined type.
(write_types_local_user_process_field): Handle TYPE_ARRAY,
TYPE_NONE and TYPE_UNDEFINED.
(write_types_local_process_field): Likewise.
(contains_scalar_p): Return 0 for TYPE_USER_STRUCT.
(write_root): Reject user-defined types that are not pointers.
Handle TYPE_NONE, TYPE_UNDEFINED, TYPE_UNION, TYPE_LANG_STRUCT
and TYPE_PARAM_STRUCT.
(output_typename): Handle TYPE_NONE, TYPE_UNDEFINED, and
TYPE_ARRAY.
(dump_typekind): Handle TYPE_UNDEFINED.
* gengtype.h (enum typekind): Add TYPE_UNDEFINED.
(create_user_defined_type): Declare.
(enum gty_token): Remove VEC_TOKEN.
2012-11-16 Diego Novillo <dnovillo@google.com>
Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
* coretypes.h (uchar): Define.
* alias.c: Use new vec API in vec.h.
* asan.c: Likewise.
* attribs.c: Likewise.
* basic-block.h: Likewise.
* bb-reorder.c: Likewise.
* builtins.c: Likewise.
* calls.c: Likewise.
* cfg.c: Likewise.
* cfganal.c: Likewise.
* cfgcleanup.c: Likewise.
* cfgexpand.c: Likewise.
* cfghooks.c: Likewise.
* cfghooks.h: Likewise.
* cfgloop.c: Likewise.
* cfgloop.h: Likewise.
* cfgloopanal.c: Likewise.
* cfgloopmanip.c: Likewise.
* cfgrtl.c: Likewise.
* cgraph.c: Likewise.
* cgraph.h: Likewise.
* cgraphclones.c: Likewise.
* cgraphunit.c: Likewise.
* combine.c: Likewise.
* compare-elim.c: Likewise.
* coverage.c: Likewise.
* cprop.c: Likewise.
* data-streamer.h: Likewise.
* dbxout.c: Likewise.
* dce.c: Likewise.
* df-core.c: Likewise.
* df-problems.c: Likewise.
* df-scan.c: Likewise.
* dominance.c: Likewise.
* domwalk.c: Likewise.
* domwalk.h: Likewise.
* dse.c: Likewise.
* dwarf2cfi.c: Likewise.
* dwarf2out.c: Likewise.
* dwarf2out.h: Likewise.
* emit-rtl.c: Likewise.
* except.c: Likewise.
* except.h: Likewise.
* expr.c: Likewise.
* expr.h: Likewise.
* final.c: Likewise.
* fold-const.c: Likewise.
* function.c: Likewise.
* function.h: Likewise.
* fwprop.c: Likewise.
* gcc.c: Likewise.
* gcse.c: Likewise.
* genattr.c: Likewise.
* genattrtab.c: Likewise.
* genautomata.c: Likewise.
* genextract.c: Likewise.
* genopinit.c: Likewise
* ggc-common.c: Likewise.
* ggc.h: Likewise.
* gimple-low.c: Likewise.
* gimple-ssa-strength-reduction.c: Likewise.
* gimple-streamer-in.c: Likewise.
* gimple.c: Likewise.
* gimple.h: Likewise.
* gimplify.c: Likewise.
* graph.c: Likewise.
* graphds.c: Likewise.
* graphds.h: Likewise.
* graphite-blocking.c: Likewise.
* graphite-clast-to-gimple.c: Likewise.
* graphite-dependences.c: Likewise.
* graphite-interchange.c: Likewise.
* graphite-optimize-isl.c: Likewise.
* graphite-poly.c: Likewise.
* graphite-poly.h: Likewise.
* graphite-scop-detection.c: Likewise.
* graphite-scop-detection.h: Likewise.
* graphite-sese-to-poly.c: Likewise.
* graphite.c: Likewise.
* godump.c: Likewise.
* haifa-sched.c: Likewise.
* hw-doloop.c: Likewise.
* hw-doloop.h: Likewise.
* ifcvt.c: Likewise.
* insn-addr.h: Likewise.
* ipa-cp.c: Likewise.
* ipa-inline-analysis.c: Likewise.
* ipa-inline-transform.c: Likewise.
* ipa-inline.c: Likewise.
* ipa-inline.h: Likewise.
* ipa-prop.c: Likewise.
* ipa-prop.h: Likewise.
* ipa-pure-const.c: Likewise.
* ipa-ref-inline.h: Likewise.
* ipa-ref.c: Likewise.
* ipa-ref.h: Likewise.
* ipa-reference.c: Likewise.
* ipa-split.c: Likewise.
* ipa-utils.c: Likewise.
* ipa-utils.h: Likewise.
* ipa.c: Likewise.
* ira-build.c: Likewise.
* ira-color.c: Likewise.
* ira-emit.c: Likewise.
* ira-int.h: Likewise.
* ira.c: Likewise.
* loop-invariant.c: Likewise.
* loop-unroll.c: Likewise.
* lower-subreg.c: Likewise.
* lra-lives.c: Likewise.
* lra.c: Likewise.
* lto-cgraph.c: Likewise.
* lto-section-out.c: Likewise.
* lto-streamer-in.c: Likewise.
* lto-streamer-out.c: Likewise.
* lto-streamer.h: Likewise.
* lto-symtab.c: Likewise.
* mcf.c: Likewise.
* modulo-sched.c: Likewise.
* omp-low.c: Likewise.
* opts-common.c: Likewise.
* opts-global.c: Likewise.
* opts.c: Likewise.
* opts.h: Likewise.
* passes.c: Likewise.
* predict.c: Likewise.
* print-tree.c: Likewise.
* profile.c: Likewise.
* profile.h: Likewise.
* read-rtl.c: Likewise.
* ree.c: Likewise.
* reg-stack.c: Likewise.
* regrename.c: Likewise.
* regrename.h: Likewise.
* reload.c: Likewise.
* reload.h: Likewise.
* reload1.c: Likewise.
* rtl.h: Likewise.
* sched-deps.c: Likewise.
* sched-int.h: Likewise.
* sdbout.c: Likewise.
* sel-sched-dump.c: Likewise.
* sel-sched-ir.c: Likewise.
* sel-sched-ir.h: Likewise.
* sel-sched.c: Likewise.
* sese.c: Likewise.
* sese.h: Likewise.
* statistics.h: Likewise.
* stmt.c: Likewise.
* stor-layout.c: Likewise.
* store-motion.c: Likewise.
* tlink.c: Likewise.
* toplev.c: Likewise.
* trans-mem.c: Likewise.
* tree-browser.c: Likewise.
* tree-call-cdce.c: Likewise.
* tree-cfg.c: Likewise.
* tree-cfgcleanup.c: Likewise.
* tree-chrec.c: Likewise.
* tree-chrec.h: Likewise.
* tree-complex.c: Likewise.
* tree-data-ref.c: Likewise.
* tree-data-ref.h: Likewise.
* tree-dfa.c: Likewise.
* tree-diagnostic.c: Likewise.
* tree-dump.c: Likewise.
* tree-eh.c: Likewise.
* tree-emutls.c: Likewise.
* tree-flow.h: Likewise.
* tree-if-conv.c: Likewise.
* tree-inline.c: Likewise.
* tree-inline.h: Likewise.
* tree-into-ssa.c: Likewise.
* tree-iterator.c: Likewise.
* tree-loop-distribution.c: Likewise.
* tree-mudflap.c: Likewise.
* tree-optimize.c: Likewise.
* tree-outof-ssa.c: Likewise.
* tree-parloops.c: Likewise.
* tree-phinodes.c: Likewise.
* tree-predcom.c: Likewise.
* tree-pretty-print.c: Likewise.
* tree-scalar-evolution.c: Likewise.
* tree-sra.c: Likewise.
* tree-ssa-address.c: Likewise.
* tree-ssa-alias.c: Likewise.
* tree-ssa-ccp.c: Likewise.
* tree-ssa-coalesce.c: Likewise.
* tree-ssa-dce.c: Likewise.
* tree-ssa-dom.c: Likewise.
* tree-ssa-forwprop.c: Likewise.
* tree-ssa-live.c: Likewise.
* tree-ssa-live.h: Likewise.
* tree-ssa-loop-im.c: Likewise.
* tree-ssa-loop-ivcanon.c: Likewise.
* tree-ssa-loop-ivopts.c: Likewise.
* tree-ssa-loop-manip.c: Likewise.
* tree-ssa-loop-niter.c: Likewise.
* tree-ssa-loop-prefetch.c: Likewise.
* tree-ssa-math-opts.c: Likewise.
* tree-ssa-operands.c: Likewise.
* tree-ssa-phiopt.c: Likewise.
* tree-ssa-phiprop.c: Likewise.
* tree-ssa-pre.c: Likewise.
* tree-ssa-propagate.c: Likewise.
* tree-ssa-reassoc.c: Likewise.
* tree-ssa-sccvn.c: Likewise.
* tree-ssa-sccvn.h: Likewise.
* tree-ssa-strlen.c: Likewise.
* tree-ssa-structalias.c: Likewise.
* tree-ssa-tail-merge.c: Likewise.
* tree-ssa-threadedge.c: Likewise.
* tree-ssa-threadupdate.c: Likewise.
* tree-ssa-uncprop.c: Likewise.
* tree-ssa-uninit.c: Likewise.
* tree-ssa.c: Likewise.
* tree-ssanames.c: Likewise.
* tree-stdarg.c: Likewise.
* tree-streamer-in.c: Likewise.
* tree-streamer-out.c: Likewise.
* tree-streamer.c: Likewise.
* tree-streamer.h: Likewise.
* tree-switch-conversion.c: Likewise.
* tree-vect-data-refs.c: Likewise.
* tree-vect-generic.c: Likewise.
* tree-vect-loop-manip.c: Likewise.
* tree-vect-loop.c: Likewise.
* tree-vect-patterns.c: Likewise.
* tree-vect-slp.c: Likewise.
* tree-vect-stmts.c: Likewise.
* tree-vectorizer.c: Likewise.
* tree-vectorizer.h: Likewise.
* tree-vrp.c: Likewise.
* tree.c: Likewise.
* tree.h: Likewise.
* value-prof.c: Likewise.
* value-prof.h: Likewise.
* var-tracking.c: Likewise.
* varasm.c: Likewise.
* varpool.c: Likewise.
* vmsdbgout.c: Likewise.
* config/bfin/bfin.c: Likewise.
* config/c6x/c6x.c: Likewise.
* config/darwin.c: Likewise.
* config/i386/i386.c: Likewise.
* config/ia64/ia64.c: Likewise.
* config/mep/mep.c: Likewise.
* config/mips/mips.c: Likewise.
* config/pa/pa.c: Likewise.
* config/rs6000/rs6000-c.c: Likewise.
* config/rs6000/rs6000.c: Likewise.
* config/rx/rx.c: Likewise.
* config/spu/spu-c.c: Likewise.
* config/vms/vms.c: Likewise.
* config/vxworks.c: Likewise.
* config/epiphany/resolve-sw-modes.c: Likewise.
From-SVN: r193595
GCC Administrator [Sun, 18 Nov 2012 00:18:41 +0000 (00:18 +0000)]
Daily bump.
From-SVN: r193594
Jakub Jelinek [Sat, 17 Nov 2012 22:00:32 +0000 (23:00 +0100)]
re PR tree-optimization/55236 (gcc.c-torture/execute/pr22493-1.c FAILs with -fPIC)
PR tree-optimization/55236
* fold-const.c (make_range_step) <case NEGATE_EXPR>: For -fwrapv
and signed ARG0_TYPE, force low and high to be non-NULL.
* gcc.dg/pr55236.c: New test.
From-SVN: r193591
Jakub Jelinek [Sat, 17 Nov 2012 21:58:44 +0000 (22:58 +0100)]
re PR testsuite/55188 (FAIL: gcc.dg/pr19105.c scan-tree-dump-times reassoc1 "Optimizing range tests v_[0-9]*.D. -.2, 2. and -.3, 4.[\n\r]* into" 1)
PR testsuite/55188
* gcc.dg/pr19105.c: Accept also optimizing
-[2, 2] and -[3, 3] and -[4, 4] range tests together.
From-SVN: r193590
H.J. Lu [Sat, 17 Nov 2012 20:31:06 +0000 (20:31 +0000)]
Add -static-libasan option to the GCC driver
* common.opt (static-libasan): New option.
* gcc.c (LIBASAN_SPEC): New macro.
(LINK_COMMAND_SPEC): Replace -lasan with LIBASAN_SPEC.
* doc/invoke.texi: Document -static-libasan.
From-SVN: r193589
Vladimir Makarov [Sat, 17 Nov 2012 17:59:35 +0000 (17:59 +0000)]
re PR rtl-optimization/55342 ([LRA,x86] Non-optimal code for simple loop with LRA)
2012-11-17 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/55342
* lra-assigns.c (spill_for): Try to allocate other reload pseudos
before and after spilling.
From-SVN: r193588
Gabriel Dos Reis [Sat, 17 Nov 2012 16:47:47 +0000 (16:47 +0000)]
semantics.c (finish_id_expression): Tidy diagnostic message.
* semantics.c (finish_id_expression): Tidy diagnostic message.
From-SVN: r193587
Jakub Jelinek [Sat, 17 Nov 2012 13:03:39 +0000 (14:03 +0100)]
asan-dg.exp (asan_symbolize): Prune BFD: prefixed error messages from addr2line_output.
* lib/asan-dg.exp (asan_symbolize): Prune BFD: prefixed error messages
from addr2line_output. Increment idx if asking for more than one address
in one object.
From-SVN: r193586
Jakub Jelinek [Sat, 17 Nov 2012 13:02:56 +0000 (14:02 +0100)]
re PR fortran/55341 (address-sanitizer and Fortran)
PR fortran/55341
* trans-intrinsic.c (gfc_conv_intrinsic_transfer): Convert last
argument to memcpy to size_type_node type.
* trans-stmt.c (gfc_conv_elemental_dependencies): Likewise.
* trasn-array.c (duplicate_allocatable): Likewise.
From-SVN: r193585
Paolo Carlini [Sat, 17 Nov 2012 12:09:58 +0000 (12:09 +0000)]
re PR libstdc++/55363 (tuple_size is not a class template)
2012-11-17 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/55363
* include/std/array (tuple_size, tuple_element): Move out
NAMESPACE_CONTAINER.
* testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
dg-error line numbers.
* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
Likewise.
From-SVN: r193584
Sandra Loosemore [Sat, 17 Nov 2012 03:25:59 +0000 (22:25 -0500)]
extend.texi: Various copy-edits to comply with GCC coding standards for spelling...
2012-11-16 Sandra Loosemore <sandra@codesourcery.com>
gcc/
* doc/extend.texi: Various copy-edits to comply with GCC coding
standards for spelling, terminology, and markup, including use of
American spelling, correct use of terms like "back end" and
"run time", use correct name for GCC, use "@:" markup.
From-SVN: r193583
Ian Lance Taylor [Sat, 17 Nov 2012 00:52:22 +0000 (00:52 +0000)]
runtime: Fix use of __atomic_compare_exchange_n: not weak, consistent.
From-SVN: r193581
GCC Administrator [Sat, 17 Nov 2012 00:18:31 +0000 (00:18 +0000)]
Daily bump.
From-SVN: r193580
Jakub Jelinek [Fri, 16 Nov 2012 22:05:32 +0000 (23:05 +0100)]
re PR tree-optimization/55329 (ICE: internal compiler error: in operator[], at vec.h:487 with -O -fno-guess-branch-probability -fnon-call-exceptions --param=early-inlining-insns=111)
PR tree-optimization/55329
* tree-ssa-dom.c (tree_ssa_dominator_optimize): Never clear
bits in needed_eh_cleanup while iterating over the bitmap.
Look through all forwarder blocks at once.
* g++.dg/opt/pr55329.C: New test.
From-SVN: r193577
François Dumont [Fri, 16 Nov 2012 21:28:44 +0000 (21:28 +0000)]
hashtable_policy.h (_Prime_rehash_policy): Remove automatic shrink.
2012-11-16 François Dumont <fdumont@gcc.gnu.org>
* include/bits/hashtable_policy.h (_Prime_rehash_policy): Remove
automatic shrink.
(_Prime_rehash_policy::_M_bkt_for_elements): Do not call
_M_next_bkt anymore.
(_Prime_rehash_policy::_M_next_bkt): Move usage of
_S_growth_factor ...
(_Prime_rehash_policy::_M_need_rehash): ... here.
* include/bits/hashtable.h (_Hashtable<>): Adapt.
* testsuite/performance/23_containers/insert_erase/41975.cc: Add
_USE_TR1 to force build using std::tr1 container.
* testsuite/performance/23_containers/insert/unordered_set.cc:
Likewise.
* testsuite/performance/23_containers/insert/54075.cc: New.
From-SVN: r193576
Matthias Klose [Fri, 16 Nov 2012 18:35:05 +0000 (18:35 +0000)]
2012-11-16 Matthias Klose <doko@ubuntu.com>
* Imported zlib 1.2.7; merged local changes.
From-SVN: r193574
Tom Tromey [Fri, 16 Nov 2012 18:17:25 +0000 (18:17 +0000)]
whatis.cc: New file.
* testsuite/libstdc++-prettyprinters/whatis.cc: New file.
* testsuite/lib/gdb-test.exp (whatis-test): New proc.
(gdb-test): Handle 'whatis' tests.
(gdb_batch_check): New proc.
(gdb_version_check): Rewrite to use gdb_batch_check.
* python/libstdcxx/v6/printers.py: Import gdb.types.
(FilteringTypePrinter): New class.
(add_one_type_printer, register_type_printers): New functions.
(register_libstdcxx_printers): Call register_type_printers.
From-SVN: r193573
Ian Bolton [Fri, 16 Nov 2012 17:36:00 +0000 (17:36 +0000)]
Fix commit of testcase which got truncated somehow.
From-SVN: r193571
Jan Hubicka [Fri, 16 Nov 2012 17:27:30 +0000 (17:27 +0000)]
* params.def (max-peeled-insns, max-completely-peeled-insns): Reduce to 100.
From-SVN: r193570
Simon Baldwin [Fri, 16 Nov 2012 17:14:05 +0000 (17:14 +0000)]
cpplib.h (struct cpp_options): Add canonical_system_headers.
* include/cpplib.h (struct cpp_options): Add canonical_system_headers.
* files.c (find_file_in_dir): Call maybe_shorter_path() only if
canonical_system_headers is set.
* init.c (cpp_create_reader): Initialize canonical_system_headers.
* configure.ac: Add new --enable-canonical-system-headers.
* configure: Regenerate.
* config.in: Regenerate.
* doc/cppopts.texi: Document -f[no-]canonical-system-headers.
* doc/install.texi: Document --enable-canonical-system-headers.
* c.opt: Add f[no-]canonical-system-headers.
* c-opts.c (c_common_handle_option): Handle
OPT_fcanonical_system_headers.
From-SVN: r193569
Janus Weil [Fri, 16 Nov 2012 17:02:02 +0000 (18:02 +0100)]
re PR fortran/55297 ([OOP] type-bound operator clashes with abstract interface)
2012-11-16 Janus Weil <janus@gcc.gnu.org>
PR fortran/55297
* resolve.c (resolve_typebound_intrinsic_op): Only add typebound
operators to the operator list in the namespace of the derived type.
2012-11-16 Janus Weil <janus@gcc.gnu.org>
PR fortran/55297
* gfortran.dg/typebound_operator_18.f90: New.
From-SVN: r193568
Vladimir Makarov [Fri, 16 Nov 2012 16:32:02 +0000 (16:32 +0000)]
re PR rtl-optimization/55330 (ICE: Maximum number of LRA constraint passes is achieved (15) on gfortran.dg/actual_array_constructor_1.f90)
2012-11-16 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/55330
* lra-constraints.c (MAX_INHERITANCE_PASSES): New macro.
(lra_inheritance, lra_undo_inheritance): Use it to limit number of
the passes.
2012-11-16 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/55330
* gfortran.dg/pr55330.f90: New test.
From-SVN: r193567
Ian Lance Taylor [Fri, 16 Nov 2012 16:30:35 +0000 (16:30 +0000)]
compiler: don't remove floating point conversion of typed constant
From-SVN: r193565
Ian Lance Taylor [Fri, 16 Nov 2012 16:27:54 +0000 (16:27 +0000)]
Make-lang.in (gccgo$(exeext)): Add + at start of command.
* Make-lang.in (gccgo$(exeext)): Add + at start of command.
(go1$(exeext)): Likewise.
From-SVN: r193564
Uros Bizjak [Fri, 16 Nov 2012 15:50:05 +0000 (16:50 +0100)]
gcc-dg.exp (cleanup-saved-temps): Add .mii to suffixes.
* lib/gcc-dg.exp (cleanup-saved-temps): Add .mii to suffixes.
* gcc.dg/hoist-register-pressure-1.c: Cleanup hoist rtl dump.
* gcc.dg/hoist-register-pressure-2.c: Ditto.
* gcc.dg/hoist-register-pressure-3.c: Ditto.
* gcc.dg/tree-prof/peel-1.c: Cleanup loop2_unroll rtl dump.
* gcc.dg/tree-prof/unroll-1.c: Ditto.
From-SVN: r193563
Dodji Seketeli [Fri, 16 Nov 2012 15:20:03 +0000 (15:20 +0000)]
PR c++/54875 - Error with alias template that resolves to an enum
Consider this short example:
1 template<typename T>
2 using AddConst = T const;
3
4 enum FwdEnum : int;
5
6 int main() {
7 AddConst<FwdEnum> *ptr = nullptr;
8 }
At line 7, when we build the type for AddConst<FwdEnum> in
lookup_template_class_1, the resulting type is the enum FwdEnum. This
confuses lookup_template_class_1 near the if below, wrongly making it
taking the branch and thus calling tsubst_enum while it shouldn't:
if (TREE_CODE (t) == ENUMERAL_TYPE && !is_dependent_type)
/* Now that the type has been registered on the instantiations
list, we set up the enumerators. Because the enumeration
constants may involve the enumeration type itself, we make
sure to register the type first, and then create the
constants. That way, doing tsubst_expr for the enumeration
constants won't result in recursive calls here; we'll find
the instantiation and exit above. */
tsubst_enum (template_type, t, arglist);
Before the alias template feature, the only reason why TREE_CODE (t)
== ENUMERAL_TYPE would be true is when lookup_template_class_1 is
called for an enum that is a member of a class template. But that
condition can be also true for an alias template instantiation.
So I guess that condition should be changed to TREE_CODE
(template_type) == ENUMERAL_TYPE, to specifically detect the member
enum of a class template case. Note that for the alias template
instantiation case above, template_type points to a TEMPLATE_TYPE_PARM
which name is AddConst.
This is what the patchlet below does.
Bootstrapped and tested on x86_64-unknown-linux-gnu against trunk.
gcc/cp/
* pt.c (lookup_template_class_1): Look at the type of the
potential member enum of class template to determine if we are
actually substituting into a member enum of class template.
gcc/testsuite/
* g++.dg/cpp0x/alias-decl-27.C: New test.
From-SVN: r193562
Tom Tromey [Fri, 16 Nov 2012 15:19:15 +0000 (15:19 +0000)]
configure.ac: Invoke AM_MAINTAINER_MODE.
* configure.ac: Invoke AM_MAINTAINER_MODE.
* aclocal.m4, configure, Makefile.in, asan/Makefile.in,
interception/Makefile.in, sanitizer_common/Makefile.in: Rebuild.
From-SVN: r193561
Matthias Klose [Fri, 16 Nov 2012 15:19:14 +0000 (15:19 +0000)]
t-linux: New file; define MULTIARCH_DIRNAME.
2012-11-16 Matthias Klose <doko@ubuntu.com>
* config/pa/t-linux: New file; define MULTIARCH_DIRNAME.
* config.gcc <hppa*64*-*-linux*, hppa*-*-linux*> (tmake_file):
Include pa/t-linux.
From-SVN: r193560
Uros Bizjak [Fri, 16 Nov 2012 14:53:53 +0000 (15:53 +0100)]
* lib/target-supports.exp
(check_effective_target_has_w_floating_suffix): Use options for c++ only.
(check_effective_target_has_q_floating_suffix): Ditto.
From-SVN: r193559
Jakub Jelinek [Fri, 16 Nov 2012 14:33:44 +0000 (15:33 +0100)]
re PR c++/55337 (ICE tree check: expected sizeof_expr, have alignof_expr in cp_tree_equal, at cp/tree.c:2608)
PR c++/55337
* tree.c (cp_tree_equal) <case ALIGNOF_EXPR>: Use SIZEOF_EXPR_TYPE_P
only on SIZEOF_EXPR.
* g++.dg/template/alignof2.C: New test.
From-SVN: r193558
H.J. Lu [Fri, 16 Nov 2012 12:02:29 +0000 (12:02 +0000)]
Define/use hardware pointer type for stack unwind
PR other/55333
* include/sanitizer/common_interface_defs.h (uhwptr): New type
for hardware pointer.
* sanitizer_common/sanitizer_stacktrace.cc (StackTrace::FastUnwindStack):
Replace uptr with uhwptr for stack unwind.
From-SVN: r193557
Uros Bizjak [Fri, 16 Nov 2012 11:49:08 +0000 (12:49 +0100)]
* ChangeLog: Add ChangeLog entry for my last commit.
From-SVN: r193556
Uros Bizjak [Fri, 16 Nov 2012 11:45:15 +0000 (12:45 +0100)]
mv1.C (dg-options): Add -march=x86-64.
* g++.dg/mv1.C (dg-options): Add -march=x86-64.
* g++.dg/mv6.C (dg-options): Ditto.
From-SVN: r193555
Jakub Jelinek [Fri, 16 Nov 2012 11:40:39 +0000 (12:40 +0100)]
re PR tree-optimization/54073 (SciMark Monte Carlo test performance has seriously decreased in recent GCC releases)
PR target/54073
* config/i386/i386.md (mov<mode>cc): Use comparison_operator
instead of ordered_comparison_operator resp.
ix86_fp_comparison_operator predicates.
* config/i386/i386.c (ix86_expand_fp_movcc): Reject TImode
or for -m32 DImode comparisons.
From-SVN: r193554
Jan Hubicka [Fri, 16 Nov 2012 10:37:25 +0000 (11:37 +0100)]
re PR tree-optimization/54717 (Runtime regression: polyhedron test "rnflow" degraded)
PR tree-optimization/54717
* tree-ssa-pre.c (do_partial_partial_insertion): Consider also edges
with ANTIC_IN.
From-SVN: r193553
Dodji Seketeli [Fri, 16 Nov 2012 08:11:03 +0000 (08:11 +0000)]
Enable building of libsanitizer on sparc linux
libsanitizer/ChangeLog:
* configure.tgt: Enable sparc linux.
From-SVN: r193552
Uros Bizjak [Fri, 16 Nov 2012 07:51:43 +0000 (08:51 +0100)]
* lib/target_suports.exp
(check_effective_target_has_w_floating_suffix): New procedure.
(check_effective_target_has_q_floating_suffix): Ditto.
* g++.dg/cpp0x/gnu_fext-numeric-literals.C: Add dg-error directive
for unsupported non-standard suffix on floating constant.
* g++.dg/cpp0x/std_fext-numeric-literals.C: Ditto.
From-SVN: r193551
Uros Bizjak [Fri, 16 Nov 2012 07:42:19 +0000 (08:42 +0100)]
i386-protos.h (ix86_emit_mode_set): Add third argument.
* config/i386/i386-protos.h (ix86_emit_mode_set): Add third argument.
* config/i386/i386.h (EMIT_MODE_SET): Update.
* config/i386/i386.c (ix86_avx_emit_vzeroupper): New function.
(ix86_emit_mode_set) <AVX_U128>: Call ix86_avx_emit_vzeroupper.
From-SVN: r193550
Ganesh Gopalasubramanian [Fri, 16 Nov 2012 07:18:37 +0000 (07:18 +0000)]
AMD bdver3 enablement
From-SVN: r193549
Ganesh Gopalasubramanian [Fri, 16 Nov 2012 07:17:30 +0000 (07:17 +0000)]
AMD bdver3 enablement
From-SVN: r193548
David S. Miller [Fri, 16 Nov 2012 05:31:46 +0000 (05:31 +0000)]
Fix gcc.c-torture/compile/pr53410-2.c on sparc.
* expmed.c (expand_shift_1): Don't strip non-integral SUBREGs.
From-SVN: r193547
GCC Administrator [Fri, 16 Nov 2012 00:18:13 +0000 (00:18 +0000)]
Daily bump.
From-SVN: r193546
David S. Miller [Thu, 15 Nov 2012 21:24:22 +0000 (21:24 +0000)]
Add support for sparc fused compare-and-branch.
gcc/
2012-11-15 David S. Miller <davem@davemloft.net>
* configure.ac: Add check for assembler SPARC4 instruction
support.
* configure: Rebuild.
* config.in: Add HAVE_AS_SPARC4 section.
* config/sparc/sparc.opt (mcbcond): New option.
* doc/invoke.texi: Document it.
* config/sparc/constraints.md: New constraint 'A' for 5-bit signed
immediates.
* doc/md.texi: Document it.
* config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_CBCOND.
(sparc_option_override): Likewise.
(emit_cbcond_insn): New function.
(emit_conditional_branch_insn): Call it.
(emit_cbcond_nop): New function.
(output_ubranch): Use cbcond, remove label arg.
(output_cbcond): New function.
* config/sparc/sparc-protos.h (output_ubranch): Update.
(output_cbcond): Declare it.
(emit_cbcond_nop): Likewise.
* config/sparc/sparc.md (type attribute): New types 'cbcond'
and uncond_cbcond.
(emit_cbcond_nop): New attribute.
(length attribute): Handle cbcond and uncond_cbcond.
(in_call_delay attribute): Reject cbcond and uncond_cbcond.
(in_branch_delay attribute): Likewise.
(in_uncond_branch_delay attribute): Likewise.
(in_annul_branch_delay attribute): Likewise.
(*cbcond_sp32, *cbcond_sp64): New insn patterns.
(jump): Rewrite into an expander.
(*jump_ubranch, *jump_cbcond): New patterns.
* config/sparc/niagara4.md: Match 'cbcond' in 'n4_cti'.
* config/sparc/sparc.h (AS_NIAGARA4_FLAG): New macro, use it
when target default is niagara4.
(SPARC_SIMM5_P): Define.
* config/sparc/sol2.h (AS_SPARC64_FLAG): Adjust.
(AS_SPARC32_FLAG): Define.
(ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Use
AS_NIAGARA4_FLAG as needed.
From-SVN: r193543
Roland McGrath [Thu, 15 Nov 2012 19:12:53 +0000 (19:12 +0000)]
* MAINTAINERS (Write After Approval): Add myself.
From-SVN: r193542
Marcus Shawcroft [Thu, 15 Nov 2012 18:39:47 +0000 (18:39 +0000)]
soft-fp updated from GLIBC upstream.
From-SVN: r193540
Steve Ellcey [Thu, 15 Nov 2012 17:27:44 +0000 (17:27 +0000)]
expr.c (expand_cond_expr_using_cmove): Use promoted mode for temp.
2012-11-15 Steve Ellcey <sellcey@mips.com>
* expr.c (expand_cond_expr_using_cmove): Use promoted mode for temp.
From-SVN: r193539
Tobias Burnus [Thu, 15 Nov 2012 17:22:21 +0000 (18:22 +0100)]
fmaq.c (fmaq): Merge from GLIBC.
2012-11-15 Tobias Burnus <burnus@net-b.de>
Joseph Myers <joseph@codesourcery.com>
* math/fmaq.c (fmaq): Merge from GLIBC. Fix fma
underflows with small x * y; Fix overflow results
outside round-to-nearest mode; make use of Dekker
and Knuth algorithms use round-to-nearest.
Co-Authored-By: Joseph Myers <joseph@codesourcery.com>
From-SVN: r193538
Tom de Vries [Thu, 15 Nov 2012 16:49:45 +0000 (16:49 +0000)]
re PR tree-optimization/54619 (GCC aborts during compilation with '-O2 -mips16')
2012-11-15 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/54619
* tree-ssa-loop-ivopts.c (get_use_type): New function.
(get_computation_at): Use get_use_type.
(get_computation_cost_at): Declare and set mem_mode. Use mem_mode.
From-SVN: r193537
Dmitry Vyukov [Thu, 15 Nov 2012 16:28:39 +0000 (08:28 -0800)]
MAINTAINERS: (libsanitizer...
* MAINTAINERS: (libsanitizer, asan.c): Add myself,
Kostya Serebryany (kcc@google.com) and
Jakub Jelinek (jakub@redhat.com).
Rename area for Dodji Seketeli (dodji@redhat.com).
From-SVN: r193536
Jason Merrill [Thu, 15 Nov 2012 16:11:56 +0000 (11:11 -0500)]
re PR c++/54903 (Auto + static in-class constant initialization not working)
PR c++/54903
* decl2.c (mark_used): Don't complain about auto in templates.
From-SVN: r193535
H.J. Lu [Thu, 15 Nov 2012 16:00:47 +0000 (16:00 +0000)]
Properly set MULTISUBDIR and gcc_version
* configure.ac: Properly set MULTISUBDIR.
* asan/Makefile.am (gcc_version): New.
* interception/Makefile.am (gcc_version): Likewise.
* sanitizer_common/Makefile.am (gcc_version): Likewise.
* configure: Regenerated.
* asan/Makefile.in: Likewise.
* interception/Makefile.in: Likewise.
* sanitizer_common/Makefile.in: Likewise.
From-SVN: r193534
Jakub Jelinek [Thu, 15 Nov 2012 13:12:36 +0000 (14:12 +0100)]
asan.c (report_error_func): Set DECL_IGNORED_P, don't touch DECL_ASSEMBLER_NAME.
* asan.c (report_error_func): Set DECL_IGNORED_P, don't touch
DECL_ASSEMBLER_NAME.
(asan_init_func): Likewise.
(asan_finish_file): Use void * instead of __asan_global * as
type of __asan_{,un}register_globals. Set DECL_IGNORED_P on
the decls.
From-SVN: r193532
Dodji Seketeli [Thu, 15 Nov 2012 12:36:50 +0000 (12:36 +0000)]
Add myself as asan co-reviewer
ChangeLog:
* MAINTAINERS: (asan.c, related): Add myself.
From-SVN: r193530
Matthias Klose [Thu, 15 Nov 2012 11:58:42 +0000 (11:58 +0000)]
Makefile.in (if_multiarch): Don't use a GNU make 3.81 feature.
2012-11-15 Matthias Klose <doko@ubuntu.com>
* Makefile.in (if_multiarch): Don't use a GNU make 3.81 feature.
From-SVN: r193529
Jason Merrill [Thu, 15 Nov 2012 01:54:00 +0000 (20:54 -0500)]
tests
From-SVN: r193527
Jason Merrill [Thu, 15 Nov 2012 01:53:48 +0000 (20:53 -0500)]
re PR c++/37276 (Trouble with some (C99?) math builtins and namespace std)
PR c++/37276
* decl.c (decls_match): Remove #ifdef around earlier fix.
From-SVN: r193526
Jason Merrill [Thu, 15 Nov 2012 01:53:37 +0000 (20:53 -0500)]
class.c (finish_struct_1): Check virtual functions for missing ABI tags.
* class.c (finish_struct_1): Check virtual functions
for missing ABI tags.
From-SVN: r193525
Jason Merrill [Thu, 15 Nov 2012 01:53:23 +0000 (20:53 -0500)]
re PR c++/55275 (abi_tag attribute doesn't work on explicit specializations of class templates)
PR c++/55275
* pt.c (maybe_process_partial_specialization): Update
DECL_SOURCE_LOCATION for new specializations.
From-SVN: r193524
Jonathan Wakely [Thu, 15 Nov 2012 01:38:17 +0000 (01:38 +0000)]
re PR libstdc++/53841 ([C++11] condition_variable::wait_until() fails with high resolution clocks)
PR libstdc++/53841
* include/std/condition_variable (condition_variable::wait_until):
Handle clocks with higher resolution than __clock_t.
(condition_variable::__wait_until_impl): Remove unnecessary _Clock
parameter.
* testsuite/30_threads/condition_variable/members/53841.cc: New.
From-SVN: r193523
Jan Hubicka [Thu, 15 Nov 2012 01:07:01 +0000 (02:07 +0100)]
re PR bootstrap/55051 (profiledbootstrap failed)
PR bootstrap/55051
* gcov-io.c (gcov_read_summary): Fix array bound check.
From-SVN: r193522
Roland McGrath [Thu, 15 Nov 2012 00:38:07 +0000 (00:38 +0000)]
Consider *-*-nacl* targets ELF
* configure.ac (ENABLE_GOLD): Consider *-*-nacl* targets ELF.
* configure: Regenerate.
From-SVN: r193521
GCC Administrator [Thu, 15 Nov 2012 00:18:38 +0000 (00:18 +0000)]
Daily bump.
From-SVN: r193519
H.J. Lu [Thu, 15 Nov 2012 00:03:37 +0000 (00:03 +0000)]
Add support for multilib run-time libraries
PR other/55291
* configure.ac (--enable-version-specific-runtime-libs): New option.
(AC_CANONICAL_SYSTEM): New.
(AM_ENABLE_MULTILIB): Moved right after AM_INIT_AUTOMAKE.
(toolexecdir): Support multilib.
(toolexeclibdir): Likewise.
(multilib_arg): New.
* Makefile.in: Regenerated.
* aclocal.m4: Likewise.
* configure: Likewise.
* asan/Makefile.in: Likewise.
* interception/Makefile.in: Likewise.
* sanitizer_common/Makefile.in: Likewise.
From-SVN: r193516
Sterling Augustine [Wed, 14 Nov 2012 23:36:50 +0000 (23:36 +0000)]
re PR debug/55328 (ICE: in output_addr_table_entry, at dwarf2out.c:21780 with -gsplit-dwarf)
2012-11-14 Sterling Augustine <saugustine@google.com>
PR debug/55328
* dwarf2out.c (index_address_table_entry): Check a node's refcount.
From-SVN: r193515
Jonathan Wakely [Wed, 14 Nov 2012 23:33:01 +0000 (23:33 +0000)]
re PR libstdc++/55320 (Invalid delete with throwing copy-c'tor passed to std::function)
PR libstdc++/55320
* include/std/functional (function::function(F)): Set _M_manager after
operations that could throw.
(_Function_base::_Ref_manager::_M_init_functor): Use addressof.
* include/tr1/functional
(_Function_base::_Ref_manager::_M_init_functor): Use addressof.
(_Function_base::_Base_manager::_M_get_pointer): Likewise.
* testsuite/20_util/function/cons/55320.cc: New.
* testsuite/20_util/function/cons/addressof.cc: New.
* testsuite/20_util/function/cons/callable.cc: Remove header.
* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error line numbers.
* testsuite/tr1/3_function_objects/function/10.cc: New.
From-SVN: r193514
Jan Hubicka [Wed, 14 Nov 2012 23:14:05 +0000 (00:14 +0100)]
builtins.c (define_builtin): Accept ECF flags and use set_call_expr_flags.
* builtins.c (define_builtin): Accept ECF flags and
use set_call_expr_flags.
(initialize_builtins): Update.
From-SVN: r193513
Jan Hubicka [Wed, 14 Nov 2012 23:03:22 +0000 (00:03 +0100)]
re PR bootstrap/55051 (profiledbootstrap failed)
PR bootstrap/55051
* ipa-inline.c (edge_badness): Improve dumping; fix overflow.
From-SVN: r193512
Jakub Jelinek [Wed, 14 Nov 2012 22:58:01 +0000 (23:58 +0100)]
asan-dg.exp: New file.
* lib/asan-dg.exp: New file.
* gcc.dg/asan/asan.exp: New file.
* g++.dg/dg.exp: Prune also asan tests.
* g++.dg/asan/asan.exp: New file.
* c-c++-common/asan/memcmp-1.c: New test.
From-SVN: r193511
Matthias Klose [Wed, 14 Nov 2012 22:45:25 +0000 (22:45 +0000)]
t-linux64: Add multiarch names in MULTILIB_OSDIRNAMES.
2012-11-14 Matthias Klose <doko@ubuntu.com>
* config/sparc/t-linux64: Add multiarch names in MULTILIB_OSDIRNAMES.
* config/sparc/t-linux: New file; define MULTIARCH_DIRNAME.
* config.gcc <sparc-*-linux*> (tmake_file): Include sparc/t-linux
for 32bit non-biarch configurations.
From-SVN: r193510
Uros Bizjak [Wed, 14 Nov 2012 22:23:51 +0000 (23:23 +0100)]
abi_tag.cc: Adjust expected demangling for 128bit long-double targets.
* testsuite/26_numerics/complex/abi_tag.cc: Adjust expected
demangling for 128bit long-double targets.
From-SVN: r193509
Matthias Klose [Wed, 14 Nov 2012 21:29:15 +0000 (21:29 +0000)]
invoke.texi: Document -print-multiarch.
2012-11-14 Matthias Klose <doko@ubuntu.com>
* doc/invoke.texi: Document -print-multiarch.
* doc/install.texi: Document --enable-multiarch.
* doc/fragments.texi: Document MULTILIB_OSDIRNAMES, MULTIARCH_DIRNAME.
* configure.ac: Add --enable-multiarch option.
* configure: Regenerate.
* Makefile.in (s-mlib): Pass MULTIARCH_DIRNAME to genmultilib.
enable_multiarch, with_float: New macros.
if_multiarch: New macro, define in terms of enable_multiarch.
* genmultilib: Add new argument for the multiarch name.
* gcc.c (multiarch_dir): Define.
(for_each_path): Search for multiarch suffixes.
(driver_handle_option): Handle multiarch option.
(do_spec_1): Pass -imultiarch if defined.
(main): Print multiarch.
(set_multilib_dir): Separate multilib and multiarch names
from multilib_select.
(print_multilib_info): Ignore multiarch names in multilib_select.
* incpath.c (add_standard_paths): Search the multiarch include dirs.
* cppdefault.h (default_include): Document multiarch in multilib
member.
* cppdefault.c: [LOCAL_INCLUDE_DIR, STANDARD_INCLUDE_DIR] Add an
include directory for multiarch directories.
* common.opt: New options --print-multiarch and -imultilib.
* config.gcc <i[34567]86-*-linux* | x86_64-*-linux*> (tmake_file):
Include i386/t-linux.
<i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu> (tmake_file):
Include i386/t-kfreebsd.
<i[34567]86-*-gnu*> (tmake_file): Include i386/t-gnu.
* config/i386/t-linux64: Add multiarch names in
MULTILIB_OSDIRNAMES, define MULTIARCH_DIRNAME.
* config/i386/t-gnu: New file.
* config/i386/t-kfreebsd: Likewise.
* config/i386/t-linux: Likewise.
From-SVN: r193508
Jan Hubicka [Wed, 14 Nov 2012 21:09:58 +0000 (22:09 +0100)]
f95-lang.c (ATTR_NOTHROW_LEAF_MALLOC_LIST): New macro.
* f95-lang.c (ATTR_NOTHROW_LEAF_MALLOC_LIST): New macro.
(gfc_define_builtin): Use set_call_expr_flags.
(gfc_init_builtin_functions): Update.
From-SVN: r193507
Jan Hubicka [Wed, 14 Nov 2012 21:08:52 +0000 (22:08 +0100)]
tree.c (set_call_expr_flags): New function.
* tree.c (set_call_expr_flags): New function.
(local_define_builtin): Use it.
* tree.h (set_call_expr_flags): Declare.
From-SVN: r193506
Paolo Carlini [Wed, 14 Nov 2012 20:29:07 +0000 (20:29 +0000)]
re PR c++/55323 (ICE in expand_aggr_init_1, at cp/init.c:1718)
/cp
2012-11-14 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/55323
* init.c (emit_mem_initializers): Skip arguments == error_mark_node.
/testsuite
2012-11-14 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/55323
* g++.dg/cpp0x/vt-55323.C: New.
From-SVN: r193505
Fabien Chêne [Wed, 14 Nov 2012 20:12:47 +0000 (21:12 +0100)]
re PR c++/11750 (class scope using-declaration lookup not implemented)
gcc/testsuite/ChangeLog
2012-11-14 Fabien Chêne <fabien@gcc.gnu.org>
PR c++/11750
* g++.dg/inherit/vitual9.C: New.
gcc/cp/ChangeLog
2012-11-14 Fabien Chêne <fabien@gcc.gnu.org>
PR c++/11750
* call.c (build_new_method_call_1): Check that the instance type
and the function context are the same before setting the flag
LOOKUP_NONVIRTUAL.
From-SVN: r193504
Uros Bizjak [Wed, 14 Nov 2012 16:47:29 +0000 (17:47 +0100)]
re PR target/47440 (Use LCM for vzeroupper insertion)
PR target/47440
* config/i386/i386.c (gate_insert_vzeroupper): New function.
(rest_of_handle_insert_vzeroupper): Ditto.
(struct rtl_opt_pass pass_insert_vzeroupper): New.
(ix86_option_override): Register vzeroupper insertion pass here.
(ix86_check_avx256_register): Handle SUBREGs properly.
(ix86_init_machine_status): Remove optimize_mode_switching[AVX_U128]
initialization.
From-SVN: r193503
David Edelsohn [Wed, 14 Nov 2012 16:41:21 +0000 (11:41 -0500)]
configure.ac (HAVE_LD_LARGE_TOC): Add AIX test.
* configure.ac (HAVE_LD_LARGE_TOC): Add AIX test.
* configure: Regenerated.
* config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Warn if
other toc options used with cmodel. Disable TARGET_NO_FP_IN_TOC
and TARGET_NO_SUM_IN_TOC if not CMODEL_SMALL. CMODEL_MEDIUM means
CMODEL_LARGE on AIX.
(ASM_SPEC): -mvsx implies -mpwr6. Add -many.
(ASM_DEFAULT_SPEC): Use -mpwr4.
(TARGET_CMODEL): Define.
(SET_CMODEL): Define.
* config/rs6000/rs6000.md (largetoc_high_aix<mode>): New.
(largetoc_high_plus_aix<mode>): New.
(largetoc_low<mode>): Change to mode iterator. Test TARGET_TOC
instead of TARGET_ELF.
(tocref): Remove TARGET_ELF test.
* config/rs6000/rs6000.c (output_toc): Use [TE] for large TOC
symbols on AIX.
* config/rs6000/aix64.opt (mcmodel): New.
From-SVN: r193502
Andreas Tobler [Wed, 14 Nov 2012 15:55:50 +0000 (16:55 +0100)]
i386.c (ix86_get_function_versions_dispatcher): Guard variables with ASM_OUTPUT_TYPE_DIRECTIVE and HAVE_GNU_INDIRECT_FUNCTION...
2012-11-14 Andreas Tobler <andreast@fgznet.ch>
* config/i386/i386.c (ix86_get_function_versions_dispatcher): Guard
variables with ASM_OUTPUT_TYPE_DIRECTIVE and
HAVE_GNU_INDIRECT_FUNCTION where needed.
From-SVN: r193501
H.J. Lu [Wed, 14 Nov 2012 13:45:56 +0000 (13:45 +0000)]
Check __x86_64__ instead of __WORDSIZE
PR other/55292
Backport from upstream revision 167883
* sanitizer_common/sanitizer_linux.cc (internal_mmap): Check
__x86_64__ instead of __WORDSIZE.
(internal_filesize): Likwise.
From-SVN: r193500
H.J. Lu [Wed, 14 Nov 2012 12:21:28 +0000 (12:21 +0000)]
Don't set AC_CONFIG_AUX_DIR
* configure.ac (AC_CONFIG_AUX_DIR): Removed.
* Makefile.in: Regenerated.
* configure: Likewise.
From-SVN: r193499
H.J. Lu [Wed, 14 Nov 2012 11:41:10 +0000 (03:41 -0800)]
Rename libsanitizer/ChangeLog.asan to libsanitizer/ChangeLog
From-SVN: r193498
H.J. Lu [Wed, 14 Nov 2012 11:09:00 +0000 (11:09 +0000)]
Update libsanitizer generated files
* gcc_update: Update libsanitizer generated files.
From-SVN: r193497
GCC Administrator [Wed, 14 Nov 2012 00:18:21 +0000 (00:18 +0000)]
Daily bump.
From-SVN: r193494
H.J. Lu [Wed, 14 Nov 2012 00:02:12 +0000 (00:02 +0000)]
Update configure.ac for GCC tree and remove unused files
PR other/55304
* acinclude.m4: New file.
* Makefile.am (ACLOCAL_AMFLAGS): New.
* configure.ac (AC_PREREQ): Set to 2.64.
(AC_CONFIG_AUX_DIR): Set to "..".
* Makefile.in: Regenerated.
* aclocal.m4: Likewise.
* configure: Likewise.
* asan/Makefile.in: Likewise.
* interception/Makefile.in: Likewise.
* sanitizer_common/Makefile.in: Likewise.
* config.guess: Removed.
* config.sub: Likewise.
* depcomp: Likewise.
* install-sh: Likewise.
* ltmain.sh: Likewise.
* missing: Likewise.
From-SVN: r193491
Ian Lance Taylor [Tue, 13 Nov 2012 23:03:56 +0000 (23:03 +0000)]
common.opt (fPIC, [...]): Create a Negative loop such that any of these options disables the others.
* common.opt (fPIC, fPIE, fpic, fpie): Create a Negative loop such
that any of these options disables the others.
From-SVN: r193489
Richard Henderson [Tue, 13 Nov 2012 22:19:44 +0000 (14:19 -0800)]
Move libsanitizer configure logic to subdirectory
From-SVN: r193487
Sriraman Tallam [Tue, 13 Nov 2012 21:56:30 +0000 (21:56 +0000)]
cgraph.c (insert_new_cgraph_node_version): Use cgraph_get_node instead of cgraph_get_create_node.
2012-11-13 Sriraman Tallam <tmsriram@google.com>
* cgraph.c (insert_new_cgraph_node_version): Use cgraph_get_node
instead of cgraph_get_create_node.
* config/i386/i386.c (ix86_get_function_versions_dispatcher): Move ifunc
not supported code to the end.
* class.c (mark_versions_used): Remove.
(resolve_address_of_overloaded_function): Call target hook
for versioned functions. Refactor to call
get_function_versions_dispatcher.
* decl.c (duplicate_decls): Add comments.
* cp/call.c (get_function_version_dispatcher): Expose function.
(mark_versions_used): Expose function.
* cp/cp-tree.h (mark_versions_used): New declaration.
(get_function_version_dispatcher): Ditto.
* testsuite/g++.dg/mv4.C: Add require ifunc. Change error message.
* testsuite/g++.dg/mv5.C: Add require ifunc.
* testsuite/g++.dg/mv6.C: Add require ifunc.
From-SVN: r193486
Ian Lance Taylor [Tue, 13 Nov 2012 21:25:39 +0000 (21:25 +0000)]
re PR other/55312 (libbacktrace doesn't honor --disable-werror)
PR other/55312
* configure.ac: Only add -Werror if building a target library.
From-SVN: r193485
Martin Jambor [Tue, 13 Nov 2012 18:56:24 +0000 (19:56 +0100)]
re PR tree-optimization/55253 (Revision 193298 miscompiles sqlite with -Os)
2012-11-13 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/55253
* ipa-cp.c (merge_aggregate_lattices): Propagate aggs_contain_variable
flag.
* testsuite/gcc.dg/torture/pr55253.c: New test.
* testsuite/gcc.dg/torture/pr55305.c: Likewise.
From-SVN: r193484
H.J. Lu [Tue, 13 Nov 2012 18:35:32 +0000 (10:35 -0800)]
Workaround PR middle-end/55142
gcc/
2012-11-13 Eric Botcazou <ebotcazou@adacore.com>
H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/55142
* config/i386/i386.c (legitimize_pic_address): Properly handle
REG + CONST.
(ix86_print_operand_address): Set code to 'k' when forcing
addr32 prefix. For x32, zero-extend negative displacement if
it < -16*1024*1024.
gcc/testsuite/
2012-11-13 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/55142
* gcc.target/i386/pr55142-1.c: New file.
* gcc.target/i386/pr55142-2.c: Likewise.
From-SVN: r193483
Uros Bizjak [Tue, 13 Nov 2012 17:22:04 +0000 (18:22 +0100)]
mode-switching.c (create_pre_exit): Use NONDEBUG_INSN_P.
* mode-switching.c (create_pre_exit): Use NONDEBUG_INSN_P.
From-SVN: r193482
Uros Bizjak [Tue, 13 Nov 2012 17:08:13 +0000 (18:08 +0100)]
* ChangeLog: Fix my last entry.
From-SVN: r193481
Uros Bizjak [Tue, 13 Nov 2012 16:59:37 +0000 (17:59 +0100)]
re PR target/41993 ([sh] ICE in create_pre_exit, at mode-switching.c:399)
PR target/41993
* mode-switching.c (create_pre_exit): Set return_copy to last_insn
when copy_start is a function return regno instead of pseudo.
Skip debug instructions in instruction scan loop.
From-SVN: r193480
Dodji Seketeli [Tue, 13 Nov 2012 16:07:39 +0000 (16:07 +0000)]
PR c++/54466 - ICE with alias template which type-id is const qualified
Consider this short example:
template<typename T>
struct X { };
template<typename T>
using Y = const X<T>;
using Z = Y<int>;
G++ crashes in lookup_class_template_1 while trying to build the alias
template instantiation Y<int>.
I think this is indirectly due to the fact that that
lookup_class_template_1 can now yield a const qualified type like
'const X<T>'.
As a consequence, the code in lookup_template_class_1 that was trying
to access the TYPE_STUB_DECL field of the result of
lookup_template_class_1 should now be adjusted to access the
TYPE_STUB_DECL of the main variant of the resulting type instead (and
that is TYPE_MAIN_DECL); because qualified types (constructed with
build_qualified_type) have their TYPE_STUB_DECL set to NULL.
Fixed thus and tested on x86_64-unknown-linux-gnu against trunk.
gcc/cp
PR c++/54466
* pt.c (lookup_template_class_1): TYPE_STUB_DECL should be
accessed on the main variant of the type.
gcc/testsuite/
* g++.dg/cpp0x/alias-decl-26.C: New test file.
In the example of this patch, g++ crashes when trying to build the
alias template Y<int
From-SVN: r193479
Dodji Seketeli [Tue, 13 Nov 2012 15:12:12 +0000 (15:12 +0000)]
Enable libsanitizer just on x86 linux for now
This patch builds libsanitizer only on x86_64 and i?86 linux targets
for now. I guess The build can be enabled on other targets when they
are ready.
ChangeLog:
* configure.ac: Enable libsanitizer just on x86 linux for now.
* configure: Re-generate.
From-SVN: r193478
David Edelsohn [Tue, 13 Nov 2012 14:19:14 +0000 (14:19 +0000)]
configure.ac: Disable libsanitizer on AIX.
* configure.ac: Disable libsanitizer on AIX. Merge libquadmath
sections.
* configure: Regenerate.
From-SVN: r193477
Andrew Stubbs [Tue, 13 Nov 2012 13:31:50 +0000 (13:31 +0000)]
arm.c (arm_emit_coreregs_64bit_shift): Fix comment.
2012-11-13 Andrew Stubbs <ams@codesourcery.com>
Ulrich Weigand <ulrich.weigand@linaro.org>
* config/arm/arm.c (arm_emit_coreregs_64bit_shift): Fix comment.
* config/arm/arm.md (opt, opt_enabled): New attributes.
(enabled): Use opt_enabled.
(ashldi3, ashrdi3, lshrdi3): Add TARGET_NEON case.
(ashldi3): Allow general operands for TARGET_NEON case.
* config/arm/iterators.md (rshifts): New code iterator.
(shift, shifttype): New code attributes.
* config/arm/neon.md (UNSPEC_LOAD_COUNT): New unspec type.
(neon_load_count, ashldi3_neon_noclobber, ashldi3_neon,
signed_shift_di3_neon, unsigned_shift_di3_neon,
ashrdi3_neon_imm_noclobber, lshrdi3_neon_imm_noclobber,
<shift>di3_neon): New patterns.
Co-Authored-By: Ulrich Weigand <ulrich.weigand@linaro.org>
From-SVN: r193476
H.J. Lu [Tue, 13 Nov 2012 12:31:12 +0000 (12:31 +0000)]
Enable x32 check on more i386 tests
* gcc.target/i386/avx256-unaligned-load-2.c: Requre !ia32
instead of lp64.
* gcc.target/i386/avx256-unaligned-store-2.c: Likewise.
* gcc.target/i386/pr49715-2.c: Likewise.
* gcc.target/i386/retarg.c: Likewise. Scan both %rdi and %edi.
From-SVN: r193475
Jakub Jelinek [Tue, 13 Nov 2012 07:38:25 +0000 (08:38 +0100)]
* Makefile.in (asan.o): Depend on $(TM_P_H).
From-SVN: r193472