- 15 Nov, 2015 1 commit
-
-
From-SVN: r230388
GCC Administrator committed
-
- 14 Nov, 2015 15 commits
-
-
* libgomp.texi: Update references from OpenMP 4.0 to OpenMP 4.5 sections. From-SVN: r230384
Jakub Jelinek committed -
2015-11-14 Andreas Tobler <andreast@gcc.gnu.org> * acinclude.m4 (GLIBCXX_ENABLE_CLOCALE): Change locale implementation from darwin to DragonFly. * configure: Regenerate. * config/os/bsd/freebsd/ctype_configure_char.cc: Improve locale support, do it the same as DragonFly. * config/os/bsd/freebsd/os_defines.h: Add fine grained C99 defines. From-SVN: r230383
Andreas Tobler committed -
PR bootstrap/68346 * call.c (build_new_op_1): Don't fold arguments to warn_tautological_cmp. From-SVN: r230382
Jason Merrill committed -
gcc/ 2015-11-14 Jakub Jelinek <jakub@redhat.com> * omp-low.c (lower_omp_ordered): Add argument to GOMP_SMD_ORDERED_* internal calls - 0 if ordered simd and 1 for ordered threads simd. * tree-vectorizer.c (adjust_simduid_builtins): If GOMP_SIMD_ORDERED_* argument is 1, replace it with GOMP_ordered_* call instead of removing it. gcc/c/ 2015-11-14 Jakub Jelinek <jakub@redhat.com> * c-typeck.c (c_finish_omp_clauses): Don't mark GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable. gcc/cp/ 2015-11-14 Jakub Jelinek <jakub@redhat.com> * semantics.c (finish_omp_clauses): Don't mark GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable. libgomp/ 2015-11-14 Jakub Jelinek <jakub@redhat.com> Aldy Hernandez <aldyh@redhat.com> Ilya Verbin <ilya.verbin@intel.com> * ordered.c (gomp_doacross_init, GOMP_doacross_post, GOMP_doacross_wait, gomp_doacross_ull_init, GOMP_doacross_ull_post, GOMP_doacross_ull_wait): For GFS_GUIDED don't divide number of iterators or IV by chunk size. * parallel.c (gomp_resolve_num_threads): Don't assume that if thr->ts.team is non-NULL, then pool must be non-NULL. * libgomp-plugin.h (GOMP_PLUGIN_target_task_completion): Declare. * libgomp.map (GOMP_PLUGIN_1.1): New symbol version, export GOMP_PLUGIN_target_task_completion. * Makefile.am (libgomp_la_SOURCES): Add priority_queue.c. * Makefile.in: Regenerate. * libgomp.h: Shuffle prototypes and forward definitions around so priority queues can be defined. (enum gomp_task_kind): Add GOMP_TASK_ASYNC_RUNNING. (enum gomp_target_task_state): New enum. (struct gomp_target_task): Add state, tgt, task and team fields. (gomp_create_target_task): Change return type to bool, add state argument. (gomp_target_task_fn): Change return type to bool. (struct gomp_device_descr): Add async_run_func. (struct gomp_task): Remove children, next_child, prev_child, next_queue, prev_queue, next_taskgroup, prev_taskgroup. Add pnode field. (struct gomp_taskgroup): Remove children. Add taskgroup_queue. (struct gomp_team): Change task_queue type to a priority queue. (splay_compare): Define inline. (priority_queue_offset): New. (priority_node_to_task): New. (task_to_priority_node): New. * oacc-mem.c: Do not include splay-tree.h. * priority_queue.c: New file. * priority_queue.h: New file. * splay-tree.c: Do not include splay-tree.h. (splay_tree_foreach_internal): New. (splay_tree_foreach): New. * splay-tree.h: Become re-entrant if splay_tree_prefix is defined. (splay_tree_callback): Define typedef. * target.c (splay_compare): Move to libgomp.h. (GOMP_target): Don't adjust *thr in any way around running offloaded task. (GOMP_target_ext): Likewise. Handle target nowait. (GOMP_target_update_ext, GOMP_target_enter_exit_data): Check return value from gomp_create_target_task, if false, fallthrough as if no dependencies exist. (gomp_target_task_fn): Change return type to bool, return true if the task should have another part scheduled later. Handle target nowait. (gomp_load_plugin_for_device): Initialize async_run. * task.c (gomp_init_task): Initialize children_queue. (gomp_clear_parent_in_list): New. (gomp_clear_parent_in_tree): New. (gomp_clear_parent): Handle priorities. (GOMP_task): Likewise. (priority_queue_move_task_first, gomp_target_task_completion, GOMP_PLUGIN_target_task_completion): New functions. (gomp_create_target_task): Use priority queues. Change return type to bool, add state argument, return false if for async {{enter,exit} data,update} constructs no dependencies need to be waited for, handle target nowait. Set task->fn to NULL instead of gomp_target_task_fn. (verify_children_queue): Remove. (priority_list_upgrade_task): New. (priority_queue_upgrade_task): New. (verify_task_queue): Remove. (priority_list_downgrade_task): New. (priority_queue_downgrade_task): New. (gomp_task_run_pre): Use priority queues. Abstract code out to priority_queue_downgrade_task. (gomp_task_run_post_handle_dependers): Use priority queues. (gomp_task_run_post_remove_parent): Likewise. (gomp_task_run_post_remove_taskgroup): Likewise. (gomp_barrier_handle_tasks): Likewise. Handle target nowait target tasks specially. (GOMP_taskwait): Likewise. (gomp_task_maybe_wait_for_dependencies): Likewise. Abstract code to priority-queue_upgrade_task. (GOMP_taskgroup_start): Use priority queues. (GOMP_taskgroup_end): Likewise. Handle target nowait target tasks specially. If taskgroup is NULL, and thr->ts.level is 0, act as a barrier. * taskloop.c (GOMP_taskloop): Handle priorities. * team.c (gomp_new_team): Call priority_queue_init. (free_team): Call priority_queue_free. (gomp_free_thread): Call gomp_team_end if thr->ts.team is artificial team created for target nowait in implicit parallel region. (gomp_team_start): For nested check, test thr->ts.level instead of thr->ts.team != NULL. * testsuite/libgomp.c/doacross-3.c: New test. * testsuite/libgomp.c/ordered-5.c: New test. * testsuite/libgomp.c/priority.c: New test. * testsuite/libgomp.c/target-31.c: New test. * testsuite/libgomp.c/target-32.c: New test. * testsuite/libgomp.c/target-33.c: New test. * testsuite/libgomp.c/target-34.c: New test. liboffloadmic/ 2015-11-14 Ilya Verbin <ilya.verbin@intel.com> * runtime/offload_host.cpp (task_completion_callback): New variable. (offload_proxy_task_completed_ooo): Call task_completion_callback. (__offload_register_task_callback): New function. * runtime/offload_host.h (__offload_register_task_callback): New declaration. * plugin/libgomp-plugin-intelmic.cpp (offload): Add async_data argument, handle async offloading. (register_main_image): Call register_main_image. (GOMP_OFFLOAD_init_device, get_target_table, GOMP_OFFLOAD_alloc, GOMP_OFFLOAD_free, GOMP_OFFLOAD_host2dev, GOMP_OFFLOAD_dev2host, GOMP_OFFLOAD_dev2dev) Adjust offload callers. (GOMP_OFFLOAD_async_run): New function. (GOMP_OFFLOAD_run): Implement using GOMP_OFFLOAD_async_run. From-SVN: r230381
Jakub Jelinek committed -
2015-11-14 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/67803 * array.c (gfc_match_array_constructor): If array constructor included a CHARACTER typespec, check array elements for compatible type. 2015-11-14 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/67803 * gfortran.dg/pr67803.f90: New test. From-SVN: r230379
Steven G. Kargl committed -
* testsuite/21_strings/basic_string/capacity/char/18654.cc: Use real minimum capacity. * testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc: Likewise. From-SVN: r230378
Jonathan Wakely committed -
From-SVN: r230377
David Edelsohn committed -
From-SVN: r230376
David Edelsohn committed -
* c-decl.c: Use RECORD_OR_UNION_TYPE_P throughout. * c-typeck.c: Likewise. From-SVN: r230375
Marek Polacek committed -
2015-11-13 Arnaud Charlet <charlet@adacore.com> PR ada/68345 * s-osinte-dragonfly.ads (Get_Page_Size): C function returns an int. From-SVN: r230373
Arnaud Charlet committed -
* ChangeLog: Fix whitespace. * testsuite/ChangeLog: Ditto. From-SVN: r230372
Uros Bizjak committed -
* g++.dg/init/vbase1.C: XFAIL powerpc*-*-*. * g++.dg/cpp/ucn-1.C: Expect error for dollar sign identifier on AIX. From-SVN: r230371
David Edelsohn committed -
From-SVN: r230370
GCC Administrator committed -
2015-11-13 Rich Felker <dalias@libc.org> * config/sh/sh.md (symGOT_load): Don't set stack_chk_guard_p for TARGET_FDPIC. From-SVN: r230366
Rich Felker committed -
* call.c (build_conditional_expr_1, convert_like_real) (convert_arg_to_ellipsis, convert_for_arg_passing): Don't fold. (build_new_op_1, build_over_call, build_cxx_call): Fold for warnings. * class.c (build_base_path, determine_primary_bases) (update_vtable_entry_for_fn, check_bitfield_decl) (layout_nonempty_base_or_field, layout_empty_base) (propagate_binfo_offsets, include_empty_classes) (layout_class_type, build_vbase_offset_vtbl_entries): Use fold_convert. * constexpr.c (cxx_eval_builtin_function_call): Fold away the NOP_EXPR. (cxx_eval_call_expression): Handle MEM_REF. (cxx_eval_pointer_plus_expression): Fold the second operand. (cxx_eval_constant_expression): Handle MEM_REF, UNARY_PLUS_EXPR. (fold_simple_1, fold_simple): New. (maybe_constant_value_1): Factor out from maybe_constant_value. (cv_cache, maybe_constant_value): Cache results. (maybe_constant_init): Handle null input. (potential_constant_expression_1): Handle RESULT_DECL, EMPTY_CLASS_EXPR. * cp-array-notation.c (build_array_notation_ref): Fold operands. * cp-gimplify.c (cp_fold_r, cp_fold): New. (cp_genericize_r): Use fold_convert. Don't fold SIZEOF_EXPR. (cp_genericize): Fold everything. (contains_label_1, contains_label_p): New. (cp_fold, cp_fully_fold): New. * cp-tree.h (class cache_map): New. * cvt.c (cp_convert_to_pointer, ocp_convert): Use convert_to_*_nofold. (cp_convert_and_check): Use cp_fully_fold. (convert, convert_force): Don't fold. * decl.c (fold_sizeof_expr): Change from fold_sizeof_expr_r. (compute_array_index_type): Use cp_fully_fold. (build_enumerator): Use fold_convert. * decl2.c (get_guard_cond, set_guard): Use fold_convert. * init.c (build_zero_init_1): Fold zero-initializers. (build_new_1): Fold nelts calculations. (build_vec_delete_1): Fold conversions. (build_vec_init): Fold maxindex. * parser.c (cp_parser_binary_expression): Fold LHS of || and &&. (cp_parser_question_colon_clause): Fold LHS. * pt.c (convert_nontype_argument): Fold nullptr conversion. * semantics.c (finish_unary_op_expr): Fold for warnings. (handle_omp_array_sections_1): Fold length and low bound. (handle_omp_for_class_iterator): Fold various things. * tree.c (builtin_valid_in_constant_expr_p): Add BUILT_IN_ATOMIC_ALWAYS_LOCK_FREE. (convert_bitfield_to_declared_type): Don't fold. (handle_init_priority_attribute): Fold. (fold_if_not_in_template): Remove. * typeck.c (decay_conversion, build_class_member_access_expr) (build_simple_component_ref, cp_build_array_ref, build_vec_cmp) (cp_pointer_int_sum, pointer_diff): Don't fold. (cp_build_binary_op): Fold for warnings and PMF ops. (cp_build_unary_op): Fold negation of a constant, nothing else. (expand_ptrmemfunc_cst): Fold operations. * typeck2.c (split_nonconstant_init): Fold initializer. (store_init_value): Likewise. (check_narrowing): Try folding. * config-lang.in (gtfiles): Add cp-gimplify.c. From-SVN: r230365
Jason Merrill committed
-
- 13 Nov, 2015 24 commits
-
-
representation * Makefile.in (OBJS): Add gimple-ssa-split-paths.o * common.opt (-fsplit-paths): New flag controlling path splitting. * doc/invoke.texi (fsplit-paths): Document. * opts.c (default_options_table): Add -fsplit-paths to -O2. * passes.def: Add split_paths pass. * timevar.def (TV_SPLIT_PATHS): New timevar. * tracer.c: Include "tracer.h" (ignore_bb_p): No longer static. (transform_duplicate): New function, broken out of tail_duplicate. (tail_duplicate): Use transform_duplicate. * tracer.h (ignore_bb_p): Declare (transform_duplicate): Likewise. * tree-pass.h (make_pass_split_paths): Declare. * gimple-ssa-split-paths.c: New file. * gcc.dg/tree-ssa/split-path-1.c: New test. Co-Authored-By: Jeff Law <law@redhat.com> From-SVN: r230364
Ajit Agarwal committed -
2015-11-13 Kai Tietz <ktietz70@googlemail.com> Marek Polacek <polacek@redhat.com> Jason Merrill <jason@redhat.com> gcc/ * convert.c (maybe_fold_build1_loc): New. (maybe_fold_build2_loc): New. (convert_to_pointer_1): Split out from convert_to_pointer. (convert_to_pointer_nofold): New. (convert_to_real_1): Split out from convert_to_real. (convert_to_real_nofold): New. (convert_to_integer_1): Split out from convert_to_integer. (convert_to_integer_nofold): New. (convert_to_complex_1): Split out from convert_to_complex. (convert_to_complex_nofold): New. * convert.h: Declare new functions. * tree-complex.c (create_one_component_var): Break up line to avoid sequence point issues. gcc/c-family/ * c-lex.c (interpret_float): Use fold_convert. Co-Authored-By: Jason Merrill <jason@redhat.com> Co-Authored-By: Marek Polacek <polacek@redhat.com> From-SVN: r230359
Kai Tietz committed -
* fold-const.c (fold_convert_const): Fold changing cv-quals on VECTOR_CST. From-SVN: r230358
Jason Merrill committed -
From-SVN: r230357
Jason Merrill committed -
gcc/ * gcc/omp-low.c (scan_sharing_clauses): Accept INDEPENDENT, AUTO & SEQ. (oacc_loop_fixed_partitions): Correct return type to bool. (oacc_loop_auto_partitions): New. (oacc_loop_partition): Take mask argument, call oacc_loop_auto_partitions. (execute_oacc_device_lower): Provide mask to oacc_loop_partition. gcc/testsuite/ * c-c++-common/goacc/loop-auto-1.c: New. libgomp/ * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: New. From-SVN: r230354
Nathan Sidwell committed -
* lib/target-supports.exp (check_effective_target_offload_nvptx): New. * gcc.dg/goacc/nvptx-merged-loop.c: New. From-SVN: r230353
Nathan Sidwell committed -
2015-11-13 Steven G. Kargl <kargl@gccc.gnu.org> PR fortran/68319 * decl.c (gfc_match_data, gfc_match_entry): Enforce F2008:C1206. * io.c (gfc_match_format): Ditto. * match.c (gfc_match_st_function): Ditto. 2015-11-13 Steven G. Kargl <kargl@gccc.gnu.org> PR fortran/68319 * gfortran.dg/pr68319.f90: New test. From-SVN: r230351
Steven G. Kargl committed -
From-SVN: r230345
Michael Meissner committed -
[gcc] 2015-11-13 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/constraints.md (we constraint): New constraint for 64-bit power9 vector support. (wL constraint): New constraint for the element in a vector that can be addressed by the MFVSRLD instruction. * config/rs6000/rs6000-protos.h (convert_float128_to_int): Add declaration. (convert_int_to_float128): Likewise. (rs6000_generate_compare): Add support for ISA 3.0 (power9) hardware support for IEEE 128-bit floating point. (rs6000_expand_float128_convert): Likewise. (convert_float128_to_int): Likewise. (convert_int_to_float128): Likewise. * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): New unspecs for ISA 3.0 hardware IEEE 128-bit floating point. (UNSPEC_IEEE128_MOVE): Likewise. (UNSPEC_IEEE128_CONVERT): Likewise. (FMA_F): Add support for IEEE 128-bit floating point hardware support. (Ff): Add support for DImode. (Fv): Likewise. (any_fix code iterator): New and updated iterators for IEEE 128-bit floating point hardware support. (any_float code iterator): Likewise. (s code attribute): Likewise. (su code attribute): Likewise. (az code attribute): Likewise. (uns code attribute): Likewise. (neg<mode>2, FLOAT128 iterator): Add support for IEEE 128-bit floating point hardware support. (abs<mode>2, FLOAT128 iterator): Likewise. (add<mode>3, IEEE128 iterator): New insns for IEEE 128-bit floating point hardware. (sub<mode>3, IEEE128 iterator): Likewise. (mul<mode>3, IEEE128 iterator): Likewise. (div<mode>3, IEEE128 iterator): Likewise. (copysign<mode>3, IEEE128 iterator): Likewise. (sqrt<mode>2, IEEE128 iterator): Likewise. (neg<mode>2, IEEE128 iterator): Likewise. (abs<mode>2, IEEE128 iterator): Likewise. (nabs<mode>2, IEEE128 iterator): Likewise. (fma<mode>4_hw, IEEE128 iterator): Likewise. (fms<mode>4_hw, IEEE128 iterator): Likewise. (nfma<mode>4_hw, IEEE128 iterator): Likewise. (nfms<mode>4_hw, IEEE128 iterator): Likewise. (extend<SFDF:mode><IEEE128:mode>2_hw): Likewise. (trunc<mode>df2_hw, IEEE128 iterator): Likewise. (trunc<mode>sf2_hw, IEEE128 iterator): Likewise. (fix_fixuns code attribute): Likewise. (float_floatuns code attribute): Likewise. (fix<uns>_<mode>si2_hw): Likewise. (fix<uns>_<mode>di2_hw): Likewise. (float<uns>_<mode>si2_hw): Likewise. (float<uns>_<mode>di2_hw): Likewise. (xscvqp<su>wz_<mode>): Likewise. (xscvqp<su>dz_<mode>): Likewise. (xscv<su>dqp_<mode): Likewise. (ieee128_mfvsrd): Likewise. (ieee128_mfvsrwz): Likewise. (ieee128_mtvsrw): Likewise. (ieee128_mtvsrd): Likewise. (trunc<mode>df2_odd): Likewise. (cmp<mode>_h): Likewise. (128-bit GPR splitters): Don't split a 128-bit move that is a direct move between GPR and vector registers using ISA 3.0 direct move instructions. (<u>mul<mode><dmode>3): Add support for the ISA 3.0 integer multiply-add instruction. * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add ISA 3.0 debugging. (rs6000_init_hard_regno_mode_ok): If ISA 3.0 and 64-bit, enable we constraint. Disable the VSX<->GPR direct move helpers if we have the MFVSRLD and MTVSRDD instructions. (rs6000_secondary_reload_simple_move): Add support for doing vector direct moves directly without additional scratch registers if we have ISA 3.0 instructions. (rs6000_secondary_reload_direct_move): Update comments. (rs6000_output_move_128bit): Add support for ISA 3.0 vector instructions. * config/rs6000/vsx.md (vsx_mov<mode>): Add support for ISA 3.0 direct move instructions. (vsx_movti_64bit): Likewise. (vsx_extract_<mode>): Likewise. * config/rs6000/rs6000.h (VECTOR_ELEMENT_MFVSRLD_64BIT): New macros for ISA 3.0 direct move instructions. (TARGET_DIRECT_MOVE_128): Likewise. (TARGET_MADDLD): Add support for the ISA 3.0 integer multiply-add instruction. * doc/md.texi (RS/6000 constraints): Document we, wF, wG, wL constraints. Update wa documentation to say not to use %x<n> on instructions that only take Altivec registers. [gcc/testsuite] 2015-11-13 Michael Meissner <meissner@linux.vnet.ibm.com> * gcc.target/powerpc/float128-hw.c: New test for IEEE 128-bit hardware floating point support. * gcc.target/powerpc/direct-move-vector.c: New test for 128-bit vector direct move instructions. * gcc.target/powerpc/maddld.c: New test. From-SVN: r230342
Michael Meissner committed -
* gcc.dg/pr68306.c (dg-additional-options): Add i?86-*-* target. * gcc.dg/pr68306-2.c (dg-additional-options): Ditto. * gcc.dg/pr68306-3.c (dg-additional-options): Ditto. From-SVN: r230339
Uros Bizjak committed -
* testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Sequential loop is sequential. From-SVN: r230333
Nathan Sidwell committed -
* include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * include/experimental/random: New. * testsuite/experimental/random/randint.cc: New. From-SVN: r230332
Jonathan Wakely committed -
This patch combines: [PATCH 05/10] Add ranges to libcpp tokens (via ad-hoc data, unoptimized) [PATCH 06/10] Track expression ranges in C frontend [PATCH 07/10] Add plugin to recursively dump the source-ranges in a tree (v2) [PATCH 08/10] Wire things up so that libcpp users get token underlines [PATCH 09/10] Delay some resolution of ad-hoc locations, preserving ranges [PATCH 10/10] Compress short ranges into source_location [PATCH] libcpp: add examples to source_location description along with fixes for the nits identified during review. gcc/ChangeLog: * Makefile.in (OBJS): Add gcc-rich-location.o. * diagnostic.c (diagnostic_append_note): Pass line_table to rich_location ctor. (emit_diagnostic): Likewise. (inform): Likewise. (inform_n): Likewise. (warning): Likewise. (warning_at): Likewise. (warning_n): Likewise. (pedwarn): Likewise. (permerror): Likewise. (error): Likewise. (error_n): Likewise. (error_at): Likewise. (sorry): Likewise. (fatal_error): Likewise. (internal_error): Likewise. (internal_error_no_backtrace): Likewise. (source_range::debug): Likewise. * gcc-rich-location.c: New file. * gcc-rich-location.h: New file. * genmatch.c (fatal_at): Pass line_table to rich_location ctor. (warning_at): Likewise. * gimple.h (gimple_set_block): Use set_block function. * input.c (dump_line_table_statistics): Dump stats on how many ranges were optimized vs how many needed ad-hoc table. (write_digit_row): Add "map" param; use its range_bits to calculate the per-character offset. (dump_location_info): Print the range and column bits for each ordinary map. Use the range bits to calculate the per-character offset. Pass the map as a new param to the various calls to write_digit_row. Eliminate uses of ORDINARY_MAP_NUMBER_OF_COLUMN_BITS. * print-tree.c (print_node): Print any source range information. * rtl-error.c (diagnostic_for_asm): Likewise. * toplev.c (general_init): Initialize line_table's default_range_bits. * tree-cfg.c (move_block_to_fn): Likewise. (move_block_to_fn): Likewise. * tree-inline.c (copy_phis_for_bb): Likewise. * tree.c (tree_set_block): Likewise. (get_pure_location): New function. (set_source_range): New functions. (set_block): New function. (set_source_range): New functions. * tree.h (CAN_HAVE_RANGE_P): New. (EXPR_LOCATION_RANGE): New. (EXPR_HAS_RANGE): New. (get_expr_source_range): New inline function. (DECL_LOCATION_RANGE): New. (set_source_range): New decls. (get_decl_source_range): New inline function. gcc/ada/ChangeLog: * gcc-interface/trans.c (Sloc_to_locus): Add line_table param when calling linemap_position_for_line_and_column. gcc/c-family/ChangeLog: * c-common.c (c_fully_fold_internal): Capture existing souce_range, and store it on the result. * c-opts.c (c_common_init_options): Set global_dc->colorize_source_p. gcc/c/ChangeLog: * c-decl.c (warn_defaults_to): Pass line_table to rich_location ctor. * c-errors.c (pedwarn_c99): Likewise. (pedwarn_c90): Likewise. * c-parser.c (set_c_expr_source_range): New functions. (c_token::get_range): New method. (c_token::get_finish): New method. (c_parser_expr_no_commas): Call set_c_expr_source_range on the ret based on the range from the start of the LHS to the end of the RHS. (c_parser_conditional_expression): Likewise, based on the range from the start of the cond.value to the end of exp2.value. (c_parser_binary_expression): Call set_c_expr_source_range on the stack values for TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR. (c_parser_cast_expression): Call set_c_expr_source_range on ret based on the cast_loc through to the end of the expr. (c_parser_unary_expression): Likewise, based on the op_loc through to the end of op. (c_parser_sizeof_expression) Likewise, based on the start of the sizeof token through to either the closing paren or the end of expr. (c_parser_postfix_expression): Likewise, using the token range, or from the open paren through to the close paren for parenthesized expressions. (c_parser_postfix_expression_after_primary): Likewise, for various kinds of expression. * c-tree.h (struct c_expr): Add field "src_range". (c_expr::get_start): New method. (c_expr::get_finish): New method. (set_c_expr_source_range): New decls. * c-typeck.c (parser_build_unary_op): Call set_c_expr_source_range on ret for prefix unary ops. (parser_build_binary_op): Likewise, running from the start of arg1.value through to the end of arg2.value. gcc/cp/ChangeLog: * error.c (pedwarn_cxx98): Pass line_table to rich_location ctor. gcc/fortran/ChangeLog: * error.c (gfc_warning): Pass line_table to rich_location ctor. (gfc_warning_now_at): Likewise. (gfc_warning_now): Likewise. (gfc_error_now): Likewise. (gfc_fatal_error): Likewise. (gfc_error): Likewise. (gfc_internal_error): Likewise. gcc/testsuite/ChangeLog: * gcc.dg/diagnostic-token-ranges.c: New file. * gcc.dg/diagnostic-tree-expr-ranges-2.c: New file. * gcc.dg/plugin/diagnostic-test-expressions-1.c: New file. * gcc.dg/plugin/diagnostic-test-show-trees-1.c: New file. * gcc.dg/plugin/diagnostic_plugin_show_trees.c: New file. * gcc.dg/plugin/diagnostic_plugin_test_show_locus.c (get_loc): Add line_table param when calling linemap_position_for_line_and_column. (test_show_locus): Pass line_table to rich_location ctors. (plugin_init): Remove setting of global_dc->colorize_source_p. * gcc.dg/plugin/diagnostic_plugin_test_tree_expression_range.c: New file. * gcc.dg/plugin/plugin.exp (plugin_test_list): Add diagnostic_plugin_test_tree_expression_range.c, diagnostic-test-expressions-1.c, diagnostic_plugin_show_trees.c, and diagnostic-test-show-trees-1.c. libcpp/ChangeLog: * errors.c (cpp_diagnostic): Pass pfile->line_table to rich_location ctor. (cpp_diagnostic_with_line): Likewise. * include/cpplib.h (struct cpp_token): Update comment for src_loc to indicate that the range of the token is "baked into" the source_location. * include/line-map.h (source_location): Update the descriptive comment to reflect the packing scheme for short ranges, adding worked examples of location encoding. (struct line_map_ordinary): Drop field "column_bits" in favor of field "m_column_and_range_bits"; add field "m_range_bits". (ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): Delete. (location_adhoc_data): Add source_range field. (struct line_maps): Add fields "default_range_bits", "num_optimized_ranges" and "num_unoptimized_ranges". (get_combined_adhoc_loc): Add source_range param. (get_range_from_loc): New declaration. (pure_location_p): New prototype. (COMBINE_LOCATION_DATA): Add source_range param. (SOURCE_LINE): Update for renaming of column_bits. (SOURCE_COLUMN): Likewise. Shift the column right by the map's range_bits. (LAST_SOURCE_LINE_LOCATION): Update for renaming of column_bits. (linemap_position_for_line_and_column): Add line_maps * params. (rich_location::rich_location): Likewise. * lex.c (_cpp_lex_direct): Capture the range of the token, baking it into token->src_loc via a call to COMBINE_LOCATION_DATA. * line-map.c (LINE_MAP_MAX_COLUMN_NUMBER): Reduce from 1U << 17 to 1U << 12. (location_adhoc_data_hash): Add the src_range into the hash value. (location_adhoc_data_eq): Require equality of the src_range values. (can_be_stored_compactly_p): New function. (get_combined_adhoc_loc): Add src_range param, and store it, via a bit-packing scheme for short ranges, otherwise within the lookaside table. Remove the requirement that data is non-NULL. (get_range_from_adhoc_loc): New function. (get_range_from_loc): New function. (pure_location_p): New function. (linemap_add): Ensure that start_location has zero for the range_bits, unless we're past LINE_MAP_MAX_LOCATION_WITH_COLS. Initialize range_bits to zero. Assert that the start_location is "pure". (linemap_line_start): Assert that the column_and_range_bits >= range_bits. Update determinination of whether we need to start a new map using the effective column bits, without the range bits. Use the set's default_range_bits in new maps, apart from those with column_bits == 0, which should also have 0 range_bits. Increase the column bits for new maps by the range bits. When adding lines to an existing map, use set->highest_line directly rather than offsetting highest by SOURCE_COLUMN. Add assertions to sanity-check the return value. (linemap_position_for_column): Offset to_column by range_bits. Update set->highest_location if necessary. (linemap_position_for_line_and_column): Add line_maps * param. Update the calculation to offset the column by range_bits, and conditionalize it on being <= LINE_MAP_MAX_LOCATION_WITH_COLS. Bound it by LINEMAPS_MACRO_LOWEST_LOCATION. Update set->highest_location if necessary. (linemap_position_for_loc_and_offset): Handle ad-hoc locations; pass "set" to linemap_position_for_line_and_column. (linemap_macro_map_loc_unwind_toward_spelling): Add line_maps param. Handle ad-hoc locations. (linemap_location_in_system_header_p): Pass on "set" to call to linemap_macro_map_loc_unwind_toward_spelling. (linemap_macro_loc_to_spelling_point): Retain ad-hoc locations. Pass on "set" to call to linemap_macro_map_loc_unwind_toward_spelling. (linemap_resolve_location): Retain ad-hoc locations. Pass on "set" to call to linemap_macro_map_loc_unwind_toward_spelling. (linemap_unwind_toward_expansion): Pass on "set" to call to linemap_macro_map_loc_unwind_toward_spelling. (linemap_expand_location): Extract the data pointer before extracting the location. (rich_location::rich_location): Add line_maps param; use it to extract the range from the source_location. * location-example.txt: Regenerate, showing new representation. From-SVN: r230331
David Malcolm committed -
gcc/: * tree-vect-slp.c (vect_split_slp_store_group): New. (vect_analyze_slp_instance): During basic block SLP, recurse on subgroups if vect_build_slp_tree fails after 1st vector. gcc/testsuite/: * gcc.dg/vect/bb-slp-7.c (main1): Make subgroups non-isomorphic. * gcc.dg/vect/bb-slp-subgroups-1.c: New. * gcc.dg/vect/bb-slp-subgroups-2.c: New. * gcc.dg/vect/bb-slp-subgroups-3.c: New. From-SVN: r230330
Alan Lawrence committed -
2015-11-13 John Marino <gnugcc@marino.st> * testsuite/22_locale/codecvt/always_noconv/char/wrapped_env.cc: Use portable locale name * testsuite/22_locale/codecvt/always_noconv/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/always_noconv/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/always_noconv/wchar_t/3.cc: Likewise. * testsuite/22_locale/codecvt/always_noconv/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/always_noconv/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/encoding/char/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/encoding/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/encoding/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/encoding/wchar_t/3.cc: Likewise. * testsuite/22_locale/codecvt/encoding/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/encoding/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/in/char/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/in/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/in/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/in/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/in/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/length/char/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/length/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/length/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/length/wchar_t/3.cc: Likewise. * testsuite/22_locale/codecvt/length/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/length/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/max_length/char/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/max_length/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/max_length/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/max_length/wchar_t/3.cc: Likewise. * testsuite/22_locale/codecvt/max_length/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/max_length/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/out/char/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/out/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/out/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/out/wchar_t/7.cc: Likewise. * testsuite/22_locale/codecvt/out/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/out/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/unshift/char/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/unshift/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/unshift/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/unshift/wchar_t/3.cc: Likewise. * testsuite/22_locale/codecvt/unshift/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/unshift/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt_byname/50714.cc: Likewise. * testsuite/22_locale/collate/compare/char/1.cc: Likewise. * testsuite/22_locale/collate/compare/char/2.cc: Likewise. * testsuite/22_locale/collate/compare/char/3.cc: Likewise. * testsuite/22_locale/collate/compare/char/wrapped_env.cc: Likewise. * testsuite/22_locale/collate/compare/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate/compare/wchar_t/1.cc: Likewise. * testsuite/22_locale/collate/compare/wchar_t/2.cc: Likewise. * testsuite/22_locale/collate/compare/wchar_t/3.cc: Likewise. * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate/hash/char/2.cc: Likewise. * testsuite/22_locale/collate/hash/char/wrapped_env.cc: Likewise. * testsuite/22_locale/collate/hash/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate/hash/wchar_t/2.cc: Likewise. * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate/transform/char/2.cc: Likewise. * testsuite/22_locale/collate/transform/char/3.cc: Likewise. * testsuite/22_locale/collate/transform/char/wrapped_env.cc: Likewise. * testsuite/22_locale/collate/transform/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate/transform/wchar_t/2.cc: Likewise. * testsuite/22_locale/collate/transform/wchar_t/3.cc: Likewise. * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate_byname/named_equivalence.cc: Likewise. * testsuite/22_locale/ctype/cons/char/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/cons/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/is/char/2.cc: Likewise. * testsuite/22_locale/ctype/is/char/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/is/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/is/wchar_t/2.cc: Likewise. * testsuite/22_locale/ctype/is/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/is/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/narrow/char/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/narrow/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/narrow/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/narrow/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/scan/char/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/scan/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/scan/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/scan/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/to/char/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/to/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/to/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/to/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/widen/char/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/widen/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/widen/wchar_t/2.cc: Likewise. * testsuite/22_locale/ctype/widen/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/widen/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/facet/2.cc: Likewise. * testsuite/22_locale/locale/cons/12352.cc: Likewise. * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise. * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise. * testsuite/22_locale/locale/cons/2.cc: Likewise. * testsuite/22_locale/locale/cons/38365.cc: Likewise. * testsuite/22_locale/locale/cons/38368.cc: Likewise. * testsuite/22_locale/locale/cons/4.cc: Likewise. * testsuite/22_locale/locale/cons/40184.cc: Likewise. * testsuite/22_locale/locale/cons/7.cc: Likewise. * testsuite/22_locale/locale/global_locale_objects/14071.cc: Likewise. * testsuite/22_locale/locale/global_locale_objects/2.cc: Likewise. * testsuite/22_locale/messages/13631.cc: Likewise. * testsuite/22_locale/messages/members/char/1.cc: Likewise. * testsuite/22_locale/messages/members/char/2.cc: Likewise. * testsuite/22_locale/messages/members/char/3.cc: Likewise. * testsuite/22_locale/messages/members/char/wrapped_env.cc: Likewise. * testsuite/22_locale/messages/members/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/messages_byname/named_equivalence.cc: Likewise. * testsuite/22_locale/money_get/get/char/1.cc: Likewise. * testsuite/22_locale/money_get/get/char/10.cc: Likewise. * testsuite/22_locale/money_get/get/char/11.cc: Likewise. * testsuite/22_locale/money_get/get/char/11528.cc: Likewise. * testsuite/22_locale/money_get/get/char/12.cc: Likewise. * testsuite/22_locale/money_get/get/char/13.cc: Likewise. * testsuite/22_locale/money_get/get/char/15.cc: Likewise. * testsuite/22_locale/money_get/get/char/16.cc: Likewise. * testsuite/22_locale/money_get/get/char/17.cc: Likewise. * testsuite/22_locale/money_get/get/char/18.cc: Likewise. * testsuite/22_locale/money_get/get/char/2.cc: Likewise. * testsuite/22_locale/money_get/get/char/3.cc: Likewise. * testsuite/22_locale/money_get/get/char/4.cc: Likewise. * testsuite/22_locale/money_get/get/char/wrapped_env.cc: Likewise. * testsuite/22_locale/money_get/get/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/10.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/11.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/11528.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/12.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/13.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/15.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/16.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/17.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/18.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/char/9780-3.cc: Likewise. * testsuite/22_locale/money_put/put/char/wrapped_env.cc: Likewise. * testsuite/22_locale/money_put/put/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/moneypunct/40712.cc: Likewise. * testsuite/22_locale/moneypunct/members/char/2.cc: Likewise. * testsuite/22_locale/moneypunct/members/char/wrapped_env.cc: Likewise. * testsuite/22_locale/moneypunct/members/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/moneypunct/members/wchar_t/2.cc: Likewise. * testsuite/22_locale/moneypunct/members/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/moneypunct/members/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/moneypunct_byname/named_equivalence.cc: Likewise. * testsuite/22_locale/num_get/get/char/1.cc: Likewise. * testsuite/22_locale/num_get/get/char/3.cc: Likewise. * testsuite/22_locale/num_get/get/char/5.cc: Likewise. * testsuite/22_locale/num_get/get/char/6.cc: Likewise. * testsuite/22_locale/num_get/get/char/9.cc: Likewise. * testsuite/22_locale/num_get/get/char/wrapped_env.cc: Likewise. * testsuite/22_locale/num_get/get/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/1.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/3.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/5.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/6.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/9.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/num_put/put/char/1.cc: Likewise. * testsuite/22_locale/num_put/put/char/20909.cc: Likewise. * testsuite/22_locale/num_put/put/char/20914.cc: Likewise. * testsuite/22_locale/num_put/put/char/3.cc: Likewise. * testsuite/22_locale/num_put/put/char/5.cc: Likewise. * testsuite/22_locale/num_put/put/char/9780-2.cc: Likewise. * testsuite/22_locale/num_put/put/char/wrapped_env.cc: Likewise. * testsuite/22_locale/num_put/put/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/20909.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/20914.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/3.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/5.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/numpunct/members/char/2.cc: Likewise. * testsuite/22_locale/numpunct/members/char/3.cc: Likewise. * testsuite/22_locale/numpunct/members/char/wrapped_env.cc: Likewise. * testsuite/22_locale/numpunct/members/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/numpunct/members/wchar_t/2.cc: Likewise. * testsuite/22_locale/numpunct/members/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/numpunct/members/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/numpunct_byname/named_equivalence.cc: Likewise. * testsuite/22_locale/time_get/date_order/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/date_order/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/date_order/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/date_order/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get/char/2.cc: Likewise. * testsuite/22_locale/time_get/get/wchar_t/2.cc: Likewise. * testsuite/22_locale/time_get/get_date/char/12750.cc: Likewise. * testsuite/22_locale/time_get/get_date/char/2.cc: Likewise. * testsuite/22_locale/time_get/get_date/char/26701.cc: Likewise. * testsuite/22_locale/time_get/get_date/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_date/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_date/wchar_t/12750.cc: Likewise. * testsuite/22_locale/time_get/get_date/wchar_t/2.cc: Likewise. * testsuite/22_locale/time_get/get_date/wchar_t/26701.cc: Likewise. * testsuite/22_locale/time_get/get_date/wchar_t/4.cc: Likewise. * testsuite/22_locale/time_get/get_date/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_date/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_monthname/char/2.cc: Likewise. * testsuite/22_locale/time_get/get_monthname/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_monthname/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_monthname/wchar_t/2.cc: Likewise. * testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_time/char/1.cc: Likewise. * testsuite/22_locale/time_get/get_time/char/2.cc: Likewise. * testsuite/22_locale/time_get/get_time/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_time/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_time/wchar_t/1.cc: Likewise. * testsuite/22_locale/time_get/get_time/wchar_t/2.cc: Likewise. * testsuite/22_locale/time_get/get_time/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_time/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/char/2.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/char/38081-1.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/char/38081-2.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/wchar_t/2.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_year/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_year/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_year/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_year/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_put/put/char/17038.cc: Likewise. * testsuite/22_locale/time_put/put/char/2.cc: Likewise. * testsuite/22_locale/time_put/put/char/3.cc: Likewise. * testsuite/22_locale/time_put/put/char/4.cc: Likewise. * testsuite/22_locale/time_put/put/char/6.cc: Likewise. * testsuite/22_locale/time_put/put/char/7.cc: Likewise. * testsuite/22_locale/time_put/put/char/8.cc: Likewise. * testsuite/22_locale/time_put/put/char/9780-1.cc: Likewise. * testsuite/22_locale/time_put/put/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_put/put/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/17038.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/3.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/4.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/6.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/7.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/8.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/wrapped_locale.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13007.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13171-1.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13171-4.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/14975-1.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/9322.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/13007.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/13171-3.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/9322.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/9520.cc: Likewise. * testsuite/27_io/basic_ios/copyfmt/char/2.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_streambuf/cons/57394.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/char/13007-2.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/char/9322.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/wchar_t/13007-2.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/wchar_t/9322.cc: Likewise. * testsuite/27_io/basic_stringbuf/imbue/char/9322.cc: Likewise. * testsuite/27_io/basic_stringbuf/imbue/wchar_t/9322.cc: Likewise. * testsuite/27_io/manipulators/extended/get_money/char/1.cc: Likewise. * testsuite/27_io/manipulators/extended/get_money/wchar_t/1.cc: Likewise. * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Likewise. * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Likewise. * testsuite/27_io/manipulators/extended/put_money/char/1.cc: Likewise. * testsuite/27_io/manipulators/extended/put_money/wchar_t/1.cc: Likewise. * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Likewise. * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Likewise. * testsuite/27_io/objects/wchar_t/13582-1_xin.cc: Likewise. * testsuite/27_io/objects/wchar_t/9520.cc: Likewise. * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Check for named locale as appropriate for target. * testsuite/util/testsuite_hooks.h (ISO_8859): Define macro to form target's preferred form of locale name. From-SVN: r230329
John Marino committed -
2015-11-13 Christian Bruel <christian.bruel@st.com> PR target/65837 * config/arm/arm.c (arm_option_override): Move NEON check... (arm_option_check_internal): here (arm_file_start): Move .fpu print... (arm_declare_function_name): here (arm_option_print): Dump current fpu name. * config/arm/arm.opt (arm_fpu_index): Mark Save. From-SVN: r230327
Christian Bruel committed -
2015-11-13 Segher Boessenkool <segher@kernel.crashing.org> Kyrylo Tkachov <kyrylo.tkachov@arm.com> * combine.c (subst): Don't substitute or simplify when handling register-wise widening multiply. (force_to_mode): Likewise. * gcc.target/aarch64/umaddl_combine_1.c: New test. From-SVN: r230326
Kyrylo Tkachov committed -
gcc/ * config/nvptx/nvptx.c (nvptx_generate_vector_shuffle): Deal with complex types. libgomp/ * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: New. * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: New. From-SVN: r230325
Nathan Sidwell committed -
2015-11-13 Jennifer Yao <jenny.hyphen.fa@gmail.com> Jonathan Wakely <jwakely@redhat.com> PR libstdc++/58393 PR libstdc++/61580 * acinclude.m4 (GLIBCXX_ENABLE_C99): Perform tests twice, with -std=c++11 as well as -std=c++98, and define separate macros for each. Cache the results of checking for complex math and wide character functions. Reformat for readability. * config.h.in: Regenerate. * include/bits/c++config: Define _GLIBCXX_USE_C99_XXX macros to either _GLIBCXX98_USE_C99_XXX or _GLIBCXX11_USE_C99_XXX according to language standard in use. * config/locale/dragonfly/c_locale.h (std::__convert_from_v): Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO. * config/locale/generic/c_locale.h (std::__convert_from_v): Likewise. * config/locale/gnu/c_locale.h (std::__convert_from_v): Likewise. * config/os/bsd/dragonfly/os_defines.h: Define _GLIBCXX_USE_C99_STDIO, _GLIBCXX_USE_C99_STDLIB, and _GLIBCXX_USE_C99_WCHAR. * configure: Regenerate. * include/bits/basic_string.h: Make numeric conversion functions depend on _GLIBCXX_USE_C99_STDIO, _GLIBCXX_USE_C99_STDLIB, or _GLIBCXX_USE_C99_WCHAR, instead of _GLIBCXX_USE_C99. * include/ext/vstring.h: Likewise. * include/bits/locale_facets.tcc (std::num_put::_M_insert_float): Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO. * include/bits/locale_facets_nonio.tcc (std::money_put::do_put): Likewise. * include/c_compatibility/math.h: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_MATH. * include/c_compatibility/wchar.h: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_WCHAR. * include/c_global/cstdio: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO. * include/c_global/cstdlib: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDLIB. * include/c_global/cwchar: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_WCHAR. * include/c_std/cstdio: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO. * include/c_std/cstdlib: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDLIB. * include/c_std/cwchar: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_WCHAR. * include/tr1/cstdio: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO. * include/tr1/cstdlib: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDLIB. * include/tr1/cwchar: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_WCHAR. * include/tr1/stdlib.h: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDLIB. * src/c++98/locale_facets.cc (std::__num_base::_S_format_float): Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO. * testsuite/18_support/exception_ptr/60612-terminate.cc: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDLIB. * testsuite/18_support/exception_ptr/60612-unexpected.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stod.cc (test01): Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_WCHAR. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/ stof.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/ stoi.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/ stol.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/ stold.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/ stoll.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/ stoul.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/ stoull.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/ to_wstring.cc: Likewise. * testsuite/26_numerics/headers/cstdlib/13943.cc: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDLIB. * testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc: Likewise. * testsuite/lib/libstdc++.exp (check_v3_target_string_conversions): Change preprocessor #if conditional so that it uses _GLIBCXX_USE_C99_STDIO, _GLIBCXX_USE_C99_STDLIB, and _GLIBCXX_USE_C99_WCHAR, instead of _GLIBCXX_USE_C99. * testsuite/tr1/8_c_compatibility/cmath/templates.cc: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_MATH. * testsuite/tr1/8_c_compatibility/cstdio/functions.cc: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO. * testsuite/tr1/8_c_compatibility/cstdlib/functions.cc: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDLIB. * testsuite/tr1/8_c_compatibility/cstdlib/types_std_tr1.cc: Likewise. * testsuite/tr1/8_c_compatibility/cwchar/functions.cc: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_WCHAR. * testsuite/util/testsuite_fs.h: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO. Co-Authored-By: Jonathan Wakely <jwakely@redhat.com> From-SVN: r230324
Jennifer Yao committed -
As reported in PR 68264, tree-call-cdce.c should be using unordered comparisons for the range checks, in order to avoid raising FE_INVALID for quiet NaNs. Tested on x86_64-linux-gnu and aarch64-linux-gnu. The test failed on aarch64-linux-gnu before the patch, but it didn't on x86_64-linux-gnu because it used unordered comparisons for the previous ordered tree codes. gcc/ PR tree-optimization/68264 * tree-call-cdce.c (gen_one_condition): Update commentary. (gen_conditions_for_pow_int_base): Invert the sense of the tests passed to gen_one_condition. (gen_conditions_for_domain): Likewise. Use unordered comparisons. (shrink_wrap_one_built_in_call): Invert the sense of the tests, using EDGE_FALSE_VALUE for edges to the call block and EDGE_TRUE_VALUE for the others. gcc/testsuite/ PR tree-optimization/68264 * gcc.dg/torture/pr68264.c: New test. From-SVN: r230323
Richard Sandiford committed -
PR c/68320 * c-parser.c (c_parser_for_statement): Treat unknown tokens as IDs. * gcc.dg/pr68320.c: New test. From-SVN: r230322
Marek Polacek committed -
gcc/ * gimplify.c (oacc_default_clause): Use inform for enclosing scope. gcc/testsuite/ * c-c++-common/goacc/data-default-1.c: Correct expected From-SVN: r230321
Nathan Sidwell committed -
2015-11-13 Tom de Vries <tom@codesourcery.com> * gen-pass-instances.awk (handle_line): Rename prefix_len var to len_of_prefix. From-SVN: r230320
Tom de Vries committed -
2015-11-13 Tom de Vries <tom@codesourcery.com> * gen-pass-instances.awk (handle_line): Add args_str variable. From-SVN: r230319
Tom de Vries committed
-