platform/upstream/gcc.git
12 years agogimple-fold.c (canonicalize_constructor_val): Mark address-taken variables addressable.
Richard Guenther [Wed, 9 Nov 2011 08:32:26 +0000 (08:32 +0000)]
gimple-fold.c (canonicalize_constructor_val): Mark address-taken variables addressable.

2011-11-09  Richard Guenther  <rguenther@suse.de>

* gimple-fold.c (canonicalize_constructor_val): Mark
address-taken variables addressable.

From-SVN: r181197

12 years agounordered_map: Add missing copy constructors.
Jonathan Wakely [Wed, 9 Nov 2011 08:23:30 +0000 (08:23 +0000)]
unordered_map: Add missing copy constructors.

* include/profile/unordered_map: Add missing copy constructors.
* include/profile/unordered_set: Likewise.

From-SVN: r181196

12 years agoPR c++/51027 - accepts alias-declaration without ';'
Dodji Seketeli [Wed, 9 Nov 2011 08:00:58 +0000 (08:00 +0000)]
PR c++/51027 - accepts alias-declaration without ';'

gcc/cp/

* parser.c (cp_parser_alias_declaration): Require ';' at the end
of the declaration.

libstdc++-v3/

* include/ext/pointer.h (rebind): Append missing ';'.

gcc/testsuite

* g++.dg/cpp0x/alias-decl-12.C: New test.
* g++.dg/ext/alias-decl-attr4.C: Append missing ';'.

From-SVN: r181195

12 years agoFix entry
Eric Botcazou [Wed, 9 Nov 2011 07:58:34 +0000 (07:58 +0000)]
Fix entry

From-SVN: r181194

12 years agoPR debug/51032 - ICE in dbxout_type, at dbxout.c:2372
Dodji Seketeli [Wed, 9 Nov 2011 07:51:12 +0000 (07:51 +0000)]
PR debug/51032 - ICE in dbxout_type, at dbxout.c:2372

gcc/cp/

* decl2.c (check_member_template): Accept alias templates and ...
* parser.c (cp_parser_alias_declaration): ... use it here.

gcc/testsuite/

* g++.dg/cpp0x/alias-decl-debug-0.C: New test.

From-SVN: r181193

12 years agore PR fortran/21881 (ICE instead of error for large arrays in derived types)
Francois-Xavier Coudert [Wed, 9 Nov 2011 06:57:10 +0000 (06:57 +0000)]
re PR fortran/21881 (ICE instead of error for large arrays in derived types)

PR fortran/21881
* trans-types.c (gfc_get_dtype): Issue a fatal error instead of
an internal error.

From-SVN: r181192

12 years agore PR tree-optimization/51015 (ice in vect_determine_vectorization_factor with -O3)
Ira Rosen [Wed, 9 Nov 2011 06:41:59 +0000 (06:41 +0000)]
re PR tree-optimization/51015 (ice in vect_determine_vectorization_factor with -O3)

        PR tree-optimization/51015
        * tree-vect-loop.c (vect_determine_vectorization_factor): Expect
        vectype to be set for pattern def stmts.

From-SVN: r181191

12 years agoImplement vect_cmdline_needed properly on sparc.
David S. Miller [Wed, 9 Nov 2011 05:23:02 +0000 (05:23 +0000)]
Implement vect_cmdline_needed properly on sparc.

* lib/target-supports.exp (check_effective_target_sparc_vis): New.
(check_effective_target_vect_cmdline_needed): Use it when sparc*-*-*

From-SVN: r181190

12 years agostl_vector.h (vector::_Alloc_traits): Make private.
Jonathan Wakely [Wed, 9 Nov 2011 01:26:04 +0000 (01:26 +0000)]
stl_vector.h (vector::_Alloc_traits): Make private.

* include/bits/stl_vector.h (vector::_Alloc_traits): Make private.
* include/debug/vector: Add allocator-extended constructors, ensure
move assignment and swap have same allocator propagation semantics
and exceptions specification as base class.
* include/profile/vector: Likewise.
(vector::push_back(_Tp&&)): Forward argument as rvalue.
* testsuite/23_containers/vector/debug/alloc_prop.cc: New.
* doc/xml/manual/status_cxx2011.xml: Clarify status of container
requirements with respect to allocators.
(status.iso.200x): Add anchor for old ID to preserve existing links.

From-SVN: r181189

12 years agofunction.c (bb_active_p): Delete.
Alan Modra [Wed, 9 Nov 2011 01:20:14 +0000 (11:50 +1030)]
function.c (bb_active_p): Delete.

* function.c (bb_active_p): Delete.
(dup_block_and_redirect, active_insn_between): New functions.
(convert_jumps_to_returns, emit_return_for_exit): New functions,
split out from..
(thread_prologue_and_epilogue_insns): ..here.  Delete
shadowing variables.  Don't do prologue register clobber tests
when shrink wrapping already failed.  Delete all last_bb_active
code.  Instead compute tail block candidates for duplicating
exit path.  Remove these from antic set.  Duplicate tails when
reached from both blocks needing a prologue/epilogue and
blocks not needing such.
* ifcvt.c (dead_or_predicable): Test both flag_shrink_wrap and
HAVE_simple_return.
* bb-reorder.c (get_uncond_jump_length): Make global.
* bb-reorder.h (get_uncond_jump_length): Declare.
* cfgrtl.c (rtl_create_basic_block): Comment typo fix.
(rtl_split_edge): Likewise.  Warning fix.
(rtl_duplicate_bb): New function.
(rtl_cfg_hooks): Enable can_duplicate_block_p and duplicate_block.
* Makefile.in (function.o): Update dependencies.

From-SVN: r181188

12 years agoDaily bump.
GCC Administrator [Wed, 9 Nov 2011 00:18:19 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r181187

12 years agore PR fortran/50404 (SIGSEGV in gfc_resolve_close)
Francois-Xavier Coudert [Tue, 8 Nov 2011 23:54:43 +0000 (23:54 +0000)]
re PR fortran/50404 (SIGSEGV in gfc_resolve_close)

PR fortran/50404
* io.c (gfc_resolve_close): CLOSE requires a UNIT.
* gfortran.dg/io_constraints_3.f90: Improve testcase.

From-SVN: r181183

12 years agoFix a darwin10 build problem.
Richard Henderson [Tue, 8 Nov 2011 23:36:33 +0000 (15:36 -0800)]
Fix a darwin10 build problem.

local.cc:113:6: error: only weak aliases are supported in this configuration

* local.cc (_ITM_LB): Use a normal call, not a function alias.

From-SVN: r181182

12 years agore PR fortran/50409 (SIGSEGV in gfc_simplify_expr)
Francois-Xavier Coudert [Tue, 8 Nov 2011 23:15:11 +0000 (23:15 +0000)]
re PR fortran/50409 (SIGSEGV in gfc_simplify_expr)

PR fortran/50409
* expr.c (gfc_simplify_expr): Substrings can't have negative
length.
* gcc/testsuite/gfortran.dg/string_5.f90: Improve testcase.

From-SVN: r181181

12 years agore PR libfortran/47972 (error.c:158:7: warning: return makes pointer from integer...
Francois-Xavier Coudert [Tue, 8 Nov 2011 21:58:47 +0000 (21:58 +0000)]
re PR libfortran/47972 (error.c:158:7: warning: return makes pointer from integer without a cast)

PR libfortran/47972
* runtime/error.c (gf_strerror): Silence warning.

From-SVN: r181180

12 years agoTest for libitm directory present before testing for support.
Richard Henderson [Tue, 8 Nov 2011 21:18:26 +0000 (13:18 -0800)]
Test for libitm directory present before testing for support.

From-SVN: r181179

12 years agotm.texi.in (MODE_CODE_BASE_REG_CLASS): Add address space argument.
Ulrich Weigand [Tue, 8 Nov 2011 17:36:45 +0000 (17:36 +0000)]
tm.texi.in (MODE_CODE_BASE_REG_CLASS): Add address space argument.

* doc/tm.texi.in (MODE_CODE_BASE_REG_CLASS): Add address space
argument.
(REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
* doc/tm.texi: Regenerate.

* config/cris/cris.h (MODE_CODE_BASE_REG_CLASS): Add address
space argument.
(REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
* config/bfin/bfin.h (MODE_CODE_BASE_REG_CLASS): Likewise.
(REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
* config/avr/avr.h (MODE_CODE_BASE_REG_CLASS): Add address space
argument.
(REGNO_MODE_CODE_OK_FOR_BASE_P): Ditto.
* config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
(avr_regno_mode_code_ok_for_base_p): Ditto.
* config/avr/avr.c (avr_mode_code_base_reg_class): Ditto.
(avr_regno_mode_code_ok_for_base_p): Ditto.
(avr_reg_ok_for_addr_p): Pass AS down to
avr_regno_mode_code_ok_for_base_p.

* addresses.h (base_reg_class): Add address space argument.
Pass to MODE_CODE_BASE_REG_CLASS.
(ok_for_base_p_1): Add address space argument.  Pass to
REGNO_MODE_CODE_OK_FOR_BASE_P.
(regno_ok_for_base_p): Add address space argument.  Pass to
ok_for_base_p_1.

* regrename.c (scan_rtx_address): Add address space argument.
Pass address space to regno_ok_for_base_p and base_reg_class.
Update recursive calls.
(scan_rtx): Pass address space to scan_rtx_address.
(build_def_use): Likewise.
* regcprop.c (replace_oldest_value_addr): Add address space
argument.  Pass to regno_ok_for_base_p and base_reg_class.
Update recursive calls.
(replace_oldest_value_mem): Pass address space to
replace_oldest_value_addr.
(copyprop_hardreg_forward_1): Likewise.

* reload.c (find_reloads_address_1): Add address space argument.
Pass address space to base_reg_class and regno_ok_for_base_p.
Update recursive calls.
(find_reloads_address): Pass address space to base_reg_class,
regno_ok_for_base_p, and find_reloads_address_1.
(find_reloads): Pass address space to base_reg_class.
(find_reloads_subreg_address): Likewise.

* ira-costs.c (record_reg_classes): Update calls to base_reg_class.
(ok_for_base_p_nonstrict): Add address space argument.  Pass to
ok_for_base_p_1.
(record_address_regs): Add address space argument.  Pass to
base_reg_class and ok_for_base_p_nonstrict.  Update recursive calls.
(record_operand_costs): Pass address space to record_address_regs.
(scan_one_insn): Likewise.

* caller-save.c (init_caller_save): Update call to base_reg_class.
* ira-conflicts.c (ira_build_conflicts): Likewise.
* reload1.c (maybe_fix_stack_asms): Likewise.

Co-Authored-By: Georg-Johann Lay <avr@gjlay.de>
From-SVN: r181175

12 years agore PR c++/50835 (Lvalue-ness of conditional operator results is incorrect in a functi...
Jason Merrill [Tue, 8 Nov 2011 17:10:09 +0000 (12:10 -0500)]
re PR c++/50835 (Lvalue-ness of conditional operator results is incorrect in a function template)

PR c++/50835
* typeck.c (build_x_conditional_expr): Preserve lvalue/xvalueness.
* tree.c (lvalue_kind) [NON_DEPENDENT_EXPR]: Return clk_ordinary
in C++98.

From-SVN: r181174

12 years agoBuild softfp for c6x
Rainer Orth [Tue, 8 Nov 2011 16:50:37 +0000 (16:50 +0000)]
Build softfp for c6x

* config/c6x/t-elf (LIB2ADD): Add instead of assigning.

From-SVN: r181173

12 years agogengtype.c (write_field_root): Avoid out-of-scope access of newv.
Michael Matz [Tue, 8 Nov 2011 16:47:16 +0000 (16:47 +0000)]
gengtype.c (write_field_root): Avoid out-of-scope access of newv.

* gengtype.c (write_field_root): Avoid out-of-scope access of newv.

* tree-stdarg.c (execute_optimize_stdarg): Accept clobbers.

* tree.h (TREE_CLOBBER_P): New macro.
* gimple.h (gimple_clobber_p): New inline function.
* gimplify.c (gimplify_bind_expr): Add clobbers for all variables
that go out of scope and live in memory.
* tree-ssa-operands.c (get_expr_operands): Transfer volatility also
for constructors.
* cfgexpand.c (decl_to_stack_part): New static variable.
(add_stack_var): Allocate it, and remember mapping.
(fini_vars_expansion): Deallocate it.
(stack_var_conflict_p): Add early outs.
(visit_op, visit_conflict, add_scope_conflicts_1,
add_scope_conflicts): New static functions.
(expand_used_vars_for_block): Don't call add_stack_var_conflict, tidy.
(expand_used_vars): Add scope conflicts.
(expand_gimple_stmt_1): Expand clobbers to nothing.
(expand_debug_expr): Ditto.

* tree-pretty-print.c (dump_generic_node): Dump clobbers nicely.
* tree-ssa-live.c (remove_unused_locals): Remove clobbers that
refer to otherwise unused locals.
* tree-sra.c (build_accesses_from_assign): Ignore clobbers.
* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Clobbers of
SSA names aren't necessary.
(propagate_necessity): Accept and ignore constructors on the rhs,
tidy.
* gimple.c (walk_gimple_op): Accept constructors like mem_rhs.
* tree-ssa-structalias.c (find_func_aliases): Clobbers don't store
any known value.
* tree-ssa-sccvn.c (vn_reference_lookup_3): Ditto, in particular they
don't zero-initialize something.
* tree-ssa-phiopt.c (cond_if_else_store_replacement_1): Ignore
clobber RHS, we don't want PHI nodes with those.

testsuite/
* gcc.dg/tree-ssa/20031015-1.c: Adjust.
* g++.dg/tree-ssa/ehcleanup-1.C: Ditto.
* g++.dg/eh/builtin1.C: Rewrite to not use local variables.
* g++.dg/eh/builtin2.C: Ditto.
* g++.dg/eh/builtin3.C: Ditto.

From-SVN: r181172

12 years agoshared_ptr_base.h (_Sp_counted_ptr): Make 'final'.
Jonathan Wakely [Tue, 8 Nov 2011 16:45:54 +0000 (16:45 +0000)]
shared_ptr_base.h (_Sp_counted_ptr): Make 'final'.

* include/bits/shared_ptr_base.h (_Sp_counted_ptr): Make 'final'.
(_Sp_counted_deleter): Make 'final'. Use allocator_traits.
(_Sp_counted_ptr_inplace): Make 'final'. Use allocator_traits.
Derive from _Sp_counted_ptr instead of _Sp_counted_deleter to use EBO
for the allocator.
(__shared_count, __shared_ptr): Use allocator_traits.
* include/std/future (__future_base::_Result_alloc): Make 'final'. Use
allocator traits.
(__future_base::_Task_state): Make 'final'.
(__future_base::_Deferred_state): Likewise.
(__future_base::_Async_state): Likewise.
* testsuite/20_util/shared_ptr/cons/alloc_min.cc: New.
* testsuite/20_util/shared_ptr/creation/alloc_min.cc: New.
* testsuite/20_util/shared_ptr/creation/private.cc: New.
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust line numbers.
* testsuite/30_threads/packaged_task/cons/alloc_min.cc: New.
* testsuite/30_threads/promise/cons/alloc_min.cc: New.

From-SVN: r181171

12 years agoi386.c (ix86_preferred_simd_mode): Even for TARGET_AVX if not TARGET_PREFER_AVX128...
Jakub Jelinek [Tue, 8 Nov 2011 16:29:51 +0000 (17:29 +0100)]
i386.c (ix86_preferred_simd_mode): Even for TARGET_AVX if not TARGET_PREFER_AVX128 return 32-byte integer vectors.

* config/i386/i386.c (ix86_preferred_simd_mode): Even for TARGET_AVX
if not TARGET_PREFER_AVX128 return 32-byte integer vectors.

* gcc.target/i386/avx-cvt-2.c: Adjust for 32-byte integer vectors
being prefered even for -mavx.
* gcc.target/i386/avx-cvt-3.c: New test.

From-SVN: r181170

12 years agoFix tests for libitm support.
Richard Henderson [Tue, 8 Nov 2011 16:28:30 +0000 (08:28 -0800)]
Fix tests for libitm support.

From-SVN: r181169

12 years agoCheck for libitm support at top-level.
Richard Henderson [Tue, 8 Nov 2011 16:06:25 +0000 (08:06 -0800)]
Check for libitm support at top-level.

From-SVN: r181168

12 years agore PR tree-optimization/51012 (ICE: in fold_convert_loc, at fold-const.c:1897 with...
Richard Guenther [Tue, 8 Nov 2011 15:16:22 +0000 (15:16 +0000)]
re PR tree-optimization/51012 (ICE: in fold_convert_loc, at fold-const.c:1897 with -fno-early-inlining and passing incompatible function ptr)

2011-11-08  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/51012
* ipa-prop.c (update_indirect_edges_after_inlining): Fixup
non-inlinable state.
* cgraph.c (cgraph_make_edge_direct): Likewise.

* gcc.dg/pr51012-1.c: New testcase.
* gcc.dg/pr51012-2.c: Likewise.

From-SVN: r181166

12 years agore PR middle-end/51010 (bad diagnostics: #'ssa_name' not supported by pp_c_expression#]')
Richard Guenther [Tue, 8 Nov 2011 15:14:21 +0000 (15:14 +0000)]
re PR middle-end/51010 (bad diagnostics: #'ssa_name' not supported by pp_c_expression#]')

2011-11-08  Richard Guenther  <rguenther@suse.de>

PR middle-end/51010
c-family/
* c-pretty-print.c (pp_c_expression): Handle SSA_NAMEs.

cp/
* error.c (dump_expr): Handle SSA_NAMEs.

* c-c++-common/uninit-pr51010.c: New testcase.

From-SVN: r181165

12 years agoChangeLog for last change.
Rainer Orth [Tue, 8 Nov 2011 15:13:00 +0000 (15:13 +0000)]
ChangeLog for last change.

From-SVN: r181164

12 years agoFix Solaris/x86 libitm build
Rainer Orth [Tue, 8 Nov 2011 14:58:57 +0000 (14:58 +0000)]
Fix Solaris/x86 libitm build

* configure.tgt: Handle i386 like i[456]86.
* config/generic/tls.h [!HAVE_ARCH_GTM_THREAD] (gtm_thr): Don't
take address.
* config/generic/tls.cc [!HAVE_ARCH_GTM_THREAD ||
!HAVE_ARCH_GTM_THREAD_DISP] (_gtm_thr_tls): New variable.

From-SVN: r181163

12 years agoacinclude.m4 ([GLIBCXX_ENABLE_VISIBILITY]): Rename to [GLIBCXX_ENABLE_LIBSTDCXX_VISIB...
Paolo Carlini [Tue, 8 Nov 2011 14:07:27 +0000 (14:07 +0000)]
acinclude.m4 ([GLIBCXX_ENABLE_VISIBILITY]): Rename to [GLIBCXX_ENABLE_LIBSTDCXX_VISIBILITY]...

2011-11-08  Paolo Carlini  <paolo.carlini@oracle.com>

* acinclude.m4 ([GLIBCXX_ENABLE_VISIBILITY]): Rename to
[GLIBCXX_ENABLE_LIBSTDCXX_VISIBILITY], likewise for the
option itself, to --enable-libstdcxx-visibility.
* configure.ac: Adjust call.
* doc/xml/manual/configure.xml: Update.
* configure: Regenerate.

From-SVN: r181162

12 years agore PR rtl-optimization/47698 (CMOV accessing volatile memory with read side effect)
Eric Botcazou [Tue, 8 Nov 2011 13:44:11 +0000 (13:44 +0000)]
re PR rtl-optimization/47698 (CMOV accessing volatile memory with read side effect)

PR rtl-optimization/47698
* ifcvt.c (noce_operand_ok): Move around comment.

From-SVN: r181161

12 years agore PR regression/50999 (g++.dg/lto/20081109 execute -O2 -flto -flto-partition=1to1...
Richard Guenther [Tue, 8 Nov 2011 13:41:57 +0000 (13:41 +0000)]
re PR regression/50999 (g++.dg/lto/20081109 execute -O2 -flto -flto-partition=1to1 -fno-use-linker-plugin)

2011-11-08  Richard Guenther  <rguenther@suse.de>

PR lto/50999
* lto-opts.c (append_to_collect_gcc_options): Split out from...
(lto_write_options): ... here.  Prepend frontend specific flags.

From-SVN: r181160

12 years agomacros.cc: Avoid -Wall warnings.
Paolo Carlini [Tue, 8 Nov 2011 12:34:40 +0000 (12:34 +0000)]
macros.cc: Avoid -Wall warnings.

2011-11-08  Paolo Carlini  <paolo.carlini@oracle.com>

* testsuite/29_atomics/headers/atomic/macros.cc: Avoid -Wall
warnings.
* testsuite/29_atomics/atomic/cons/user_pod.cc: Likewise.

From-SVN: r181159

12 years agosse.md (*avx_vperm2f128<mode>3_nozero): Emit mask 0x12 and 0x20 as vinsert[fi]128...
Jakub Jelinek [Tue, 8 Nov 2011 12:11:27 +0000 (13:11 +0100)]
sse.md (*avx_vperm2f128<mode>3_nozero): Emit mask 0x12 and 0x20 as vinsert[fi]128 instead of vperm2[fi]128.

* config/i386/sse.md (*avx_vperm2f128<mode>3_nozero): Emit mask
0x12 and 0x20 as vinsert[fi]128 instead of vperm2[fi]128.

From-SVN: r181158

12 years agotree-vect-stmts.c (vectorizable_call): Add SLP_NODE argument.
Jakub Jelinek [Tue, 8 Nov 2011 12:09:57 +0000 (13:09 +0100)]
tree-vect-stmts.c (vectorizable_call): Add SLP_NODE argument.

* tree-vect-stmts.c (vectorizable_call): Add SLP_NODE argument.
Handle vectorization of SLP calls.
(vect_analyze_stmt): Adjust caller, add call to it for SLP too.
(vect_transform_stmt): Adjust vectorizable_call caller, remove
assertion.
* tree-vect-slp.c (vect_get_and_check_slp_defs): For calls start
with op_idx 3.
(vect_build_slp_tree): Allow CALL_EXPR.

* lib/target-supports.exp (check_effective_target_vect_call_sqrtf,
check_effective_target_vect_call_copysignf,
check_effective_target_vect_call_lrint): New procedures.
* gcc.dg/vect/vect.exp: Run fast-math-bb-slp* tests using
$VECT_SLP_CFLAGS with -ffast-math.
* gcc.dg/vect/fast-math-vect-call-1.c: New test.
* gcc.dg/vect/fast-math-vect-call-2.c: New test.
* gcc.dg/vect/fast-math-bb-slp-call-1.c: New test.
* gcc.dg/vect/fast-math-bb-slp-call-2.c: New test.

From-SVN: r181157

12 years agore PR libstdc++/51018 (Test failures on NetBSD)
Jonathan Wakely [Tue, 8 Nov 2011 12:02:26 +0000 (12:02 +0000)]
re PR libstdc++/51018 (Test failures on NetBSD)

PR libstdc++/51018
* testsuite/30_threads/thread/native_handle/typesizes.cc: Do not run
on netbsd.

From-SVN: r181156

12 years agogimple-fold.c (canonicalize_constructor_val): Make sure we have referenced vars setup...
Richard Guenther [Tue, 8 Nov 2011 11:23:11 +0000 (11:23 +0000)]
gimple-fold.c (canonicalize_constructor_val): Make sure we have referenced vars setup before adding to them.

2011-11-08  Richard Guenther  <rguenther@suse.de>

* gimple-fold.c (canonicalize_constructor_val): Make sure
we have referenced vars setup before adding to them.

From-SVN: r181155

12 years agoMerge from transactional-memory branch.
Aldy Hernandez [Tue, 8 Nov 2011 11:13:41 +0000 (11:13 +0000)]
Merge from transactional-memory branch.

From-SVN: r181154

12 years agore PR libfortran/47970 (c99_functions.c:611:5: warning: implicit declaration of funct...
Francois-Xavier Coudert [Tue, 8 Nov 2011 10:31:04 +0000 (10:31 +0000)]
re PR libfortran/47970 (c99_functions.c:611:5: warning: implicit declaration of function 'round')

PR libfortran/47970
* intrinsics/c99_functions.c (round): Move higher in the file.

From-SVN: r181153

12 years agoFix context handling of alias-declaration
Dodji Seketeli [Tue, 8 Nov 2011 10:27:34 +0000 (10:27 +0000)]
Fix context handling of alias-declaration

gcc/cp/

* decl.c (start_decl): Update comment.
* error.c (dump_alias_template_specialization): Dump the context
of the specialization.
* parser.c (cp_parser_alias_declaration): Call pop_scope on the
pushed scope yielded by start_decl.

gcc/testsuite

* g++.dg/cpp0x/alias-decl-11.C: New test.

From-SVN: r181152

12 years agore PR c++/50864 (ICE with decltype and "declval" from another namespace)
Paolo Carlini [Tue, 8 Nov 2011 10:23:53 +0000 (10:23 +0000)]
re PR c++/50864 (ICE with decltype and "declval" from another namespace)

/cp
2011-11-08  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/50864
* parser.c (cp_parser_postfix_dot_deref_expression): Reject invalid
uses of '->' and '.' as postfix-expression in namespace scope.

/testsuite
2011-11-08  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/50864
* g++.dg/parse/template26.C: New.
* g++.dg/template/crash45.C: Adjust dg-error string.

From-SVN: r181151

12 years agore PR fortran/50334 (interaction between -Wuninitialized and -finit-*)
Francois-Xavier Coudert [Tue, 8 Nov 2011 08:11:10 +0000 (08:11 +0000)]
re PR fortran/50334 (interaction between -Wuninitialized and -finit-*)

PR fortran/50334
* invoke.texi (-finit-*): Document interaction with
-Wuninitialized.

From-SVN: r181150

12 years agocompare_tests: Add ability to compare all .sum files from two build directories.
Quentin Neill [Tue, 8 Nov 2011 04:28:04 +0000 (04:28 +0000)]
compare_tests: Add ability to compare all .sum files from two build directories.

2011-11-07   Quentin Neill  <quentin.neill@amd.com>

* compare_tests: Add ability to compare all .sum
files from two build directories.

From-SVN: r181149

12 years agore PR libstdc++/51018 (Test failures on NetBSD)
Paolo Carlini [Tue, 8 Nov 2011 01:39:44 +0000 (01:39 +0000)]
re PR libstdc++/51018 (Test failures on NetBSD)

2011-11-07  Paolo Carlini  <paolo.carlini@oracle.com>

PR libstdc++/51018
* include/profile/impl/profiler_node.h (__stack_hash::
operator()(__stack_t)): Just use std::size_t everywhere.

From-SVN: r181147

12 years agofuture (__future_base::_Ptr): Use alias-declaration.
Jonathan Wakely [Tue, 8 Nov 2011 01:23:53 +0000 (01:23 +0000)]
future (__future_base::_Ptr): Use alias-declaration.

* include/std/future (__future_base::_Ptr): Use alias-declaration.
(__is_same_pkgdtask): Rename to __constrain_pkgdtask and use decay
instead of remove_reference so that cv-quals are removed.

From-SVN: r181145

12 years agore PR c++/50848 (ICE in derived template class missing using for member of template...
Jason Merrill [Tue, 8 Nov 2011 01:10:43 +0000 (20:10 -0500)]
re PR c++/50848 (ICE in derived template class missing using for member of template base class)

PR c++/50848
* pt.c (tsubst_copy_and_build) [CALL_EXPR]: Don't crash
if lookup finds a non-function.

From-SVN: r181143

12 years agostdc++.h: Add cstdalign.
Ed Smith-Rowland [Tue, 8 Nov 2011 01:02:06 +0000 (01:02 +0000)]
stdc++.h: Add cstdalign.

2011-11-08  Ed Smith-Rowland  <3dw4rd@verizon.net>

* include/precompiled/stdc++.h: Add cstdalign.

From-SVN: r181142

12 years agocomplex (complex<>::real(), [...]): Remove redundant const qualifiers.
Paolo Carlini [Tue, 8 Nov 2011 00:49:47 +0000 (00:49 +0000)]
complex (complex<>::real(), [...]): Remove redundant const qualifiers.

2011-11-07  Paolo Carlini  <paolo.carlini@oracle.com>

* include/std/complex (complex<>::real(), complex<>::imag()):
Remove redundant const qualifiers.

From-SVN: r181141

12 years agoptr_traits.h (__rebind): Replace with...
Jonathan Wakely [Tue, 8 Nov 2011 00:33:45 +0000 (00:33 +0000)]
ptr_traits.h (__rebind): Replace with...

* include/bits/ptr_traits.h (__rebind): Replace with...
(rebind): Implement using alias-declaration.
* include/ext/pointer.h (__rebind): Replace with...
(rebind): Implement using alias-declaration.
* include/bits/alloc_traits.h (__rebind_alloc, __rebind_traits):
Replace with...
(rebind_alloc, rebind_traits): Implement using alias-declaration.
* include/ext/alloc_traits.h (rebind): Use rebind_alloc instead of
__rebind_alloc.
* include/std/scoped_allocator (rebind): Likewise.

From-SVN: r181139

12 years agoDaily bump.
GCC Administrator [Tue, 8 Nov 2011 00:18:52 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r181138

12 years agoAllow libcalls to be installed for legacy __sync optabs.
Richard Henderson [Mon, 7 Nov 2011 23:11:55 +0000 (15:11 -0800)]
Allow libcalls to be installed for legacy __sync optabs.

This allows a target which implements the __sync interfaces
in libgcc to continue to use them transparently with the
new __atomic builtins.

It is assumed that these libgcc routines DO NOT use spinlocks.
This is true of all extant libgcc instances.

        * optabs.h (OTI_sync_compare_and_swap, OTI_sync_lock_test_and_set,
        OTI_sync_old_add, OTI_sync_old_sub, OTI_sync_old_ior,
        OTI_sync_old_and, OTI_sync_old_xor, OTI_sync_old_nand,
        OTI_sync_new_add, OTI_sync_new_sub, OTI_sync_new_ior,
        OTI_sync_new_and, OTI_sync_new_xor, OTI_sync_new_nand): Move and
        rename from the direct_optab_index enum.
        (sync_compare_and_swap_optab, sync_lock_test_and_set_optab,
        sync_old_add_optab, sync_old_sub_optab, sync_old_ior_optab,
        sync_old_and_optab, sync_old_xor_optab, sync_old_nand_optab,
        sync_new_add_optab, sync_new_sub_optab, sync_new_ior_optab,
        sync_new_and_optab, sync_new_xor_optab, sync_new_nand_optab): Read
        from the optab_table, not the direct_optab_table.
        (init_sync_libfuncs): Declare.
        (can_compare_and_swap_p): Update parameters.
        * optabs.c (init_sync_libfuncs_1, init_sync_libfuncs): New.
        (can_compare_and_swap_p): Add allow_libcall parameter; if true,
        test for the legacy compare-and-swap libcall.
        (expand_atomic_exchange): Use the legacy test-and-set libcall.
        (expand_atomic_compare_and_swap): Use the legacy CAS libcall.
        (struct atomic_op_functions): Update for optab type changes.
        (maybe_emit_op): Likewise.
        (expand_atomic_fetch_op): Use the legacy fetch-op libcalls.
        * builtins.c (fold_builtin_atomic_always_lock_free): Update call
        to can_compare_and_swap_p.
        * omp-low.c (expand_omp_atomic_fetch_op): Likewise.
        (expand_omp_atomic_pipeline): Likewise.
        * genopinit.c (optabs): Make sync_old_*_optab, sync_new_*_optab,
        sync_compare_and_swap_optab, sync_lock_test_and_set_optab regular
        optabs.

From-SVN: r181134

12 years agore PR c++/50863 ([C++0x] list-initialization with lambda fails to deduce constructor...
Jason Merrill [Mon, 7 Nov 2011 22:52:32 +0000 (17:52 -0500)]
re PR c++/50863 ([C++0x] list-initialization with lambda fails to deduce constructor argument)

PR c++/50863
* parser.c (cp_parser_initializer_list): Parse C99
array designators tentatively.

From-SVN: r181132

12 years agore PR c++/50870 ([C++0x] [4.6/4.7 Regression] ICE with decltype, operator->, and...
Jason Merrill [Mon, 7 Nov 2011 22:52:23 +0000 (17:52 -0500)]
re PR c++/50870 ([C++0x] [4.6/4.7 Regression] ICE with decltype, operator->, and default template arguments)

PR c++/50870
* pt.c (tsubst_copy): Handle NAMESPACE_DECL.
(tsubst_copy_and_build) [COMPONENT_REF]: Handle a still-dependent
object.

From-SVN: r181131

12 years agomutex (call_once): Store closure in __once_functor as bound function wrapper might...
Jonathan Wakely [Mon, 7 Nov 2011 22:26:15 +0000 (22:26 +0000)]
mutex (call_once): Store closure in __once_functor as bound function wrapper might not be copyable.

* include/std/mutex (call_once): Store closure in __once_functor
as bound function wrapper might not be copyable.

From-SVN: r181128

12 years agore PR libfortran/49188 (Mismatch between -fsign-zero documentation and formatted...
Francois-Xavier Coudert [Mon, 7 Nov 2011 22:21:54 +0000 (22:21 +0000)]
re PR libfortran/49188 (Mismatch between -fsign-zero documentation and formatted output)

PR libfortran/49188
PR libfortran/49336
* invoke.texi: Fix documentation of fsign-zero option. Remove
contractions.
* intrinsic.texi: Fix ATAN2 documentation for signed zeros.
Remove contractions.
* gfortran.texi: Remove contractions.

From-SVN: r181127

12 years agore PR target/51007 (Quadmath I/O doesn't work on MinGW)
Kai Tietz [Mon, 7 Nov 2011 22:03:51 +0000 (23:03 +0100)]
re PR target/51007 (Quadmath I/O doesn't work on MinGW)

        PR target/51007
        * quadmath-imp.h (ieee854_float128): Adjust
        for ms-bitfield layout.

From-SVN: r181125

12 years agopt.c (tsubst_copy_and_build): Fix qualified_name_lookup_error call in case COMPONENT_REF.
Paolo Carlini [Mon, 7 Nov 2011 22:03:27 +0000 (22:03 +0000)]
pt.c (tsubst_copy_and_build): Fix qualified_name_lookup_error call in case COMPONENT_REF.

2011-11-07  Paolo Carlini  <paolo.carlini@oracle.com>

* pt.c (tsubst_copy_and_build): Fix qualified_name_lookup_error
call in case COMPONENT_REF.

From-SVN: r181124

12 years agoi386-bultin-types.def (V8SI_FTYPE_V4DF_V4DF): Add.
Jakub Jelinek [Mon, 7 Nov 2011 21:37:37 +0000 (22:37 +0100)]
i386-bultin-types.def (V8SI_FTYPE_V4DF_V4DF): Add.

* config/i386/i386-bultin-types.def (V8SI_FTYPE_V4DF_V4DF): Add.
* config/i386/i386.c (enum ix86_builtins): Add
IX86_BUILTIN_VEC_PACK_SFIX256.
(bdesc_args): Add __builtin_ia32_vec_pack_sfix256.
(ix86_expand_args_builtin): Handle V8SI_FTYPE_V4DF_V4DF.
(ix86_builtin_vectorized_function): Also vectorize lrint using
256-bit vectors for -mavx.

From-SVN: r181122

12 years agoconstraints.md: New file.
Anatoly Sokolov [Mon, 7 Nov 2011 21:33:24 +0000 (01:33 +0400)]
constraints.md: New file.

* config/cris/constraints.md: New file.
* config/cris/cris.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
CRIS_CONST_OK_FOR_LETTER_P, CONST_OK_FOR_CONSTRAINT_P,
CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_MEMORY_CONSTRAINT,
EXTRA_CONSTRAINT, EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_R,
EXTRA_CONSTRAINT_T, EXTRA_CONSTRAINT_S, EXTRA_CONSTRAINT_U): Remove.
* config/cris/cris.c: Incule "tm-constrs.h".
(cris_print_operand): Use satisfies_constraint_O.
(cris_normal_notice_update_cc, cris_rtx_costs): Use
satisfies_constraint_I.
(cris_address_cost): Use satisfies_constraint_L.
* config/cris/cris.md: Include "constraints.md".
(*mov_side<mode>, *mov_sidesisf, *mov_side<mode>_mem,
*mov_sidesisf_mem, *clear_side<mode>, *ext_sideqihi,
*ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>,
*extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side,
*extop<mode>si_swap_side): Use satisfies_constraint_N and
satisfies_constraint_J.
(moversideqi movemsideqi mover2side peephole2): Use
satisfies_constraint_N and satisfies_constraint_J.
(andu peephole2): Use satisfies_constraint_I and
satisfies_constraint_O.

From-SVN: r181120

12 years agoatomic_base.h (atomic_thread_fence): Revert.
Andrew MacLeod [Mon, 7 Nov 2011 21:32:52 +0000 (21:32 +0000)]
atomic_base.h (atomic_thread_fence): Revert.

2011-11-07  Andrew MacLeod  <amacleod@redhat.com>

* include/bits/atomic_base.h (atomic_thread_fence): Revert.
(atomic_signal_fence): Revert.

From-SVN: r181119

12 years agoPR c++/45114 - Support C++11 alias-declaration
Dodji Seketeli [Mon, 7 Nov 2011 21:28:50 +0000 (22:28 +0100)]
PR c++/45114 - Support C++11 alias-declaration

gcc/cp/

* cp-tree.h (TYPE_DECL_ALIAS_P, TYPE_ALIAS_P)
(DECL_TYPE_TEMPLATE_P, DECL_ALIAS_TEMPLATE_P): New accessor
macros.
(TYPE_TEMPLATE_INFO): Get template info of an alias template
specializations from its TYPE_DECL.
(SET_TYPE_TEMPLATE_INFO): Set template info of alias template
specializations into its TYPE_DECL.
(DECL_CLASS_TEMPLATE_P): Re-write using the new
DECL_TYPE_TEMPLATE_P.
(enum cp_decl_spec): Add new ds_alias enumerator.
(alias_type_or_template_p, alias_template_specialization_p):
Declare new functions.
* parser.c (cp_parser_alias_declaration): New static function.
(cp_parser_check_decl_spec): Add "using" name for the `alias'
declspec.
(cp_parser_type_name): Update comment.  Support simple-template-id
representing alias template specializations in c++0x mode.
(cp_parser_qualifying_entity): Update comment.  Use
cp_parser_type_name.
(cp_parser_block_declaration): Handle alias-declaration in c++11.
Update comment.
(cp_parser_template_id): Handle specializations of alias
templates.
(cp_parser_member_declaration): Add alias-declaration production
to comment.  Support alias-declarations.
(cp_parser_template_declaration_after_export): Handle alias
templates in c++11.
* decl.c (make_typename_type, make_unbound_class_template): Accept
alias templates.
(grokdeclarator): Set TYPE_DECL_ALIAS_P on alias
declarations.
* decl2.c (grokfield): Move template creation after setting up the
TYPE_DECL of the alias, so that the TEMPLATE_DECL of the alias
template actually carries the right type-id of the alias
declaration.
* pt.c (alias_type_or_template_p)
(alias_template_specialization_p): Define new public functions.
(maybe_process_partial_specialization): Reject partial
specializations of alias templates.
(primary_template_instantiation_p): Consider alias template
instantiations.
(push_template_decl_real): Assert that TYPE_DECLs of alias
templates are different from those of class template.  Store
template info onto the TYPE_DECL of the alias template.
(convert_template_argument): Strip aliases from template
arguments.
(lookup_template_class_1): Handle the creation of the
specialization of an alias template.
(tsubst_decl): Create a substituted copy of the TYPE_DECL of an
member alias template.
(tsubst): Handle substituting into the type of an alias template.
Handle substituting UNBOUND_CLASS_TEMPLATE into
BOUND_TEMPLATE_TEMPLATE_PARM.
(do_type_instantiation): Better diagnostics when trying to
explicitely instantiate a non-class template.
* search.c (lookup_field_1, lookup_field_r): Support looking up
alias templates.
* semantics.c (finish_template_type): For instantiations of alias
templates, return the TYPE_DECL of the actual alias and not the
one of the aliased type.
* error.c (dump_alias_template_specialization): New static
function.
(dump_type): Handle printing of alias templates and their
specializations.  templates.
(dump_aggr_type): For specialization of alias templates, fetch
arguments from the right place.
(dump_decl): Print an alias-declaration like `using decl = type;'
(dump_template_decl):  Support printing of alias templates.

gcc/testsuite/

* g++.dg/cpp0x/alias-decl-0.C: New test case.
* g++.dg/cpp0x/alias-decl-1.C: Likewise.
* g++.dg/cpp0x/alias-decl-3.C: Likewise.
* g++.dg/cpp0x/alias-decl-4.C: Likewise.
* g++.dg/cpp0x/alias-decl-6.C: Likewise.
* g++.dg/cpp0x/alias-decl-7.C: Likewise.
* g++.dg/cpp0x/alias-decl-8.C: Likewise.
* g++.dg/cpp0x/alias-decl-9.C: Likewise.
* g++.dg/cpp0x/alias-decl-10.C: Likewise.
* g++.dg/ext/alias-decl-attr1.C: Likewise.
* g++.dg/ext/alias-decl-attr2.C: Likewise.
* g++.dg/ext/alias-decl-attr3.C: Likewise.
* g++.dg/ext/alias-decl-attr4.C: Likewise.

From-SVN: r181118

12 years agoi386.c (ix86_builtin_vectorized_function): Handle BUILT_IN_IRINT, BUILT_IN_IRINTF...
Uros Bizjak [Mon, 7 Nov 2011 21:27:01 +0000 (22:27 +0100)]
i386.c (ix86_builtin_vectorized_function): Handle BUILT_IN_IRINT, BUILT_IN_IRINTF, BUILT_IN_LLRINT and BUILT_IN_LLRINTF.

* config/i386/i386.c (ix86_builtin_vectorized_function): Handle
BUILT_IN_IRINT, BUILT_IN_IRINTF, BUILT_IN_LLRINT and BUILT_IN_LLRINTF.

From-SVN: r181116

12 years ago* gcc.dg/pragma-align-2.c: Compile with -std=gnu99.
Eric Botcazou [Mon, 7 Nov 2011 21:02:57 +0000 (21:02 +0000)]
* gcc.dg/pragma-align-2.c: Compile with -std=gnu99.

From-SVN: r181114

12 years agooptabs.c (get_atomic_op_for_code): Fill in optab table at runtime so SWITCHABLE_TARGE...
Andrew MacLeod [Mon, 7 Nov 2011 20:10:03 +0000 (20:10 +0000)]
optabs.c (get_atomic_op_for_code): Fill in optab table at runtime so SWITCHABLE_TARGET can change the valuies...

2011-11-07  Andrew MacLeod  <amacleod@redhat.com>

* optabs.c (get_atomic_op_for_code): Fill in optab table at runtime so
SWITCHABLE_TARGET can change the valuies during compilation.
(expand_atomic_fetch_op): handle parameter changes ripples for
get_atomic_op_for_code call.

From-SVN: r181112

12 years agoatomic_base.h (atomic_thread_fence): Call builtin.
Andrew MacLeod [Mon, 7 Nov 2011 20:06:39 +0000 (20:06 +0000)]
atomic_base.h (atomic_thread_fence): Call builtin.

2011-11-07  Andrew MacLeod  <amacleod@redhat.com>

libstdc++-v3
* include/bits/atomic_base.h (atomic_thread_fence): Call builtin.
(atomic_signal_fence): Call builtin.
(atomic_flag::test_and_set): Call __atomic_exchange when it is lockfree,
otherwise fall back to call __sync_lock_test_and_set.
(atomic_flag::clear): Call __atomic_store when it is lockfree,
otherwise fall back to call __sync_lock_release.

gcc
* doc/extend.texi: Docuemnt behaviour change for __atomic_exchange and
__atomic_store.
* optabs.c (expand_atomic_exchange): Expand to __sync_lock_test_and_set
only when originated from that builtin.
(expand_atomic_store): Expand to __sync_lock_release when originated
from that builtin.
* builtins.c (expand_builtin_sync_lock_test_and_set): Add flag that
expand_atomic_exchange call originated from here.
(expand_builtin_sync_lock_release): Add flag that expand_atomic_store
call originated from here.
(expand_builtin_atomic_exchange): Add origination flag.
(expand_builtin_atomic_store): Add origination flag.
* expr.h (expand_atomic_exchange, expand_atomic_store): Add boolean
parameters to indicate implementation fall back options.

From-SVN: r181111

12 years agore PR fortran/50919 ([OOP] Don't use vtable for NON_OVERRIDABLE TBP)
Janus Weil [Mon, 7 Nov 2011 18:41:12 +0000 (19:41 +0100)]
re PR fortran/50919 ([OOP] Don't use vtable for NON_OVERRIDABLE TBP)

2011-11-07  Janus Weil  <janus@gcc.gnu.org>

PR fortran/50919
* class.c (add_proc_comp): Don't add non-overridable procedures to the
vtable.
* resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
Don't generate a dynamic _vptr call for non-overridable procedures.

2011-11-07  Janus Weil  <janus@gcc.gnu.org>

PR fortran/50919
* gfortran.dg/typebound_call_21.f03: New.

From-SVN: r181107

12 years agoavr.c (output_reload_in_const): Can handle CONSTANT_P now, not only CONST_INT and...
Georg-Johann Lay [Mon, 7 Nov 2011 18:22:59 +0000 (18:22 +0000)]
avr.c (output_reload_in_const): Can handle CONSTANT_P now, not only CONST_INT and CONST_DOUBLE.

* config/avr/avr.c (output_reload_in_const): Can handle CONSTANT_P
now, not only CONST_INT and CONST_DOUBLE.
(output_movqi): Use output_reload_in_const.
(output_reload_inhi): Ditto.
(output_reload_insisf): Move assertion to output_reload_in_const.
(avr_out_reload_inpsi): Ditto.

From-SVN: r181106

12 years agolibgcov.c (struct gcov_fn_buffer): New struct.
Nathan Sidwell [Mon, 7 Nov 2011 18:14:46 +0000 (18:14 +0000)]
libgcov.c (struct gcov_fn_buffer): New struct.

libgcc/
* libgcov.c (struct gcov_fn_buffer): New struct.
(buffer_fn_data): New helper.
(gcov_exit): Rework for new gcov data structures.

gcc/
* gcov.c (object_summary): Replace with ...
(object_runs): ... this.
(process_file): Remove functions with no data.
(generate_results): Ignore files with no lines.
(release_function): New helper, broken out of ...
(release_structures): ... here.  Use it.
(read_count_file): Adjust for new data file format.
(output_lines): Use object_runs.
* gcov-io.h (GCOV_TAG_OBJECT_SUMMARY): Obsolete.
(struct gcov_ctr_info): Move definition.
(struct gcov_fn_info): Add key field, use gcov_ctr_info for
trailing array.
(struct gcov_info): Add merge function array, remove mask and
counts.  Trailing array is array of pointers to function info.
* coverage.c (struct function_list): Replace counter numbers with
counter arrays.  Add fndecl field.  GTYify.
(counts_entry): Remove chain workspace.
(functions_head): GTYify.
(prg_n_ctrs): Remove.
(fn_v_ctrs): New.
(tree_ctr_tables): Remove.
(read_counts_file): Cope with blank entries and expect program
summaries before functions.  Don't warn on missing entries.
(coverage_counter_alloc): Allocate individual function arrays.
(tree_coverage_counter_ref, tree_coverage_counter_addr): Adjust
for individual function arrays.
(coverage_end_function): GTYify function list object. Finalize
function's counter arrays.
(build_var): New.  Create a counter-related variable with
appropriate linkage.
(build_fn_info_type): Adjust for new runtime structure.
(build_fn_info_value): Rename to ...
(build_fn_info): ... here.  Build new format data.
(build_ctr_info_type, build_ctr_info_value): Remove.
(build_info_type): New. Build new format data structure.
(build_info): Adjust for new format data.
(create_coverage): Likewise.
* gcov-dump.c (tag_function): Recognize placeholders.

gcc/testsuite/
* gcc.dg/profile-dir-1.c: Adjust final scan.
* gcc.dg/profile-dir-2.c: Adjust final scan.
* gcc.dg/profile-dir-3.c: Adjust final scan.
* gcc.misc-tests/gcov.exp: Adjust regexp.
* gcc.misc-tests/gcov-12.c: New.
* gcc.misc-tests/gcov-13.c: New.
* gcc.misc-tests/gcovpart-13b.c: New.
* gcc.misc-tests/gcov-14.c: New.

From-SVN: r181105

12 years agore PR target/49313 (Inefficient libgcc implementations for avr)
Georg-Johann Lay [Mon, 7 Nov 2011 18:08:35 +0000 (18:08 +0000)]
re PR target/49313 (Inefficient libgcc implementations for avr)

PR target/49313
* config/avr/lib1funcs.S (__divmodhi4, __divmodsi4): Tweak speed.

From-SVN: r181104

12 years agoconstraints.md (Cm2): New constraint for int -2.
Georg-Johann Lay [Mon, 7 Nov 2011 18:07:56 +0000 (18:07 +0000)]
constraints.md (Cm2): New constraint for int -2.

* config/avr/constraints.md (Cm2): New constraint for int -2.
* config/avr/avr.md (addqi3): Use it. New alternatives for +/-2.
(*negqihi2): New insn.

From-SVN: r181103

12 years agore PR c++/35688 (template visibility not overridden by template arguments)
Jason Merrill [Mon, 7 Nov 2011 17:51:40 +0000 (12:51 -0500)]
re PR c++/35688 (template visibility not overridden by template arguments)

PR c++/35688
* decl2.c (constrain_visibility): Return void.  Add tmpl parm
which gives the constraint priority over an attribute.
(constrain_visibility_for_template, determine_visibility): Adjust.
* pt.c (instantiate_class_template_1): Call determine_visibility.

From-SVN: r181102

12 years agoadd PR tag
Jason Merrill [Mon, 7 Nov 2011 17:51:32 +0000 (12:51 -0500)]
add PR tag

From-SVN: r181101

12 years agore PR c++/33255 (A warning for "unused" typedefs?)
Jason Merrill [Mon, 7 Nov 2011 17:51:24 +0000 (12:51 -0500)]
re PR c++/33255 (A warning for "unused" typedefs?)

PR c++/33255
* decl.c (save_function_data): Clear local_typedefs.

From-SVN: r181100

12 years agodecl.c (cp_finish_decl): Only make_tree_vector if we're calling check_initializer.
Jason Merrill [Mon, 7 Nov 2011 17:51:16 +0000 (12:51 -0500)]
decl.c (cp_finish_decl): Only make_tree_vector if we're calling check_initializer.

* decl.c (cp_finish_decl): Only make_tree_vector if we're calling
check_initializer.

From-SVN: r181099

12 years agoAppend to HOST_LIBGCC2_CFLAGS in libgcc
Rainer Orth [Mon, 7 Nov 2011 17:14:32 +0000 (17:14 +0000)]
Append to HOST_LIBGCC2_CFLAGS in libgcc

* config.host (tmake_file): Correct comment.
(bfin*-elf*): Remove bfin/t-elf from tmake_file, add
t-libgcc-pic.
(bfin*-uclinux*): Likewise.
(bfin*-linux-uclibc*): Likewise.
(xstormy16-*-elf): Add stormy16/t-stormy16 to tmake_file.

* config/arm/t-elf (HOST_LIBGCC2_CFLAGS): Append instead of
assigning.
* config/arm/t-strongarm-elf (HOST_LIBGCC2_CFLAGS): Likewise.
* config/avr/t-avr (HOST_LIBGCC2_CFLAGS): Likewise.
* config/c6x/t-elf (HOST_LIBGCC2_CFLAGS): Likewise.
* config/h8300/t-h8300 (HOST_LIBGCC2_CFLAGS): Likewise.
* config/lm32/t-elf (HOST_LIBGCC2_CFLAGS): Likewise.
* config/m32r/t-m32r (HOST_LIBGCC2_CFLAGS): Likewise.
* config/mcore/t-mcore (HOST_LIBGCC2_CFLAGS): Likewise.
* config/mips/t-elf (HOST_LIBGCC2_CFLAGS): Likewise.
* config/mmix/t-mmix (HOST_LIBGCC2_CFLAGS): Likewise.
* config/pdp11/t-pdp11 (HOST_LIBGCC2_CFLAGS): Likewise.
* config/picochip/t-picochip (HOST_LIBGCC2_CFLAGS): Likewise.
* config/stormy16/t-stormy16 (HOST_LIBGCC2_CFLAGS): Likewise.
* config/t-openbsd-thread (HOST_LIBGCC2_CFLAGS): Likewise.

* config/bfin/t-elf: Remove.
* config/t-vxworks (HOST_LIBGCC2_CFLAGS): Remove.

From-SVN: r181098

12 years agoConsistently use t-rtems in libgcc
Rainer Orth [Mon, 7 Nov 2011 17:12:33 +0000 (17:12 +0000)]
Consistently use t-rtems in libgcc

* config.host (*-*-rtems*): Add t-rtems to tmake_file.
(i[34567]86-*-rtems*): Remove t-rtems from tmake_file.
(lm32-*-elf*, lm32-*-rtems*): Split into ...
(lm32-*-elf*): ... this.
(lm32-*-rtems*): ... and this.
Add to tmake_file.
(m32r-*-rtems*): Add to tmake_file.
(moxie-*-rtems*): Likewise.
(sparc-*-rtems*): Likewise.
Remove t-rtems from tmake_file.
(sparc64-*-rtems*): Likewise.
* config/t-rtems (HOST_LIBGCC2_CFLAGS): Use LIBGCC2_INCLUDES
instead.

From-SVN: r181097

12 years agoCheck HARD_FRAME_POINTER_REGNUM.
H.J. Lu [Mon, 7 Nov 2011 16:38:24 +0000 (16:38 +0000)]
Check HARD_FRAME_POINTER_REGNUM.

2011-11-07  H.J. Lu  <hongjiu.lu@intel.com>

* dwarf2cfi.c (dwarf2out_frame_debug_expr): Check
HARD_FRAME_POINTER_REGNUM instead of hard_frame_pointer_rtx
in Rule 18.

From-SVN: r181096

12 years agoReturn gthr-posix.h to libgcc (PR bootstrap/50982)
Rainer Orth [Mon, 7 Nov 2011 16:34:31 +0000 (16:34 +0000)]
Return gthr-posix.h to libgcc (PR bootstrap/50982)

libgcc:
PR bootstrap/50982
* config/gthr-posix.h: Move ...
* gthr-posix.h: ... here.
* config/gthr-lynx.h: Reflect this.
* config/gthr-vxworks.h: Likewise.
* config/rs6000/gthr-aix.h: Likewise.
* configure.ac (target_thread_file): Likewise.
* configure: Regenerate.

libstdc++-v3:
PR bootstrap/50982
* include/Makefile.am (${host_builddir}/gthr-posix.h): Reflect
gthr-posix.h move.
* include/Makefile.in: Regenerate.

From-SVN: r181095

12 years ago[multiple changes]
Arnaud Charlet [Mon, 7 Nov 2011 16:30:55 +0000 (17:30 +0100)]
[multiple changes]

2011-11-07  Olivier Hainque  <hainque@adacore.com>

* sigtramp-ppcvxw.c: Add general comments.
(CFI_COMMON_REGS): Remove rule for r1, as in other unwinders. Add
rules for r2 to r13, plus CTR and XER.
(CFA_REG): New, register number used to hold the local CFA.
(CFI_DEF_CFA, SIGTRAMP_BODY): Use it.
Make that 15, not 14, with documentation.
(TCR): Undef before definition, preventing conflict with reg number in
VxWorks headers.

2011-11-07  Robert Dewar  <dewar@adacore.com>

* exp_util.ads, exp_alfa.adb, a-cohama.adb, a-cohama.ads, sem_ch4.adb,
aspects.ads, exp_ch8.adb, exp_ch8.ads, atree.ads: Minor reformatting.
* gcc-interface/Make-lang.in: Update dependencies.

2011-11-07  Ed Schonberg  <schonberg@adacore.com>

* exp_ch6.adb: A tagged type is a legal actual for an aliased
formal.

2011-11-07  Pascal Obry  <obry@adacore.com>

* g-socket.adb, g-socket.ads: Minor reformatting.

2011-11-07  Robert Dewar  <dewar@adacore.com>

* sem_res.adb (Resolve_Actuals): Minor error message improvement.

2011-11-07  Robert Dewar  <dewar@adacore.com>

* gnat_ugn.texi: Add discussion of default mode handling of
source representation with no -gnatW option given, in particular
noting that NEL (next line) is not recognized in this context.

From-SVN: r181094

12 years ago[multiple changes]
Arnaud Charlet [Mon, 7 Nov 2011 16:25:32 +0000 (17:25 +0100)]
[multiple changes]

2011-11-07  Yannick Moy  <moy@adacore.com>

* sem_util.adb (Note_Possible_Modification): In Alfa mode,
generate a reference for a modification even when the modification
does not come from source.

2011-11-07  Ed Schonberg  <schonberg@adacore.com>

* exp_ch5.adb (Expand_Iterator_Loop): For the "of" iterator form,
use the indexing attributes rather than the Element function,
to obtain variable references.
* sem_ch4.adb (Try_Container_Indexing): Code cleanup. Use
Find_Aspect rather than iterating over representation
items. Improve error message.
* a-cohama.adb, a-cohama.ads Update to latest RM, with two versions
of Reference functions.

From-SVN: r181093

12 years ago[multiple changes]
Arnaud Charlet [Mon, 7 Nov 2011 16:22:28 +0000 (17:22 +0100)]
[multiple changes]

2011-11-07  Yannick Moy  <moy@adacore.com>

* sem_util.adb (Unique_Entity): For a parameter on a subprogram
body that has a corresponding parameter on the subprogram
declaration, define the unique entity as being the declaration
one.

2011-11-07  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6.adb (Analyze_Return_Type): In Ada 2012 mode, if the
return type of a function is the class-wide type of an incomplete
type T, T can be a Taft-amendment type and does not have to be
completed in the current private part.

2011-11-07  Ed Schonberg  <schonberg@adacore.com>

* aspects.ads (Inherited_Aspect): Map that indicates type aspects
that are inherited by default, and apply to the class-wide type
as well.
* aspects.adb (Find_Aspect): If the entity is class-wide and the
aspect is inherited, use the aspect of the specific type.

From-SVN: r181092

12 years ago[multiple changes]
Arnaud Charlet [Mon, 7 Nov 2011 16:20:14 +0000 (17:20 +0100)]
[multiple changes]

2011-11-07  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_alfa.adb: Remove with and use clause for
Exp_Ch8. Add with and use clause for Exp_Util.
Remove local constant Disable_Processing_Of_Renamings.
(Expand_Alfa_N_Object_Renaming_Declaration): The expansion of
object renamings has been reenabled.
(Expand_Possible_Renaming):
The expansion of identifier and expanded names has been
reenabled. Perform the substitutions only for entities that
denote an object.
* exp_ch8.ads, exp_ch8.adb (Evaluate_Name): Moved to Exp_Util.
* exp_util.adb (Evaluate_Name): Moved from Exp_Ch8.
(Remove_Side_Effects): Alphabetize local variables. Add a guard
to avoid the infinite expansion of an expression in Alfa mode. Add
processing for function calls in Alfa mode.
* exp_util.ads (Evaliate_Name): Moved from Exp_Ch8.

2011-11-07  Ed Schonberg  <schonberg@adacore.com>

* freeze.adb (Freeze_Entity): If the entity is an access to
subprogram whose designated type is itself a subprogram type,
its own return type must be decorated with size information.

From-SVN: r181091

12 years agoi386.c (ix86_expand_builtin): If gather mask argument is known to have all high bits...
Jakub Jelinek [Mon, 7 Nov 2011 16:00:08 +0000 (17:00 +0100)]
i386.c (ix86_expand_builtin): If gather mask argument is known to have all high bits set...

* config/i386/i386.c (ix86_expand_builtin): If gather mask
argument is known to have all high bits set, pass pc_rtx as
second argument to the expander instead of op0.
* config/i386/sse.md (*avx2_gathersi<mode>_2,
*avx2_gatherdi<mode>_2): New patterns.
* config/i386/avx2intrin.h (_mm256_i32gather_pd,
_mm256_i64gather_pd, _mm256_i32gather_ps): Set mask using
_mm256_cmp_pd with zero vector arguments and _CMP_EQ_OQ instead of
_mm256_set1_pd.

From-SVN: r181090

12 years agore PR tree-optimization/50789 (Gather vectorization)
Jakub Jelinek [Mon, 7 Nov 2011 15:59:07 +0000 (16:59 +0100)]
re PR tree-optimization/50789 (Gather vectorization)

PR tree-optimization/50789
* tree-vect-stmts.c (process_use): Add force argument, avoid
exist_non_indexing_operands_for_use_p check if true.
(vect_mark_stmts_to_be_vectorized): Adjust callers.  Handle
STMT_VINFO_GATHER_P.
(gen_perm_mask): New function.
(perm_mask_for_reverse): Use it.
(reverse_vec_element): Rename to...
(permute_vec_elements): ... this.  Add Y and MASK_VEC arguments,
generalize for any permutations.
(vectorizable_load): Adjust caller.  Handle STMT_VINFO_GATHER_P.
* target.def (TARGET_VECTORIZE_BUILTIN_GATHER): New hook.
* doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_GATHER): Document it.
* doc/tm.texi: Regenerate.
* tree-data-ref.c (initialize_data_dependence_relation,
compute_self_dependence): No longer static.
* tree-data-ref.h (initialize_data_dependence_relation,
compute_self_dependence): New prototypes.
* tree-vect-data-refs.c (vect_check_gather): New function.
(vect_analyze_data_refs): Detect possible gather load data
refs.
* tree-vectorizer.h (struct _stmt_vec_info): Add gather_p field.
(STMT_VINFO_GATHER_P): Define.
(vect_check_gather): New prototype.
* config/i386/i386-builtin-types.def: Add types for alternate
gather builtins.
* config/i386/sse.md (AVXMODE48P_DI): Remove.
(VEC_GATHER_MODE): Rename mode_attr to...
(VEC_GATHER_IDXSI): ... this.
(VEC_GATHER_IDXDI, VEC_GATHER_SRCDI): New mode_attrs.
(avx2_gathersi<mode>, *avx2_gathersi<mode>): Use <VEC_GATHER_IDXSI>
instead of <VEC_GATHER_MODE>.
(avx2_gatherdi<mode>): Use <VEC_GATHER_IDXDI> instead of
<<AVXMODE48P_DI> and <VEC_GATHER_SRCDI> instead of VEC_GATHER_MODE
on src and mask operands.
(*avx2_gatherdi<mode>): Likewise.  Use VEC_GATHER_MODE iterator
instead of AVXMODE48P_DI.
(avx2_gatherdi<mode>256, *avx2_gatherdi<mode>256): Removed.
* config/i386/i386.c (enum ix86_builtins): Add
IX86_BUILTIN_GATHERALTSIV4DF, IX86_BUILTIN_GATHERALTDIV8SF,
IX86_BUILTIN_GATHERALTSIV4DI and IX86_BUILTIN_GATHERALTDIV8SI.
(ix86_init_mmx_sse_builtins): Create those builtins.
(ix86_expand_builtin): Handle those builtins and adjust expansions
of other gather builtins.
(ix86_vectorize_builtin_gather): New function.
(TARGET_VECTORIZE_BUILTIN_GATHER): Define.

* gcc.target/i386/avx2-gather-1.c: New test.
* gcc.target/i386/avx2-gather-2.c: New test.
* gcc.target/i386/avx2-gather-3.c: New test.
* gcc.target/i386/avx2-gather-4.c: New test.

From-SVN: r181089

12 years agoclock and time are part of the C standard library.
Janne Blomqvist [Mon, 7 Nov 2011 15:31:31 +0000 (17:31 +0200)]
clock and time are part of the C standard library.

2011-11-07  Janne Blomqvist  <jb@gcc.gnu.org>

* intrinsic.texi (MCLOCK, MCLOCK8, TIME, TIME8): Functions clock
and time are part of the C standard library.

From-SVN: r181087

12 years agopr49781-1.c (dg-options): Add -mtune=generic.
Uros Bizjak [Mon, 7 Nov 2011 15:21:35 +0000 (16:21 +0100)]
pr49781-1.c (dg-options): Add -mtune=generic.

* gcc.target/i386/pr49781-1.c (dg-options): Add -mtune=generic.

From-SVN: r181086

12 years agoRevert previous fix for PR 45723.
Janne Blomqvist [Mon, 7 Nov 2011 14:32:50 +0000 (16:32 +0200)]
Revert previous fix for PR 45723.

libgfortran ChangeLog:

2011-11-07  Janne Blomqvist  <jb@gcc.gnu.org>

        PR libfortran/45723
        * io/open.c (new_unit): Don't check file size before attempting
        seek.

testsuite ChangeLog:

2011-11-07  Janne Blomqvist  <jb@gcc.gnu.org>

        PR libfortran/45723
        * gfortran.dg/open_dev_null.F90: Remove testcase.

From-SVN: r181085

12 years agoacinclude.m4 (GLIBCXX_CHECK_SC_NPROC_ONLN): Define.
Jonathan Wakely [Mon, 7 Nov 2011 13:45:03 +0000 (13:45 +0000)]
acinclude.m4 (GLIBCXX_CHECK_SC_NPROC_ONLN): Define.

* acinclude.m4 (GLIBCXX_CHECK_SC_NPROC_ONLN): Define.
(GLIBCXX_CHECK_PTHREADS_NUM_PROCESSORS_NP): Define.
(GLIBCXX_CHECK_SYSCTL_HW_NCPU): Define.
* configure.ac: Use new checks.
* configure: Regenerate.
* config.h.in: Regenerate.
* src/thread.cc: Check new config macros.
* testsuite/lib/libstdc++.exp: Likewise.

From-SVN: r181084

12 years agotarget-supports.exp (check_effective_target_sync_int_128): Don't cache the result.
Uros Bizjak [Mon, 7 Nov 2011 13:09:09 +0000 (14:09 +0100)]
target-supports.exp (check_effective_target_sync_int_128): Don't cache the result.

* lib/target-supports.exp (check_effective_target_sync_int_128):
Don't cache the result.
(check_effective_target_sync_long_long): Ditto.

From-SVN: r181082

12 years ago* config/abi/pre/gnu.ver: Fix exports for string::pop_back.
Jonathan Wakely [Mon, 7 Nov 2011 11:36:04 +0000 (11:36 +0000)]
* config/abi/pre/gnu.ver: Fix exports for string::pop_back.

From-SVN: r181081

12 years agof16cintrin: Remove extra _X86INTRIN_H_INCLUDED check.
Uros Bizjak [Mon, 7 Nov 2011 10:23:56 +0000 (11:23 +0100)]
f16cintrin: Remove extra _X86INTRIN_H_INCLUDED check.

* config/i386/f16cintrin: Remove extra _X86INTRIN_H_INCLUDED check.

From-SVN: r181080

12 years agoconfig.gcc (*-*-*vms*): Set c_target_objs, cxx_target_objs.
Tristan Gingold [Mon, 7 Nov 2011 10:17:44 +0000 (10:17 +0000)]
config.gcc (*-*-*vms*): Set c_target_objs, cxx_target_objs.

2011-11-07  Tristan Gingold  <gingold@adacore.com>

* config.gcc (*-*-*vms*): Set c_target_objs, cxx_target_objs.
* config/vms/t-vms: Add vms-c.o rule.
* config/vms/vms-c.c: New file.
* config/vms/vms-protos.h (vms_c_register_pragma): New prototype.
* config/vms/vms.h (REGISTER_TARGET_PRAGMAS): Define.

From-SVN: r181079

12 years agovms.h (TARGET_OBJECT_SUFFIX, [...]): Move to config/vms/vms.h
Tristan Gingold [Mon, 7 Nov 2011 09:03:20 +0000 (09:03 +0000)]
vms.h (TARGET_OBJECT_SUFFIX, [...]): Move to config/vms/vms.h

2011-11-07  Tristan Gingold  <gingold@adacore.com>

* config/alpha/vms.h (TARGET_OBJECT_SUFFIX,
TARGET_EXECUTABLE_SUFFIX, TARGET_OS_CPP_BUILTINS,
TARGET_ABI_OPEN_VMS, LONG_TYPE_SIZE, ADA_LONG_TYPE_SIZE,
POINTER_SIZE, POINTERS_EXTEND_UNSIGNED): Move to config/vms/vms.h
(SUBTARGET_OS_CPP_BUILTINS): Define.
(TARGET_DEFAULT): Tune according to POINTER_SIZE.
(MASK_RETURN_ADDR): Define in 64 bit mode.
* config/ia64/vms.h: Likewise.
* config/vms/vms.h: New file.
* config/vms/vms64.h: New file.
* config/alpha/vms64.h: Removed.
* config/ia64/vms64.h: Removed.
* config.gcc (alpha64-dec-*vms*, alpha*-dec-*vms*, ia64-hp-*vms*):
Adjust for above change.

From-SVN: r181078

12 years agore PR target/50962 (Additional opportunity for AGU stall avoidance optimization for...
Enkovich Ilya [Mon, 7 Nov 2011 08:47:15 +0000 (08:47 +0000)]
re PR target/50962 (Additional opportunity for AGU stall avoidance optimization for Atom processor)

gcc/
PR target/50962
* config/i386/i386-protos.h (ix86_use_lea_for_mov): New.
* config/i386/i386.c (ix86_use_lea_for_mov): Likewise.
* config/i386/i386.md (movsi_internal): Emit lea if profitable.
(movdi_internal_rex64): Likewise.

From-SVN: r181077

12 years agoacinclude.m4: Check for <stdalign.h>
Jonathan Wakely [Mon, 7 Nov 2011 08:46:58 +0000 (08:46 +0000)]
acinclude.m4: Check for <stdalign.h>

* acinclude.m4: Check for <stdalign.h>
* configure: Regenerate.
* config.h.in: Likewise.
* include/Makefile.am: Add <cstdalign>.
* include/Makefile.in: Regenerate.
* include/c_global/cstdalign: New.
* testsuite/18_support/headers/cstdalign/std_c++0x_neg.cc: New.
* doc/xml/manual/backwards_compatibility.xml: Update.
* doc/xml/manual/status_cxx2011.xml: Update.

From-SVN: r181076

12 years agore PR rtl-optimization/47698 (CMOV accessing volatile memory with read side effect)
Sergey Ostanevich [Mon, 7 Nov 2011 08:41:55 +0000 (08:41 +0000)]
re PR rtl-optimization/47698 (CMOV accessing volatile memory with read side effect)

gcc/
PR rtl-optimization/47698
* ifconv.c (noce_operand_ok): prevent CMOV generation
for volatile mem.

gcc/testsuite/
PR rtl-optimization/47698
* gcc.target/i386/47698.c: New test.

From-SVN: r181075

12 years agoalpha-common.c (alpha_option_init_struct): New function.
Tristan Gingold [Mon, 7 Nov 2011 08:33:14 +0000 (08:33 +0000)]
alpha-common.c (alpha_option_init_struct): New function.

2011-11-07  Tristan Gingold  <gingold@adacore.com>

* common/config/alpha/alpha-common.c (alpha_option_init_struct):
New function.
(TARGET_OPTION_INIT_STRUCT): Define.
* config/alpha/alpha.c (TARGET_MIN_ANCHOR_OFFSET)
(TARGET_MAX_ANCHOR_OFFSET)
(TARGET_USE_BLOCKS_FOR_CONSTANT_P): Redefine.

From-SVN: r181074

12 years agore PR libstdc++/50982 (AIX libstdc++ GTHREADS incompatibility)
Jonathan Wakely [Mon, 7 Nov 2011 07:54:06 +0000 (07:54 +0000)]
re PR libstdc++/50982 (AIX libstdc++ GTHREADS incompatibility)

PR libstdc++/50982
* include/std/mutex (__once_proxy): Use void parameter list to
work on implicit extern "C" systems.

From-SVN: r181072

12 years agomake __stl_prime_list in comdat
Xinliang David Li [Mon, 7 Nov 2011 07:43:46 +0000 (07:43 +0000)]
make __stl_prime_list in comdat

From-SVN: r181071

12 years agoFix r180999, update ChangeLog
Quentin Neill [Mon, 7 Nov 2011 04:59:47 +0000 (04:59 +0000)]
Fix r180999, update ChangeLog

2011-11-06  Quentin Neill  <quentin.neill@amd.com>

Fix r180999, update ChangeLog
* config.gcc: Add f16cintrin.h.
* f16cintrin.h: Add missing endif.

From-SVN: r181070

12 years agore PR c++/35688 (template visibility not overridden by template arguments)
Jason Merrill [Mon, 7 Nov 2011 04:40:14 +0000 (23:40 -0500)]
re PR c++/35688 (template visibility not overridden by template arguments)

PR c++/35688
gcc/c-common/
* c-common.c (decl_has_visibility_attr): Split out from...
(c_determine_visibility): ...here.
* c-common.h: Declare it.
gcc/cp/
* decl2.c (constrain_visibility): Check decl_has_visibility_attr
rather than DECL_VISIBILITY_SPECIFIED.

From-SVN: r181069