aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-05-16re PR fortran/44054 (Handle -Werror, -Werror=, -fdiagnostics-show-option, ↵Manuel López-Ibáñez16-258/+375
!GCC$ diagnostic (pragmas) and color) gcc/fortran/ChangeLog: 2015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org> PR fortran/44054 Replace all calls to gfc_notify_std_1 with gfc_notify_std and gfc_warning_1 with gfc_warning. * decl.c (gfc_verify_c_interop_param): Here. * resolve.c (resolve_branch): Here. (resolve_fl_derived): Here. * dependency.c (gfc_check_argument_var_dependency): * scanner.c (preprocessor_line): Use gfc_warning_now_at. Fix line counter and locations before and after warning. * gfortran.h (gfc_warning_1, gfc_warning_now_1, gfc_notify_std_1): Delete. (gfc_warning_now_at): Declare. * error.c (gfc_warning_1): Delete. (gfc_notify_std_1): Delete. (gfc_warning_now_1): Delete. (gfc_format_decoder): Handle two locations. (gfc_diagnostic_build_prefix): Rename as gfc_diagnostic_build_kind_prefix. (gfc_diagnostic_build_locus_prefix): Take an expanded_location instead of diagnostic_info. (gfc_diagnostic_build_locus_prefix): Add overload that takes two expanded_location. (gfc_diagnostic_starter): Handle two locations. (gfc_warning_now_at): New. (gfc_diagnostics_init): Initialize caret_chars array. (gfc_diagnostics_finish): Reset caret_chars array to default. gcc/cp/ChangeLog: 2015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org> PR fortran/44054 * error.c (cp_diagnostic_starter): Use diagnostic_location function. (cp_print_error_function): Likewise. (cp_printer): Replace locus pointer with accessor function. gcc/c/ChangeLog: 2015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org> PR fortran/44054 * c-objc-common.c (c_tree_printer): Replace locus pointer with accessor function. gcc/ChangeLog: 2015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org> PR fortran/44054 * tree-pretty-print.c (percent_K_format): Replace locus pointer with accessor function. * tree-diagnostic.c (diagnostic_report_current_function): Use diagnostic_location function. (maybe_unwind_expanded_macro_loc): Likewise. (virt_loc_aware_diagnostic_finalizer): Likewise. (default_tree_printer): Replace locus pointer with accessor function. * diagnostic.c (diagnostic_initialize): Initialize caret_chars array. (diagnostic_set_info_translated): Initialize second location. (diagnostic_build_prefix): Use CARET_LINE_MARGIN. (diagnostic_show_locus): Handle two locations. Call diagnostic_print_caret_line. (diagnostic_print_caret_line): New. (default_diagnostic_starter): Use diagnostic_location function. (diagnostic_report_diagnostic): Use diagnostic_location function. (verbatim): Do not set text.locus. * diagnostic.h (struct diagnostic_info): Remove location field. (struct diagnostic_context): Make caret_chars an array of two. (diagnostic_location): New inline. (diagnostic_expand_location): Handle two locations. (diagnostic_same_line): New inline. (diagnostic_print_caret_line): Declare. (CARET_LINE_MARGIN): New constant. * pretty-print.c (pp_printf): Do not set text.locus. (pp_verbatim): Do not set text.locus. * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant. (struct text_info): Replace locus pointer with locations array. Add accessor functions. gcc/testsuite/ChangeLog: 2015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org> PR fortran/44054 * lib/gfortran-dg.exp: Update regex to handle two locations for the same diagnostic without caret. * gfortran.dg/badline.f: Test also that line numbers are correct before and after "left but not entered" warning. From-SVN: r223237
2015-05-16re PR fortran/44054 (Handle -Werror, -Werror=, -fdiagnostics-show-option, ↵Manuel López-Ibáñez5-0/+84
!GCC$ diagnostic (pragmas) and color) gcc/fortran/ChangeLog: 2015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org> PR fortran/44054 Replace all calls to gfc_notify_std_1 with gfc_notify_std and gfc_warning_1 with gfc_warning. * decl.c (gfc_verify_c_interop_param): Here. * resolve.c (resolve_branch): Here. (resolve_fl_derived): Here. * dependency.c (gfc_check_argument_var_dependency): * scanner.c (preprocessor_line): Use gfc_warning_now_at. Fix line counter and locations before and after warning. * gfortran.h (gfc_warning_1, gfc_warning_now_1, gfc_notify_std_1): Delete. (gfc_warning_now_at): Declare. * error.c (gfc_warning_1): Delete. (gfc_notify_std_1): Delete. (gfc_warning_now_1): Delete. (gfc_format_decoder): Handle two locations. (gfc_diagnostic_build_prefix): Rename as gfc_diagnostic_build_kind_prefix. (gfc_diagnostic_build_locus_prefix): Take an expanded_location instead of diagnostic_info. (gfc_diagnostic_build_locus_prefix): Add overload that takes two expanded_location. (gfc_diagnostic_starter): Handle two locations. (gfc_warning_now_at): New. (gfc_diagnostics_init): Initialize caret_chars array. (gfc_diagnostics_finish): Reset caret_chars array to default. gcc/cp/ChangeLog: 2015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org> PR fortran/44054 * error.c (cp_diagnostic_starter): Use diagnostic_location function. (cp_print_error_function): Likewise. (cp_printer): Replace locus pointer with accessor function. gcc/c/ChangeLog: 2015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org> PR fortran/44054 * c-objc-common.c (c_tree_printer): Replace locus pointer with accessor function. gcc/ChangeLog: 2015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org> PR fortran/44054 * tree-pretty-print.c (percent_K_format): Replace locus pointer with accessor function. * tree-diagnostic.c (diagnostic_report_current_function): Use diagnostic_location function. (maybe_unwind_expanded_macro_loc): Likewise. (virt_loc_aware_diagnostic_finalizer): Likewise. (default_tree_printer): Replace locus pointer with accessor function. * diagnostic.c (diagnostic_initialize): Initialize caret_chars array. (diagnostic_set_info_translated): Initialize second location. (diagnostic_build_prefix): Use CARET_LINE_MARGIN. (diagnostic_show_locus): Handle two locations. Call diagnostic_print_caret_line. (diagnostic_print_caret_line): New. (default_diagnostic_starter): Use diagnostic_location function. (diagnostic_report_diagnostic): Use diagnostic_location function. (verbatim): Do not set text.locus. * diagnostic.h (struct diagnostic_info): Remove location field. (struct diagnostic_context): Make caret_chars an array of two. (diagnostic_location): New inline. (diagnostic_expand_location): Handle two locations. (diagnostic_same_line): New inline. (diagnostic_print_caret_line): Declare. (CARET_LINE_MARGIN): New constant. * pretty-print.c (pp_printf): Do not set text.locus. (pp_verbatim): Do not set text.locus. * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant. (struct text_info): Replace locus pointer with locations array. Add accessor functions. gcc/testsuite/ChangeLog: 2015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org> PR fortran/44054 * lib/gfortran-dg.exp: Update regex to handle two locations for the same diagnostic without caret. * gfortran.dg/badline.f: Test also that line numbers are correct before and after "left but not entered" warning. From-SVN: r223236
2015-05-16re PR target/65768 (sub-optimimal code for constant Uses in loop)Kugan Vivekanandarajah5-21/+87
gcc/ChangeLog: 2015-05-16 Kugan Vivekanandarajah <kuganv@linaro.org> Zhenqiang Chen <zhenqiang.chen@linaro.org> PR target/65768 * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro. * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some large constants in register instead of splitting them. gcc/testsuite/ChangeLog: 2015-05-16 Kugan Vivekanandarajah <kuganv@linaro.org> Zhenqiang Chen <zhenqiang.chen@linaro.org> PR target/65768 * gcc.target/arm/maskdata.c: New test. Co-Authored-By: Zhenqiang Chen <zhenqiang.chen@linaro.org> From-SVN: r223235
2015-05-162015-05-16 Mikael Morin <mikael@gcc.gnu.orgMikael Morin4-6/+93
Paul Thomas <pault@gcc.gnu.org> PR fortran/65792 * trans-expr.c (gfc_trans_subcomponent_assign): Always assign the expression component to the destination. In addition, if the component has allocatable components, copy them and deallocate those of the expression, if it is not a variable. The expression is fixed if not a variable to prevent multiple evaluations. 2015-05-16 Mikael Morin <mikael@gcc.gnu.org> PR fortran/65792 * gfortran.dg/derived_constructor_components_5: New test From-SVN: r223234
2015-05-16re PR target/66140 (ICE at extract_insn, at recog.c:2343 when compiling for ↵Uros Bizjak4-5/+67
alpha with gcc-5.1.1) PR target/66140 * config/alpha/alpha.c (get_aligned_mem): Also look for reload replacements in memory addresses. (get_unaligned_address): Ditto. testsuite/ChangeLog: PR target/66140 * gcc.target/alpha/pr66140.c: New test. From-SVN: r223232
2015-05-16libgo: Use __USING_SJLJ_EXCEPTIONS__ rather than configure test.Ian Lance Taylor4-121/+3
From Eric Botcazou. From-SVN: r223231
2015-05-16Daily bump.GCC Administrator1-1/+1
From-SVN: r223230
2015-05-15ops.cc (stat_type): Define alias for struct stat and use throughout the file.Jonathan Wakely7-42/+384
* src/filesystem/ops.cc (stat_type): Define alias for struct stat and use throughout the file. (make_file_type): New function. (file_size(const path&, error_code&)): Report an error for anything that isn't a regular file. (status(const path&), symlink_status(const path&)): Do not throw for file_type::not_found. (temp_directory_path()): Check additional environment variables. * testsuite/experimental/filesystem/operations/exists.cc: New. * testsuite/experimental/filesystem/operations/file_size.cc: New. * testsuite/experimental/filesystem/operations/status.cc: New. * testsuite/experimental/filesystem/operations/temp_directory_path.cc: New. From-SVN: r223224
2015-05-15re PR c/48956 (-Wconversion should warn when a complex value is assigned to ↵Mikhail Maltsev6-23/+446
a real result) PR c/48956 gcc/c-family/ * c-common.c (int_safely_convertible_to_real_p): Define. (unsafe_conversion_p): Check conversions involving complex types. (conversion_warning): Add new warning message for conversions which discard imaginary component. * c-common.h: (enum conversion_safety): Add new enumerator for such conversions. gcc/testsuite/ * gcc.dg/Wconversion-complex-c99.c: New test. * gcc.dg/Wconversion-complex-gnu.c: New test. From-SVN: r223223
2015-05-15re PR tree-optimization/64454 (optimize (x%5)%5)Marc Glisse4-3/+42
2015-05-15 Marc Glisse <marc.glisse@inria.fr> PR tree-optimization/64454 gcc/ * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns. (-1 - A -> ~A): Remove unnecessary condition. gcc/testsuite/ * gcc.dg/modmod.c: New testcase. From-SVN: r223221
2015-05-15Add support for CFI directives in fp emulation routines for ARM.Martin Galvan4-30/+271
2015-05-15 Martin Galvan <martin.galvan@tallertechnologies.com> * config/arm/lib1funcs.S (CFI_START_FUNCTION, CFI_END_FUNCTION): New macros. * config/arm/ieee754-df.S: Add CFI directives. * config/arm/ieee754-sf.S: Add CFI directives. From-SVN: r223220
2015-05-15[PATCH 9/13] x86 musl supportGregor Richards3-0/+16
On behalf of Szabolcs Nagy. 2015-05-15 Gregor Richards <gregor.richards@uwaterloo.ca> * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define. * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define. (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define. From-SVN: r223218
2015-05-15Add missed testcase for 223215.Ilya Enkovich1-0/+17
From-SVN: r223217
2015-05-15ipa-chkp.h (chkp_wrap_function): New.Ilya Enkovich6-8/+91
gcc/ * ipa-chkp.h (chkp_wrap_function): New. * ipa-chkp.c (chkp_wrap_function): Remove 'static'. (chkp_wrap_function_name): New. (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name to get wrapper name. * lto-cgraph.c: Include ipa-chkp.h. (input_cgraph_1): Avoid alias chain for wrappers. gcc/testsuite/ * gcc.dg/lto/chkp-wrap-asm-name_0.c: New. From-SVN: r223216
2015-05-15re PR middle-end/66134 ([CHKP] ICE: Unable to coalesce ssa_names 18 and 17 ↵Ilya Enkovich3-5/+26
which are marked as MUST COALESCE) gcc/ PR middle-end/66134 * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New. (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy. gcc/testsuite/ PR middle-end/66134 * gcc.target/i386/mpx/pr66134.c: New test. From-SVN: r223215
2015-05-15[AArch64] Removed unused SLOWMUL target flagsKyrylo Tkachov2-4/+9
* config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete. (AARCH64_FL_SLOWMUL): Delete. (AARCH64_FL_CRC): Redefine to 1<<3. (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4. From-SVN: r223214
2015-05-15Apply arm.h change for previous commit.Ramana Radhakrishnan1-2/+2
2015-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate casting. From-SVN: r223213
2015-05-15Fix up bootstrap and fix typo in related changelog entry.Ramana Radhakrishnan1-1/+6
2015-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate casting. From-SVN: r223212
2015-05-15alpha.md (extendqidi2): Use general_operand instead of some_operand for ↵Uros Bizjak3-20/+17
operand[1] predicate. * config/alpha/alpha.md (extendqidi2): Use general_operand instead of some_operand for operand[1] predicate. (extendhidi2): Ditto. (cbranchdi4): Use general_operand instead of some_operand for operand[1] and operands[2] predicates. (cstoredi4): Ditto. * config/alpha/predicates.md (some_operand): Remove unused predicate. (some_ni_operand): Ditto. From-SVN: r223211
2015-05-15alpha.c (alpha_extract_integer): Do not handle CONST_WIDE_INT and CONST_DOUBLE.Uros Bizjak2-22/+25
* config/alpha/alpha.c (alpha_extract_integer): Do not handle CONST_WIDE_INT and CONST_DOUBLE. Assert CONST_INT_P (x). (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and low part of the constant using alpha_emit_set_const_1. (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE. From-SVN: r223210
2015-05-14varasm.c (output_constant_pool_1): Pass down alignment from constant pool ↵Rohit Arul Raj4-2/+108
entry's descriptor to output_constant_pool_2. 2015-05-14 Rohit Arul Raj <rohitrulraj@freescale.com> * varasm.c (output_constant_pool_1): Pass down alignment from constant pool entry's descriptor to output_constant_pool_2. (output_object_block): Add comment prior to call to output_constant_pool_1. * gcc.target/powerpc/pr60158.c: New test. From-SVN: r223209
2015-05-15Daily bump.GCC Administrator1-1/+1
From-SVN: r223208
2015-05-14re PR rtl-optimization/65862 ([MIPS] IRA/LRA issue: integers spilled to ↵Vladimir Makarov7-1/+54
floating-point registers) 2015-05-14 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/65862 * target.def (ira_change_pseudo_allocno_class): New hook. * targhooks.c (default_ira_change_pseudo_allocno_class): Default value of the hook. * targhooks.h (default_ira_change_pseudo_allocno_class): New extern * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the hook. * ira-costs.c (find_costs_and_classes): Call the hook and change classes when it is necessary. * doc/tm.texi: Update. From-SVN: r223202
2015-05-14i386.md (sibcall_memory): Check that register with callee address is not ↵Alexander Monakov5-9/+65
also used as one of the arguments... * config/i386/i386.md (sibcall_memory): Check that register with callee address is not also used as one of the arguments, instead of checking that it is not live after the sibcall. (sibcall_pop_memory): Ditto. (sibcall_value_memory): Ditto. (sibcall_value_pop_memory): Ditto. testsuite: * gcc.target/i386/sibcall-7.c: New test. * gcc.target/i386/sibcall-8.c: New test. From-SVN: r223201
2015-05-14generic-match-head.c (types_match): Handle non-types.Marc Glisse4-7/+25
2015-05-14 Marc Glisse <marc.glisse@inria.fr> gcc/ * generic-match-head.c (types_match): Handle non-types. * gimple-match-head.c (types_match): Likewise. * match.pd: Remove unnecessary TREE_TYPE for types_match. From-SVN: r223199
2015-05-14re PR libstdc++/66055 (hash containers missing required reserving constructors)Nathan Myers7-0/+174
2015-05-14 Nathan Myers <ncm@cantrip.org> Jonathan Wakely <jwakely@redhat.com> PR libstdc++/66055 * include/std/unordered_map (unordered_map, unordered_multimap): Add missing constructors. * include/std/unordered_set (unordered_set, unordered_multiset): Likewise. * testsuite/23_containers/unordered_map/cons/66055.cc: New. * testsuite/23_containers/unordered_multimap/cons/66055.cc: New. * testsuite/23_containers/unordered_multiset/cons/66055.cc: New. * testsuite/23_containers/unordered_set/cons/66055.cc: New. Co-Authored-By: Jonathan Wakely <jwakely@redhat.com> From-SVN: r223198
2015-05-14[AArch64] Use conditional negate for absWilco Dijkstra4-28/+19
2015-05-14 Wilco Dijkstra <wdijkstr@arm.com> gcc/ * config/aarch64/aarch64.md (absdi2): Optimize abs expansion. (csneg3<mode>_insn): Enable expansion of pattern. gcc/testsuite/ * gcc.target/aarch64/abs_1.c (abs64): Update test for new abs expansion. (abs64_in_dreg): Likewise. From-SVN: r223197
2015-05-14re PR libstdc++/66011 (call to '__open_missing_mode' declared with attribute ↵Jonathan Wakely5-21/+197
error) PR libstdc++/66011 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for fchmod and sendfile. * config.h.in: Regenerate. * configure: Regenerate. * src/filesystem/ops.cc (do_copy_file): Fix arguments to open(). Do not return after copying contents. Use fchmod, fchmodat, and sendfile when available. (current_path, permissions, space): Use errno not return value. From-SVN: r223196
2015-05-14re PR libstdc++/66018 (opendir configure test not working when ↵Jonathan Wakely5-278/+100
GCC_NO_EXECUTABLES) PR libstdc++/66018 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for struct dirent.d_type. * config.h.in: Regenerate. * configure: Regenerate. * configure.ac (AC_STRUCT_DIRENT_D_TYPE): Remove. From-SVN: r223194
2015-05-14re PR c/66066 (r222889 causes bogus error: initializer element is not constant)Marek Polacek10-19/+191
PR c/66066 PR c/66127 * c-common.c (c_fully_fold): Pass false down to c_fully_fold_internal. (c_fully_fold_internal): Fold C_MAYBE_CONST_EXPRs with C_MAYBE_CONST_EXPR_INT_OPERANDS set. Add FOR_INT_CONST argument and use it. If FOR_INT_CONST, require that all evaluated operands be INTEGER_CSTs. * c-typeck.c (digest_init): Call pedwarn_init with OPT_Wpedantic rather than with 0. * gcc.dg/pr14649-1.c: Add -Wpedantic. * gcc.dg/pr19984.c: Likewise. * gcc.dg/pr66066-1.c: New test. * gcc.dg/pr66066-2.c: New test. * gcc.dg/pr66066-3.c: New test. From-SVN: r223193
2015-05-14rl78.c (rl78_select_section): Select the correct default section based upon ↵Nick Clifton2-3/+16
the category of the decl. * config/rl78/rl78.c (rl78_select_section): Select the correct default section based upon the category of the decl. From-SVN: r223192
2015-05-14Daily bump.GCC Administrator1-1/+1
From-SVN: r223189
2015-05-13sjlj.m4: New file.Eric Botcazou31-531/+140
config/ * sjlj.m4: New file. libgcc/ * configure.ac: Include config/sjlj.m4. Remove manual SJLJ check, add GCC_CHECK_SJLJ_EXCEPTIONS and adjust. * config.in: Regenerate. * configure: Likewise. * config.host: Replace enable_sjlj_exceptions by ac_cv_sjlj_exceptions. libjava/ * configure.ac: Include config/sjlj.m4. Remove manual SJLJ check, add GCC_CHECK_SJLJ_EXCEPTIONS and adjust. * include/config.h.in: Regenerate. * configure: Likewise. * exception.cc: Replace SJLJ_EXCEPTIONS by __USING_SJLJ_EXCEPTIONS__. * stacktrace.cc: Likewise. * include/default-signal.h: Likewise. * sysdep/i386/backtrace.h: Likewise. libobjc/ * configure.ac: Remove manual SJLJ check. * config.h.in: Regenerate. * configure: Likewise. * exception.c: Replace SJLJ_EXCEPTIONS by __USING_SJLJ_EXCEPTIONS__. libstdc++-v3/ * acinclude.m4 (GLIBCXX_ENABLE_SJLJ_EXCEPTIONS): Delete. * configure.ac: Remove GLIBCXX_ENABLE_SJLJ_EXCEPTIONS. * config.h.in: Regenerate. * configure: Likewise. * libsupc++/eh_personality.cc: Replace _GLIBCXX_SJLJ_EXCEPTIONS by __USING_SJLJ_EXCEPTIONS__. * libsupc++/eh_throw.cc: Likewise. * libsupc++/eh_ptr.cc: Likewise. * doc/html/manual/appendix_porting.html: Remove GLIBCXX_ENABLE_SJLJ_EXCEPTIONS * doc/xml/manual/build_hacking.xml: Likewise. * doc/html/manual/configure.html: Remove --enable-sjlj-exceptions. * doc/xml/manual/configure.xml: Likewise. From-SVN: r223181
2015-05-13re PR rtl-optimization/30967 (Extra sign/zero extend with word comparison ↵Segher Boessenkool2-1/+7
result) PR rtl-optimization/30967 * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider destination mode for the cost of scc patterns. From-SVN: r223174
2015-05-13i386.md (*mul<mode>3_1): Merge with *mulhi3_1 using SWIM248 mode iterator.Uros Bizjak2-101/+67
* config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1 using SWIM248 mode iterator. (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint. (*mulvhi4): mark operand[1] as commutative. Use nonimmediate_operand for operand[2] constraint. (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator. From-SVN: r223173
2015-05-13re PR middle-end/66133 (Wrong-code with noreturn #pragma omp task body)Jakub Jelinek4-5/+96
PR middle-end/66133 * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion, make sure it is never noreturn, even when the task body does not return. (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE right before GIMPLE_OMP_RETURN. (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont for GIMPLE_OMP_TASK. For GIMPLE_OMP_RETURN corresponding to GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit. * testsuite/libgomp.c/pr66133.c: New test. From-SVN: r223171
2015-05-13shared_ptr_base.h (__shared_count(unique_ptr&&)): Check for nullptr (LWG 2415).Jonathan Wakely5-4/+28
* include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)): Check for nullptr (LWG 2415). * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Test construction from empty unique_ptr. * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error. * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise. From-SVN: r223170
2015-05-13[tree-ssa-math-opts] Expand pow (x, CONST) using square roots when possibleKyrylo Tkachov9-85/+491
* params.def (PARAM_MAX_POW_SQRT_DEPTH): New param. * tree-ssa-math-opts.c: Include params.h (pow_synth_sqrt_info): New struct. (representable_as_half_series_p): New function. (get_fn_chain): Likewise. (print_nested_fn): Likewise. (dump_fractional_sqrt_sequence): Likewise. (dump_integer_part): Likewise. (expand_pow_as_sqrts): Likewise. (gimple_expand_builtin_pow): Use above to attempt to expand pow as series of square roots. Removed now unused variables. * gcc.target/aarch64/pow-sqrt-synth-1.c: New test. * gcc.dg/pow-sqrt.x: New file. * gcc.dg/pow-sqrt-1.c: New test. * gcc.dg/pow-sqrt-2.c: Likewise. * gcc.dg/pow-sqrt-3.c: Likewise. From-SVN: r223167
2015-05-13alpha.c (alpha_emit_set_long_const): Remove c1 argument.Uros Bizjak3-30/+37
* config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument. (alpha_extract_integer): Redeclare as static HOST_WIDE_INT. Remove *p0 and *p1 arguments. Rewrite function. (alpha_legitimate_constant_p): Update call to alpha_extract_integer. (alpha_split_const_mov): Update calls to alpha_extract_integer and alpha_emit_set_long_const. (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const. (alpha_output_mi_thunk_osf): Ditto. * config/alpha/alpha.md (movti): Do not check operands[1] for CONST_DOUBLE. From-SVN: r223166
2015-05-13re PR tree-optimization/66129 (FAIL: gcc.dg/vect/vect-strided-*c execution test)Richard Biener2-1/+9
2015-05-13 Richard Biener <rguenther@suse.de> PR tree-optimization/66129 * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are commutative. (vect_schedule_slp_instance): Fix typo. From-SVN: r223164
2015-05-13libcpp/input.c: Add a way to visualize the linemaps (-fdump-internal-locations)David Malcolm8-1/+471
gcc/ChangeLog: * common.opt (fdump-internal-locations): New option. * input.c: Include diagnostic-core.h. (get_end_location): New function. (write_digit): New function. (write_digit_row): New function. (dump_location_range): New function. (dump_labelled_location_range): New function. (dump_location_info): New function. * input.h (dump_location_info): New prototype. * toplev.c (compile_file): Handle flag_dump_locations. libcpp/ChangeLog: * include/line-map.h (source_location): Add a reference to location-example.txt to the descriptive comment. * location-example.txt: New file. From-SVN: r223163
2015-05-13stl_raw_storage_iter.h (raw_storage_iterator::base()): Define (LWG 2454).Jonathan Wakely3-0/+44
* include/bits/stl_raw_storage_iter.h (raw_storage_iterator::base()): Define (LWG 2454). * testsuite/20_util/raw_storage_iterator/base.cc: New. From-SVN: r223162
2015-05-13future (packaged_task(allocator_arg_t, const A&, F&&): Remove explicit (LWG ↵Jonathan Wakely2-1/+4
2407). * include/std/future (packaged_task(allocator_arg_t, const A&, F&&): Remove explicit (LWG 2407). From-SVN: r223161
2015-05-13basic_string.h (basic_string::basic_string()): Make noexcept conditional on ↵Jonathan Wakely2-1/+7
allocator (LWG 2455). * include/bits/basic_string.h (basic_string::basic_string()): Make noexcept conditional on allocator (LWG 2455). From-SVN: r223160
2015-05-13* include/std/complex (polar): Check for negative rho (LWG 2459).Jonathan Wakely2-1/+6
From-SVN: r223159
2015-05-13tuple (apply): Handle pointers to member (LWG 2418).Jonathan Wakely4-6/+31
* include/experimental/tuple (apply): Handle pointers to member (LWG 2418). * include/std/functional (_Mem_fn_base): Make constructors constexpr. (_Maybe_wrap_member_pointer::__do_wrap): Make constexpr. * testsuite/experimental/tuple/apply.cc: Test pointer to member. From-SVN: r223158
2015-05-13gimple-expr.h (is_gimple_constant): Reorder.Eric Botcazou3-4/+7
* gimple-expr.h (is_gimple_constant): Reorder. * tree-ssa-propagate.c (before_dom_children): Use inline accessor. From-SVN: r223156
2015-05-13* include/bits/random.h (seed_seq): More noexcept (LWG 2440).Jonathan Wakely2-4/+4
From-SVN: r223155
2015-05-13alloc_traits.h (_S_max_size): Implement LWG 2466.Jonathan Wakely13-12/+46
* include/bits/alloc_traits.h (_S_max_size): Implement LWG 2466. * testsuite/20_util/allocator_traits/members/max_size.cc: Adjust. * testsuite/23_containers/forward_list/allocator/minimal.cc: Likewise. * testsuite/23_containers/map/allocator/minimal.cc: Likewise. * testsuite/23_containers/multimap/allocator/minimal.cc: Likewise. * testsuite/23_containers/multiset/allocator/minimal.cc: Likewise. * testsuite/23_containers/set/allocator/minimal.cc: Likewise. * testsuite/23_containers/unordered_map/allocator/minimal.cc: Likewise. * testsuite/23_containers/unordered_multimap/allocator/minimal.cc: Likewise. * testsuite/23_containers/unordered_multiset/allocator/minimal.cc: Likewise. * testsuite/23_containers/unordered_set/allocator/minimal.cc: Likewise. * testsuite/util/testsuite_allocator.h: Remove unused parameter. From-SVN: r223154
2015-05-13libcpp: Replace macro usage with C++ constructsDavid Malcolm3-113/+517
libcpp/ChangeLog: * include/line-map.h (MAX_SOURCE_LOCATION): Convert from a macro to a const source_location. (RESERVED_LOCATION_COUNT): Likewise. (linemap_check_ordinary): Convert from a macro to a pair of inline functions, for const/non-const arguments. (MAP_START_LOCATION): Likewise. (ORDINARY_MAP_STARTING_LINE_NUMBER): Likewise. (ORDINARY_MAP_INCLUDER_FILE_INDEX): Likewise. (ORDINARY_MAP_IN_SYSTEM_HEADER_P): Likewise. (ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): Convert from a macro to a pair of inline functions, for const/non-const arguments, where the latter is named... (SET_ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): New function. (ORDINARY_MAP_FILE_NAME): Convert from a macro to a pair of inline functions, for const/non-const arguments. (MACRO_MAP_MACRO): Likewise. (MACRO_MAP_NUM_MACRO_TOKENS): Likewise. (MACRO_MAP_LOCATIONS): Likewise. (MACRO_MAP_EXPANSION_POINT_LOCATION): Likewise. (LINEMAPS_MAP_INFO): Likewise. (LINEMAPS_MAPS): Likewise. (LINEMAPS_ALLOCATED): Likewise. (LINEMAPS_USED): Likewise. (LINEMAPS_CACHE): Likewise. (LINEMAPS_ORDINARY_CACHE): Likewise. (LINEMAPS_MACRO_CACHE): Likewise. (LINEMAPS_MAP_AT): Convert from a macro to an inline function. (LINEMAPS_LAST_MAP): Likewise. (LINEMAPS_LAST_ALLOCATED_MAP): Likewise. (LINEMAPS_ORDINARY_MAPS): Likewise. (LINEMAPS_ORDINARY_MAP_AT): Likewise. (LINEMAPS_ORDINARY_ALLOCATED): Likewise. (LINEMAPS_ORDINARY_USED): Likewise. (LINEMAPS_LAST_ORDINARY_MAP): Likewise. (LINEMAPS_LAST_ALLOCATED_ORDINARY_MAP): Likewise. (LINEMAPS_MACRO_MAPS): Likewise. (LINEMAPS_MACRO_MAP_AT): Likewise. (LINEMAPS_MACRO_ALLOCATED): Likewise. (LINEMAPS_MACRO_USED): Likewise. (LINEMAPS_MACRO_LOWEST_LOCATION): Likewise. (LINEMAPS_LAST_MACRO_MAP): Likewise. (LINEMAPS_LAST_ALLOCATED_MACRO_MAP): Likewise. (IS_ADHOC_LOC): Likewise. (COMBINE_LOCATION_DATA): Likewise. (SOURCE_LINE): Likewise. (SOURCE_COLUMN): Likewise. (LAST_SOURCE_LINE_LOCATION): Likewise. (LAST_SOURCE_LINE): Likewise. (LAST_SOURCE_COLUMN): Likewise. (LAST_SOURCE_LINE_LOCATION) (INCLUDED_FROM): Likewise. (MAIN_FILE_P): Likewise. (LINEMAP_FILE): Likewise. (LINEMAP_LINE): Likewise. (LINEMAP_SYSP): Likewise. (linemap_location_before_p): Likewise. * line-map.c (linemap_check_files_exited): Make local "map" const. (linemap_add): Use SET_ORDINARY_MAP_NUMBER_OF_COLUMN_BITS. (linemap_line_start): Likewise. From-SVN: r223152