Commit Graph

142509 Commits

Author SHA1 Message Date
Eric Botcazou
481efdd94d md.texi (Standard Names): Move entry for addptr3 around...
* doc/md.texi (Standard Names): Move entry for addptr3 around,
	add entries for addv4, subv4, mulv4, umulv4 and negv3, fixes
	glitch in entries for cbranch4 and jump.

From-SVN: r230651
2015-11-20 11:04:43 +00:00
Tom de Vries
f993a85385 Do final value replacement in try_create_reduction_list
2015-11-20  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/68373
	* tree-scalar-evolution.c (final_value_replacement_loop): Factor out of ...
	(scev_const_prop): ... here.
	* tree-scalar-evolution.h (final_value_replacement_loop): Declare.
	* tree-parloops.c (try_create_reduction_list): Call
	final_value_replacement_loop.

	* gcc.dg/autopar/pr68373.c: New test.

From-SVN: r230650
2015-11-20 10:25:26 +00:00
Uros Bizjak
5b5e7b181f ChangeLog: Fix whitespace.
* ChangeLog: Fix whitespace.
	* testsuite/ChangeLog: Ditto.

From-SVN: r230649
2015-11-20 11:00:24 +01:00
Jakub Jelinek
5e18a5b5ea Fix up misplaced ChangeLog entry.
From-SVN: r230648
2015-11-20 10:05:53 +01:00
Bin Cheng
cf5b92ef1e re PR tree-optimization/52272 (Performance regression of 410.bwaves on x86.)
PR tree-optimization/52272
	* tree-ssa-loop-ivopts.c (struct iv_common_cand): New struct.
	(struct iv_common_cand_hasher): New struct.
	(iv_common_cand_hasher::hash): New function.
	(iv_common_cand_hasher::equal): New function.
	(struct ivopts_data): New fields, iv_common_cand_tab and
	iv_common_cands.
	(tree_ssa_iv_optimize_init): Initialize above fields.
	(record_common_cand, common_cand_cmp): New functions.
	(add_iv_candidate_derived_from_uses): New function.
	(add_iv_candidate_for_use): Record iv_common_cands derived from
	iv use in hash table, instead of adding candidates directly.
	(add_iv_candidate_for_uses): Call add_iv_candidate_derived_from_uses.
	(record_important_candidates): Add important candidates to iv uses'
	related_cands.  Always keep related_cands for future use.
	(try_add_cand_for): Use iv uses' related_cands.
	(free_loop_data, tree_ssa_iv_optimize_finalize): Release new fields
	in struct ivopts_data, iv_common_cand_tab and iv_common_cands.

From-SVN: r230647
2015-11-20 09:05:08 +00:00
Jakub Jelinek
ec5a0fe042 re PR c++/67354 (internal compiler error: in add_to_same_comdat_group, at symtab.c:421)
PR c++/67354
	* cp-tree.h (defer_mangling_aliases): Declare.
	(generate_mangling_aliases): New prototype.
	* decl2.c (defer_mangling_aliases): New variable.
	(note_mangling_alias): Use !defer_mangling_aliases
	instead of at_eof.
	(generate_mangling_aliases): No longer static. Clear
	defer_mangling_aliases.
	* optimize.c (maybe_thunk_body): Defer emitting mangling aliases
	if !defer_mangling_aliases until the fns are put into the same
	comdat group.

	* g++.dg/abi/mangle67.C: New test.

From-SVN: r230646
2015-11-20 10:03:45 +01:00
Andreas Krebbel
511f5bb114 S/390: Add bswaphi2 pattern
gcc/testsuite/ChangeLog:
	* gcc.target/s390/bswap-1.c: New test.

gcc/ChangeLog:
	* config/s390/s390.md ("bswaphi2"): New pattern.

From-SVN: r230643
2015-11-20 07:42:04 +00:00
Dominik Vogt
af344a30f8 S/390: Clobber r1 in patterns resulting in pfpo instruction.
gcc/ChangeLog

	* config/s390/s390.md (GPR1_REGNUM): New constant.
	("*trunc<BFP:mode><DFP_ALL:mode>2")
	("*trunc<DFP_ALL:mode><BFP:mode>2")
	("trunc<BFP:mode><DFP_ALL:mode>2")
	("trunc<DFP_ALL:mode><BFP:mode>2")
	("*extend<BFP:mode><DFP_ALL:mode>2")
	("*extend<DFP_ALL:mode><BFP:mode>2")
	("extend<BFP:mode><DFP_ALL:mode>2")
	("extend<DFP_ALL:mode><BFP:mode>2"): Clobber r1.

gcc/testsuite/ChangeLog

	* gcc.target/s390/pfpo.c: New test.

From-SVN: r230642
2015-11-20 07:36:07 +00:00
Kirill Yukhin
cf0347ae4c re PR c++/68158 (Function attributes parsed incorrectly in C++ (while -fcilkplus))
gcc/testsuite/
	* c-c++-common/attr-simd-3.c: Put xfail (PR68158) on dg-error.
	* c-c++-common/attr-simd.c: Limit scan of dump to x86_64/i?86.

From-SVN: r230641
2015-11-20 05:42:41 +00:00
David Malcolm
8ece8dfbd9 C++ FE: offer suggestions for misspelled field names
gcc/c/ChangeLog:
	* c-typeck.c (lookup_field_fuzzy): Move determination of closest
	candidate into a new function, find_closest_identifier.

gcc/cp/ChangeLog:
	* cp-tree.h (lookup_member_fuzzy): New decl.
	* search.c: Include spellcheck.h.
	(class lookup_field_fuzzy_info): New class.
	(lookup_field_fuzzy_info::fuzzy_lookup_fnfields): New.
	(lookup_field_fuzzy_info::fuzzy_lookup_field): New.
	(lookup_field_fuzzy_r): New.
	(lookup_member_fuzzy): New.
	* typeck.c (finish_class_member_access_expr): When issuing
	a "has no member named" error, call lookup_member_fuzzy, and
	offer any result as a suggestion.

gcc/ChangeLog:
	* spellcheck-tree.c (find_closest_identifier): New function, taken
	from c/c-typeck.c:lookup_field_fuzzy, with NULL corrected to
	NULL_TREE in two places.
	* spellcheck.h (find_closest_identifier): New decl.

gcc/testsuite/ChangeLog:
	* g++.dg/spellcheck-fields.C: New file.

From-SVN: r230638
2015-11-20 01:26:00 +00:00
GCC Administrator
32c912aad1 Daily bump.
From-SVN: r230637
2015-11-20 00:16:12 +00:00
Torvald Riegel
258c1d0722 Support __cxa_free_exception and fix exception handling.
gcc/cp/
	* except.c (do_free_exception): Use transactional wrapper.

	libitm/
	* testsuite/libitm.c++/eh-5.C: New.
	* libitm.h (_ITM_cxa_free_exception): New.
	* libitm.map (_ITM_cxa_free_exception): Add it.
	* libitm.texi: Update ABI docs.
	* libitm_i.h (gtm_transaction_cp::cxa_unthrown): Remove.
	(gtm_transaction_cp::cxa_uncaught_count): Add.
	(gtm_thread::cxa_unthrown): Remove.
	(gtm_thread::cxa_uncaught_count_ptr): Add.
	(gtm_thread::cxa_uncaught_count): Add.
	(gtm_thread::drop_references_allocations): Rename to...
	(gtm_thread::discard_allocation): ... this and adapt.
	(gtm_thread::init_cpp_exceptions): New.
	* beginend.cc (gtm_thread::gtm_thread): Adapt EH handling.
	(gtm_thread::begin_transaction): Likewise.
	(gtm_transaction_cp::save): Likewise.
	(gtm_thread::trycommit): Likewise.
	* eh_cpp.cc: Add overview comments.
	(__cxa_eh_globals, __cxa_get_globals, __cxa_free_exception): Declare.
	(free_any_exception, _ITM_cxa_free_exception): New.
	(gtm_thread::init_cpp_exceptions): Define.
	(_ITM_cxa_allocate_exception, _ITM_cxa_throw): Adapt.
	(_ITM_cxa_begin_catch, _ITM_cxa_end_catch): Likewise.
	(gtm_thread::revert_cpp_exceptions): Likewise.

From-SVN: r230634
2015-11-20 00:10:08 +00:00
DJ Delorie
9afebea2d5 * config/msp430/lib2hw_mul.S: Fix alignment.
From-SVN: r230633
2015-11-19 19:08:50 -05:00
Aditya Kumar
a378e92255 fix PR68428: ignore bb dominated by the scop->exit
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r230632
2015-11-19 23:06:18 +00:00
Aditya Kumar
2927ca4b24 fix PR68341: correctly compute the insertion point for close phi nodes
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r230631
2015-11-19 22:56:42 +00:00
Aditya Kumar
deca214613 add testcase for PR68335
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r230630
2015-11-19 22:47:48 +00:00
Jason Merrill
e3f8abd61e re PR c++/68422 (compile-time cost of sizeof... is quadratic)
PR c++/68422

	* cp-tree.h (PACK_EXPANSION_SIZEOF_P): New.
	* parser.c (cp_parser_sizeof_pack): Set it.
	* pt.c 	(tsubst_copy) [SIZEOF_EXPR]: Likewise.
	(tsubst_pack_expansion): Improve T... shortcut for expression packs.

From-SVN: r230629
2015-11-19 17:29:08 -05:00
Nathan Sidwell
0766660bf9 nvptx.h (SUPPORTS_WEAK): Define.
gcc/
	* config/nvptx/nvptx.h (SUPPORTS_WEAK): Define.
	* config/nvptx/nvptx.c (nvptx_write_function_decl): Support
	DECL_WEAK.
	(nvptx_declare_objec_name): Likewise.

	gcc/testsuite/
	* lib/target-supports.exp (check_weak_available): Add nvptx-*-*.
	* gcc.dg/attr-weakref-1.c: Skip for nvptx-*-*
	* gcc.dg/special/weak-2.c: Likewise.
	* gcc.dg/weak/weak-12.c: Likewise.
	* gcc.dg/weak/weak-15.c: Likewise.
	* gcc.dg/weak/weak-16.c: Likewise.
	* gcc.dg/weak/weak-1.c: Likewise.
	* gcc.dg/weak/weak-2.c: Likewise.
	* gcc.dg/weak/weak-4.c: Likewise.
	* gcc.dg/torture/pr53922.c: Likewise.
	* gcc.dg/torture/pr60092.c: Likewise.

From-SVN: r230628
2015-11-19 22:05:03 +00:00
Marek Polacek
433068ccab re PR c/68412 (ICE with -Wall -Wextra in fold_binary_loc())
PR c/68412
	* c-typeck.c (parser_build_binary_op): Properly handle
	C_MAYBE_CONST_EXPR before calling warn_tautological_cmp.

	* gcc.dg/pr68412-2.c: New test.
	* gcc.dg/pr68412.c: New test.

From-SVN: r230627
2015-11-19 22:04:00 +00:00
Aditya Kumar
09b574dda9 fix bootstrap without ISL on old linkers
With and without this patch passes bootstrap on x86_64-linux with and without ISL.
The problem occurs on systems with older linkers that do not remove dead symbols.

From-SVN: r230625
2015-11-19 20:35:12 +00:00
Nathan Sidwell
2d25681660 reduction-dbl.c: New.
* libgomp.oacc-c-c++-common/reduction-dbl.c: New.
	* libgomp.oacc-c-c++-common/reduction-flt.c: New.
	* libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Use typedef.
	* libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Use typedef.
	* libgomp.oacc-c-c++-common/reduction-2.c: Uncomment broken tests
	and fix.
	* libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
	* libgomp.oacc-c-c++-common/reduction-4.c: Likewise.

From-SVN: r230621
2015-11-19 18:58:39 +00:00
Ryan Burn
0398c18360 re PR c++/68396 (function auto-deduced return types get incorrectly classified as parameter packs)
PR c++/68396

2015-11-19  Ryan Burn  <contact@rnburn.com>

	* pt.c (find_parameter_packs_r) [DECLTYPE_TYPE]: When traversing
	the DECLTYPE_TYPE_EXPR, set type_pack_expansion_p to false.

From-SVN: r230620
2015-11-19 13:25:38 -05:00
David Edelsohn
498cb3c320 revert: rs6000.c (use_toc_relative_ref): Ignore type-limits warning.
2015-11-19  David Edelsohn  <dje.gcc@gmail.com>

        Revert
	2015-11-18  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (use_toc_relative_ref): Ignore
	type-limits warning.

From-SVN: r230619
2015-11-19 12:37:12 -05:00
Senthil Kumar Selvaraj
1014b6f54b [Patch, vrp] Allow VRP type conversion folding only for widenings upto word mode
* tree.h (desired_pro_or_demotion_p): New function.
	* tree-vrp.c (simplify_cond_using_ranges): Call it.

	* gcc.dg/tree-ssa/vrp98.c: New testcase.
	* gcc.target/avr/uint8-single-reg.c: New testcase.

From-SVN: r230618
2015-11-19 10:30:24 -07:00
Bob Duff
04a9bb6ec3 sem_elab.adb (Check_Internal_Call_Continue): Correction to previous change...
2015-11-19  Bob Duff  <duff@adacore.com>
        
	* sem_elab.adb (Check_Internal_Call_Continue): Correction to previous
	change: correctly handle generic formals/actuals that look like
	renamings.

From-SVN: r230617
2015-11-19 17:40:37 +01:00
Ilya Verbin
4219ddb32f libgomp-plugin-intelmic.cpp (struct TargetImageDesc): New.
liboffloadmic/
	* plugin/libgomp-plugin-intelmic.cpp (struct TargetImageDesc): New.
	(ImgDescMap): New typedef.
	(image_descriptors): New static var.
	(init): Allocate image_descriptors.
	(offload): Remove vars2 argument.  Pass NULL to __offload_offload1
	instead of vars2.
	(unregister_main_image): New static function.
	(register_main_image): Call unregister_main_image at exit.
	(GOMP_OFFLOAD_init_device): Print device number, fix offload args.
	(GOMP_OFFLOAD_fini_device): Likewise.
	(get_target_table): Remove vd1g and vd2g, don't pass them to offload.
	(offload_image): Remove declaration of the struct TargetImage.
	Free table.  Insert new descriptor into image_descriptors.
	(GOMP_OFFLOAD_unload_image): Call __offload_unregister_image, free
	the corresponding descriptor, and remove it from address_table and
	image_descriptors.
	(GOMP_OFFLOAD_alloc): Print device number, remove vd1g.
	(GOMP_OFFLOAD_free): Likewise.
	(GOMP_OFFLOAD_host2dev): Print device number, remove vd1g and vd2g.
	(GOMP_OFFLOAD_dev2host): Likewise.
	(GOMP_OFFLOAD_run): Print device number, remove vd1g.
	* plugin/offload_target_main.cpp (__offload_target_table_p1): Remove
	vd2, don't pass it to __offload_target_enter.
	(__offload_target_table_p2): Likewise.
	(__offload_target_alloc): Likewise.
	(__offload_target_free): Likewise.
	(__offload_target_host2tgt_p1): Likewise.
	(__offload_target_host2tgt_p2): Likewise.
	(__offload_target_tgt2host_p1): Likewise.
	(__offload_target_tgt2host_p2): Likewise.
	(__offload_target_run): Likewise.
	(__offload_target_tgt2tgt): Remove vd1g, don't pass it to
	__offload_target_enter.

From-SVN: r230614
2015-11-19 16:22:13 +00:00
Jakub Jelinek
2c4437019f re PR c++/67409 (tree-cfg.c dereferences a NULL pointer)
PR c++/67409
	* decl.c (identify_goto): Add LOC and DIAG_KIND arguments, call
	emit_diagnostic instead of permerror.
	(check_previous_goto_1): Adjust identify_goto callers, treat all
	cases but crossing initialization and entering scope of decl with
	non-trivial dtor as unconditional hard errors.
	(check_goto): Use identify_goto.  Treat all cases but crossing
	initialization and entering scope of decl with non-trivial dtor
	as unconditional hard errors.

	* g++.dg/eh/goto3.C: New test.

Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org>

From-SVN: r230613
2015-11-19 17:18:39 +01:00
Michael Matz
1e1ce42e72 fwprop.c (update_uses): Use flag_checking instead of gcc_checking_assert.
* fwprop.c (update_uses): Use flag_checking instead of
	gcc_checking_assert.

From-SVN: r230612
2015-11-19 16:12:50 +00:00
David Malcolm
381846b1ca Fix typo in doc/gty.texi
gcc/ChangeLog:
	* doc/gty.texi (Support for inheritance): Fix missing
	parentheses in example.

From-SVN: r230609
2015-11-19 15:18:03 +00:00
Marek Polacek
41bfbbb68a re PR tree-optimization/68431 (Regression in GCC-6.0.0's optimizer)
PR tree-optimization/68431
	* tree-vrp.c (extract_range_from_binary_expr_1): Fix condition.

	* gcc.dg/tree-ssa/pr68431.c: New test.

From-SVN: r230608
2015-11-19 15:12:35 +00:00
Cesar Philippidis
8504d5dd8e parser.h (struct cp_omp_declare_simd_data): Add clauses member.
gcc/cp/
	* parser.h (struct cp_omp_declare_simd_data): Add clauses member.
	(struct cp_parser): Change type the of oacc_routine to
	cp_omp_declare_simd_data.
	* parser.c (cp_ensure_no_oacc_routine): Rework to use
	cp_omp_declare_simd_data.
	(cp_parser_simple_declaration): Remove boolean first.  Update call to
	cp_parser_init_declarator. Don't NULL out oacc_routine.
	(cp_parser_init_declarator): Remove boolean first parameter.  Update
	calls to cp_finalize_oacc_routine.
	(cp_parser_late_return_type_opt): Handle acc routines. 
	(cp_parser_member_declaration): Remove first variable.  Handle
	acc routines like omp declare simd.
	(cp_parser_function_definition_from_specifiers_and_declarator): Update
	call to cp_finalize_oacc_routine.
	(cp_parser_single_declaration): Update call to
	cp_parser_init_declarator.
	(cp_parser_save_member_function_body): Remove first_decl parameter.
	Update call to cp_finalize_oacc_routine.
	(cp_parser_finish_oacc_routine): Delete.
	(cp_parser_oacc_routine): Rework to use cp_omp_declare_simd_data.
	(cp_parser_late_parsing_oacc_routine): New function.
	(cp_finalize_oacc_routine): Remove first argument.  Add more error
	handling and set the acc routine and 'omp declare target' attributes.
	(cp_parser_pragma): Remove unnecessary call to
	cp_ensure_no_oacc_routine.

From-SVN: r230607
2015-11-19 06:56:51 -08:00
Nathan Sidwell
6c164570bd nvptx.md (atomic_compare_and_swap<mode>_1, [...]): Input values can be immediates.
* config/nvptx/nvptx.md (atomic_compare_and_swap<mode>_1,
	atomic_exchange<mode>): Input values can be immediates.

From-SVN: r230606
2015-11-19 14:40:28 +00:00
Eric Botcazou
bcefc3444c re PR lto/61313 (configure incorrectly strips $target_alias from PLUGIN_LD_SUFFIX)
PR lto/61313
	* configure.ac (PLUGIN_LD_SUFFIX): Do not touch the value specified
	by the user.
	* configure: Regenerate.

From-SVN: r230603
2015-11-19 13:31:33 +00:00
Martin Liska
0f3594af7b clang-format: Enhance list of FOR_EACH macros
* clang-format: Enhance list of FOR_EACH macros.

From-SVN: r230602
2015-11-19 12:54:57 +00:00
Martin Liska
daa53f38ee Add clang-format config to contrib folder
* .gitignore: Add .clang-format to ignored files.
	* Makefile.in: Add clang-format.
	* Makefile.tpl: Likewise.
	* clang-format: New file.

From-SVN: r230601
2015-11-19 12:32:09 +00:00
Eric Botcazou
05f44cf5de re PR target/68408 (broken support for attribute init_priority)
PR target/68408
	* config/sparc/sp-elf.h (CTORS_SECTION_ASM_OP): Undefine.
	(DTORS_SECTION_ASM_OP): Likewise.

From-SVN: r230598
2015-11-19 11:49:32 +00:00
Jakub Jelinek
dfc3d7a8a2 re PR rtl-optimization/68376 (wrong code at -O1 and above on x86_64-linux-gnu)
PR rtl-optimization/68376
	* ifcvt.c (noce_try_abs): Disable one_cmpl optimization if
	encountering x <= 0 ? ~x : x or x > 0 ? ~x : x.

	* gcc.c-torture/execute/pr68376-1.c: New test.
	* gcc.c-torture/execute/pr68376-2.c: New test.

From-SVN: r230596
2015-11-19 09:49:59 +01:00
Richard Biener
bb35ccb1ef re PR middle-end/68117 (error: invalid PHI argument <<< Unknown tree: <invalid tree code> >>>)
2015-11-19  Richard Biener  <rguenther@suse.de>

	PR middle-end/68117
	* tree-ssa.c (delete_tree_ssa): Revert removal of call to
	redirect_edge_var_map_destroy.

From-SVN: r230594
2015-11-19 08:47:16 +00:00
Jakub Jelinek
397d0df98c re PR target/67770 (i386: -fshrink-wrap can interact badly with trampolines)
PR target/67770
	* config/i386/i386.md (simple_return): Disable if
	ix86_static_chain_on_stack is true.

	* gcc.target/i386/pr67770.c: New test.

From-SVN: r230593
2015-11-19 09:30:19 +01:00
Jakub Jelinek
46ce03de3a re PR preprocessor/60736 (Crash in preprocessor including stdc-predef.h when it does not exist on glibc-based systems)
PR preprocessor/60736
	* include/cpplib.h (cpp_errno_filename): New prototype.
	* errors.c (cpp_errno): Don't handle msgid "" specially, use
	_(msgid) instead of msgid as argument to cpp_error.
	(cpp_errno_filename): New function.
	* files.c (read_file_guts): Use cpp_errno_filename instead of
	cpp_errno.
	(open_file_failed): Likewise.  Use file->name if file->path is NULL
	in diagnostics.

From-SVN: r230591
2015-11-19 09:27:12 +01:00
Richard Sandiford
ee1326921d PR 68393: Handle SUBREG_PROMOTED_VAR_P in expand_direct_optab_fn
Do the usual dance when assigning to SUBREG_PROMOTED_VAR_P destinations:
first convert to the outer mode, then extend to the inner mode.

Tested that it fixes the powerpc64le-linux-gnu breakage.  Also tested
on x86_64-linux-gnu and powerpc64-linux-gnu.

gcc/
	PR bootstrap/68393
	* internal-fn.c (expand_direct_optab_fn): Handle SUBREG_PROMOTED_VAR_P
	destinations.

From-SVN: r230590
2015-11-19 08:17:21 +00:00
Jason Merrill
d0eccfcdc3 c-common.c (shorten_compare): Don't -Wtype-limits if the non-constant operand comes from a macro.
* c-common.c (shorten_compare): Don't -Wtype-limits if the
	non-constant operand comes from a macro.

From-SVN: r230589
2015-11-18 23:26:48 -05:00
Jeff Law
7d7e7aca3b [PATCH][PR tree-optimization/68198] Avoid CFG explosion due to threading
PR tree-optimization/68198
	* tree-ssa-threadupdate.c (valid_jump_thread_path): Distinguish
	between threading a multi-way branch and a thread path that contains
	a multi-way branch.  Disallow the case where a path contains a
	multi-way branch and does not thread a multi-way branch.
	(thread_through_all_blocks): Update comment.

        PR tree-optimization/68198
	* gcc.dg/tree-ssa/pr66752-3.c: Update expected output for VRP1.
	* gcc.dg/tree-ssa/pr68198.c: New test.

From-SVN: r230586
2015-11-18 17:33:27 -07:00
GCC Administrator
3ebf5a30cf Daily bump.
From-SVN: r230585
2015-11-19 00:16:12 +00:00
Steven G. Kargl
586dc38b3e re PR fortran/59910 (ICE in gfc_conv_array_initializer, at fortran/trans-array.c:5327)
2015-11-18  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/59910
	* primary.c (gfc_match_structure_constructor): Reduce a structure
	constructor in a DATA statement.

2015-11-18  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/59910
	* gfortran.dg/pr59910.f90: New test.

From-SVN: r230580
2015-11-18 22:55:17 +00:00
Steven G. Kargl
9231aa17d6 re PR fortran/43996 (ICE in gfc_conv_array_initializer due to incomplete simplification of init expressions)
2015-11-18  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/43996
	* simplify.c (gfc_simplify_spread): Issue error for too large array 
	constructor in a PARAMETER statement.

2015-11-18  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/43996
	* gfortran.dg/pr43996.f90: New test.

From-SVN: r230579
2015-11-18 22:51:39 +00:00
Joseph Myers
c29c36ad5d Add out-of-line versions of some <stdatomic.h> functions (PR c/65083).
PR c/65083 notes that some functions in <stdatomic.h> are normal
functions, not generic functions, and so need to have out-of-line
copies that can be called when macro expansion is suppressed (unlike
the generic functions where DR#419 makes it undefined if you suppress
a macro expansion).

This patch adds such out-of-line definitions in libatomic for those
six functions, at a new LIBATOMIC_1.2 symbol version, as trivial
wrappers to the <stdatomic.h> macros, along with declarations of those
functions in <stdatomic.h>.  Tests are added that are based on the
corresponding tests for the macros, but with parentheses around the
function names to force the out-of-line functions to be used.

Bootstrapped with no regressions on x86_64-pc-linux-gnu.

gcc:
	* ginclude/stdatomic.h (atomic_thread_fence, atomic_signal_fence)
	(atomic_flag_test_and_set, atomic_flag_test_and_set_explicit)
	(atomic_flag_clear, atomic_flag_clear_explicit): Declare as
	functions before defining as macros.

gcc/testsuite:
	* gcc.dg/atomic/stdatomic-fence-2.c,
	gcc.dg/atomic/stdatomic-flag-2.c: New tests.

libatomic:
	* fence.c, flag.c: New files.
	* Makefile.am (libatomic_la_SOURCES): Add fence.c and flag.c.
	* Makefile.in: Regenerate.
	* configure.ac (libtool_VERSION): Change to 3:0:2.
	* configure: Regenerate.
	* libatomic.map (LIBATOMIC_1.2): New symbol version.

From-SVN: r230578
2015-11-18 22:13:44 +00:00
Eric Botcazou
2b2a2e9e1e trans.c (elaborate_all_entities_for_package): New function extracted from...
* gcc-interface/trans.c (elaborate_all_entities_for_package): New
	function extracted from...  Recurse on packages.
	(elaborate_all_entities): ...here.  Call it on packages.

From-SVN: r230576
2015-11-18 21:59:30 +00:00
Eric Botcazou
642357660a ada-tree.h (DECL_INVARIANT_P): New macro.
* gcc-interface/ada-tree.h (DECL_INVARIANT_P): New macro.
	* gcc-interface/gigi.h (enum standard_datatypes): Remove
	ADT_longjmp_decl and add ADT_not_handled_by_others_decl.
	(longjmp_decl): Delete.
	(not_handled_by_others_decl): New macro.
	(build_simple_component_ref): Delete.
	(build_component_ref): Adjust prototype.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Adjust calls to
	build_component_ref.
	(gnat_to_gnu_field): Set DECL_INVARIANT_P on discriminants
	without default value.
	* gcc-interface/trans.c (gigi): Reorder initialization sequence
	and add not_handled_by_others_decl.
	(Attribute_to_gnu): Adjust calls to build_component_ref.
	(Subprogram_Body_to_gnu): Likewise.
	(Call_to_gnu): Likewise.
	(Exception_Handler_to_gnu_sjlj): Likewise.
	(gnat_to_gnu): Likewise.
	(range_check_info_d): Add inserted_cond field.
	(Loop_Statement_to_gnu): Make two passes on the recorded range checks.
	(build_noreturn_cond): New static function.
	(Raise_Error_to_gnu): Record range checks in loops at -O1 and above.
	(make_invariant): New static function.
	(Loop_Statement_to_gnu): Use it to compute invariant expressions for
	the loop bounds if possible, but do not require it if loop unswitching
	is enabled.
	* gcc-interface/utils.c (convert_to_fat_pointer): Likewise.
	(convert): Likewise.
	(maybe_unconstrained_array): Likewise.  Call it instead of
	build_simple_component_ref and add guard for CONSTRUCTORs.
	(unchecked_convert): Likewise.
	* gcc-interface/utils2.c (compare_fat_pointers): Likewise.
	(build_simple_component_ref): Remove COMPONENT parameter, unify
	code dealing with VIEW_CONVERT_EXPR and make it more general,
	remove special treatment for CONSTRUCTORs of template types.
	(build_component_ref): Remove COMPONENT parameter and adjust call
	to build_simple_component_ref.
	(maybe_wrap_malloc): Likewise.
	(build_allocator): Likewise.
	(gnat_invariant_expr): Look through overflow checks, deal with
	addition and subtraction of constants and take into account
	DECL_INVARIANT_P for the COMPONENT_REF case.

From-SVN: r230575
2015-11-18 21:55:11 +00:00
Nathan Sidwell
5d306e55e0 nvptx.c (nvptx_process_pars): Fix whitespace.
* config/nvptx/nvptx.c (nvptx_process_pars): Fix whitespace.
	(nvptx_record_offload_symbol): Remove code compensating for lack
	of default dimension handling.
	(nvptx_goacc_validate_dims): Remove incorrect ARG_UNUSED markers.

From-SVN: r230571
2015-11-18 21:33:57 +00:00