aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2016-10-27builtins.c (expand_builtin_nonlocal_goto): Avoid evaluating ↵Aldy Hernandez2-2/+7
PIC_OFFSET_TABLE_REGNUM twice. * builtins.c (expand_builtin_nonlocal_goto): Avoid evaluating PIC_OFFSET_TABLE_REGNUM twice. From-SVN: r241625
2016-10-27match.pd ((convert (op:s (convert@2 @0) (convert?@3 @1)))): Add support for ↵Bin Cheng4-5/+32
constant operand for OP. * match.pd ((convert (op:s (convert@2 @0) (convert?@3 @1)))): Add support for constant operand for OP. gcc/testsuite * gcc.dg/fold-narrowbopcst-1.c: New test. From-SVN: r241624
2016-10-27Fix some DEC I/O testcases.Fritz Reese3-7/+29
gcc/testsuite/gfortran.dg/ * dec_io_5.f90, dec_io_6.f90: Don't use "test.txt", and use dg-shouldfail/dg-output instead of XFAIL. From-SVN: r241623
2016-10-27dwarf2out.c (gen_member_die): Only reparent_child instead of ↵Jakub Jelinek2-1/+7
splice_child_die if... * dwarf2out.c (gen_member_die): Only reparent_child instead of splice_child_die if child doesn't have DW_AT_specification attribute. From-SVN: r241622
2016-10-27* class.c (add_method): Allow using-declarations to coexist.Jason Merrill3-0/+28
From-SVN: r241620
2016-10-27Enable ARMv8-M atomic and synchronization support for ARMv8-M BaselineThomas Preud'homme13-3/+127
2016-10-27 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/ * config/arm/arm.h (TARGET_HAVE_LDREX): Define for ARMv8-M Baseline. (TARGET_HAVE_LDREXBH): Likewise. (TARGET_HAVE_LDACQ): Likewise. gcc/testsuite/ * gcc.target/arm/atomic-comp-swap-release-acquire-3.c: New test. * gcc.target/arm/atomic-op-acq_rel-3.c: Likewise. * gcc.target/arm/atomic-op-acquire-3.c: Likewise. * gcc.target/arm/atomic-op-char-3.c: Likewise. * gcc.target/arm/atomic-op-consume-3.c: Likewise. * gcc.target/arm/atomic-op-int-3.c: Likewise. * gcc.target/arm/atomic-op-relaxed-3.c: Likewise. * gcc.target/arm/atomic-op-release-3.c: Likewise. * gcc.target/arm/atomic-op-seq_cst-3.c: Likewise. * gcc.target/arm/atomic-op-short-3.c: Likewise. From-SVN: r241615
2016-10-27Adapt other atomic operations to ARMv8-M BaselineThomas Preud'homme4-37/+161
2016-10-27 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/ * config/arm/arm.c (arm_split_atomic_op): Add function comment. Add logic to to decide whether to copy over old value to register for new value. * config/arm/sync.md: Add comments explaning why mode and code attribute are not defined in iterators.md (thumb1_atomic_op_str): New code attribute. (thumb1_atomic_newop_str): Likewise. (thumb1_atomic_fetch_op_str): Likewise. (thumb1_atomic_fetch_newop_str): Likewise. (thumb1_atomic_fetch_oldop_str): Likewise. (atomic_exchange<mode>): Add new ARMv8-M Baseline only alternatives to mirror the more restrictive constraints of the Thumb-1 insns after split compared to Thumb-2 counterpart insns. (atomic_<sync_optab><mode>): Likewise. Add comment to keep constraints in sync with non atomic version. (atomic_nand<mode>): Likewise. (atomic_fetch_<sync_optab><mode>): Likewise. (atomic_fetch_nand<mode>): Likewise. (atomic_<sync_optab>_fetch<mode>): Likewise. (atomic_nand_fetch<mode>): Likewise. * config/arm/thumb1.md (thumb1_addsi3): Add comment to keep contraint in sync with atomic version. (thumb1_subsi3_insn): Likewise. (thumb1_andsi3_insn): Likewise. (thumb1_iorsi3_insn): Likewise. (thumb1_xorsi3_insn): Likewise. From-SVN: r241614
2016-10-27plugin.c (register_plugin_info): Produce an error message if the plugin is ↵Nick Clifton2-1/+14
not found in the hash table. * plugin.c (register_plugin_info): Produce an error message if the plugin is not found in the hash table. From-SVN: r241613
2016-10-27match.pd ((convert1 (minmax ((convert2 (x) c)))) -> minmax (x c)): New pattern.Bin Cheng5-0/+51
* match.pd ((convert1 (minmax ((convert2 (x) c)))) -> minmax (x c)): New pattern. gcc/testsuite * gcc.dg/fold-convmaxconv-1.c: New test. * gcc.dg/fold-convminconv-1.c: New test. From-SVN: r241612
2016-10-27re PR fortran/78092 (ICE when calling SIZEOF on CLASS(*) entry)Steven G. Kargl4-1/+35
2016-10-26 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/78092 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Fix reference to an array element of type CLASS. 2016-10-26 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/78092 * gfortran.dg/pr78092.f90: New test. From-SVN: r241610
2016-10-27Daily bump.GCC Administrator1-1/+1
From-SVN: r241609
2016-10-26sh.c (output_branch): Add missing fallthru comments.Jeff Law3-2/+11
* config/sh/sh.c (output_branch): Add missing fallthru comments. (gen_shl_and): Likewise. * config/sh/sh.md (movsicc): Add missing fallthru comments. From-SVN: r241600
2016-10-26re PR target/78056 (build failure on Power7)Kelvin Nilsen6-6/+92
gcc/ChangeLog: 2016-10-26 Kelvin Nilsen <kelvin@gcc.gnu.org> PR target/78056 * config/rs6000/rs6000.c (spe_init_builtins): Modify loops to not define builtin functions from the bdesc_spe_predicates or bdesc_spe_evsel arrays if the builtin mask is not compatible with the current compiler configuration. (paired_init_builtins): Modify loop to not define define builtin functions from the bdesc_paried_preds array if the builtin mask is not compatible with the current compiler configuration. (altivec_init_builtins): Modify loops to not define the __builtin_altivec_stxvl function nor the builtin functions from the bdesc_dst or bdesc_altivec_preds, or bdesc_abs arrays if the builtin mask is not compatible with the current compiler configuration. gcc/testsuite/ChangeLog: 2016-10-26 Kelvin Nilsen <kelvin@gcc.gnu.org> PR target/78056 * gcc.target/powerpc/vsu/vec-any-eqz-7.c (test_any_equal): Change expected error message. * gcc.target/powerpc/vsu/vec-xst-len-12.c (store_data): Change expected error message. * gcc.target/powerpc/vsu/vec-all-nez-7.c (test_all_not_equal_and_not_zero): Change expected error message. From-SVN: r241599
2016-10-26mips.c (mips16_constant_cost): Add missing fallthru comments.Jeff Law2-2/+11
* config/mips/mips.c (mips16_constant_cost): Add missing fallthru comments. (mips16_build_call_stub): Increase buffer size. Adjust fallthru comment. From-SVN: r241597
2016-10-26Show INSN_UIDs in compact modeDavid Malcolm4-9/+17
gcc/ChangeLog: * print-rtl.c (rtx_writer::print_rtx_operand_code_u): Print INSN_UIDs for all insns in compact mode. (rtx_writer::print_rtx): Likewise. * print-rtl.h (rtx_writer::flag_compact): Update comment. * rtl-tests.c (selftest::test_dumping_insns): Update expected output to include INSN_UID. (selftest::test_uncond_jump): Likewise. From-SVN: r241593
2016-10-26haifa-sched.c (call_used_regs_num): Rename to...Pat Haugen2-12/+28
* haifa-sched.c (call_used_regs_num): Rename to... (call_saved_regs_num): ...this. (fixed_regs_num): New variable. (sched_pressure_start_bb): Subtract out fixed_regs. Scale call_saved regs not call_used. (alloc_global_sched_pressure_data): Compute call_saved and fixed regs. From-SVN: r241590
2016-10-26microblaze.c (tls_mentioned_p): Avoid fallthru.Jeff Law2-0/+4
* config/microblaze/microblaze.c (tls_mentioned_p): Avoid fallthru. From-SVN: r241587
2016-10-26Introduce class rtx_writerDavid Malcolm5-244/+308
gcc/ChangeLog: * print-rtl-function.c (print_rtx_function): Rewrite in terms of class rtx_writer. * print-rtl.c (outfile): Delete global. (sawclose): Likewise. (indent): Likewise. (in_call_function_usage): Likewise. (flag_compact): Likewise. (flag_simple): Likewise. (rtx_writer::rtx_writer): New ctor. (print_rtx_operand_code_0): Convert to... (rtx_writer::print_rtx_operand_code_0): ...this. (print_rtx_operand_code_e): Convert to... (rtx_writer::print_rtx_operand_code_e): ...this. (print_rtx_operand_codes_E_and_V): Convert to... (rtx_writer::print_rtx_operand_codes_E_and_V): ...this. (print_rtx_operand_code_i): Convert to... (rtx_writer::print_rtx_operand_code_i): ...this. (print_rtx_operand_code_r): Convert to... (rtx_writer::print_rtx_operand_code_r): ...this. (print_rtx_operand_code_u): Convert to... (rtx_writer::print_rtx_operand_code_u): ...this. (print_rtx_operand): Convert to... (rtx_writer::print_rtx_operand): ...this. (print_rtx): Convert to... (rtx_writer::print_rtx): ...this. (print_inline_rtx): Rewrite in terms of class rtx_writer. (debug_rtx): Likewise. (print_rtl): Convert to... (rtx_writer::print_rtl): ...this. (print_rtl): Reimplement in terms of class rtx_writer. (print_rtl_single): Rewrite in terms of class rtx_writer. (print_rtl_single_with_indent): Convert to.. (rtx_writer::print_rtl_single_with_indent): ...this. (print_simple_rtl): Rewrite in terms of class rtx_writer. * print-rtl.h (flag_compact): Delete decl. (class rtx_writer): New class. * rtl-tests.c (selftest::assert_rtl_dump_eq): Rewrite in terms of class rtx_writer. From-SVN: r241586
2016-10-26arc.c (acr_print_operand): Adjust fallthru comment.Jeff Law4-2/+13
* config/arc/arc.c (acr_print_operand): Adjust fallthru comment. (check_if_valid_sleep_operand): Add missing fallthru comment. (arc_register_move_cost): Increase buffer size. * config/arc/arc.md (cbranch4si_scratch): Add missing fallthru comment. * config/arc/predicates.md (move_str_operand): Avoid fallthru. From-SVN: r241585
2016-10-26cr16.c (cr16_print_operand): Add missing fallthru comment.Jeff Law2-0/+5
* config/cr16/cr16.c (cr16_print_operand): Add missing fallthru comment. Add gcc_unreachable for path that should never happen. From-SVN: r241584
2016-10-26epiphany.c (epiphany_print_operand): Adjust fallthru comment.Jeff Law2-1/+7
* config/epiphany/epiphany.c (epiphany_print_operand): Adjust fallthru comment. From-SVN: r241582
2016-10-26re PR fortran/77973 (ICE in scan_omp_1_op, at omp-low.c:3841)Jakub Jelinek4-3/+35
PR fortran/77973 * gimplify.c (gimplify_adjust_omp_clauses_1): For all added map clauses with OMP_CLAUSE_SIZE being a decl, call omp_notice_variable on outer context if any. * gfortran.dg/gomp/pr77973.f90: New test. Co-Authored-By: Martin Liska <mliska@suse.cz> From-SVN: r241581
2016-10-26gen-pass-instances.awk (adjust_linenos): INcrement pass_lines[p] by ↵Jakub Jelinek2-5/+15
increment rather than double it. * gen-pass-instances.awk (adjust_linenos): INcrement pass_lines[p] by increment rather than double it. (insert_remove_pass): Strip leading whitespace from args[3]. Don't emit a space before args[4]. (END): Don't emit a space before with_arg. From-SVN: r241580
2016-10-26* config/fr30/fr30.c (fr30_print_operand): Adjust fallthru comment.Jeff Law2-1/+4
From-SVN: r241579
2016-10-26Adapt atomic compare and swap to ARMv8-M BaselineThomas Preud'homme3-14/+38
2016-10-26 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/ * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Add new ARMv8-M Baseline only alternatives to (i) hold store atomic success value in a return register rather than a scratch register, (ii) use a low register for it and to (iii) ensure the cbranchsi insn generated by the split respect the constraints of Thumb-1 cbranchsi4_insn and cbranchsi4_scratch. * config/arm/thumb1.md (cbranchsi4_insn): Add comment to indicate constraints must match those in atomic_compare_and_swap. (cbranchsi4_scratch): Likewise. From-SVN: r241578
2016-10-26Refactor atomic compare_and_swap to make it fit for ARMv8-M BaselineThomas Preud'homme4-50/+108
2016-10-26 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/ * config/arm/arm.c (arm_expand_compare_and_swap): Add new bdst local variable. Add the new parameter to the insn generator. Set that parameter to be CC flag for 32-bit targets, bval otherwise. Set the return value from the negation of that parameter for Thumb-1, keeping the logic unchanged otherwise except for using bdst as the destination register of the compare_and_swap insn. (arm_split_compare_and_swap): Add explanation about how is the value returned to the function comment. Rename scratch variable to neg_bval. Adapt initialization of variables holding operands to the new operand numbers. Use return register to hold result of store exclusive for Thumb-1, scratch register otherwise. Construct the appropriate cbranch for Thumb-1 targets, keeping the logic unchanged for 32-bit targets. Guard Z flag setting to restrict to 32bit targets. Use gen_cbranchsi4 rather than hand-written conditional branch to loop for strongly ordered compare_and_swap. * config/arm/predicates.md (cc_register_operand): New predicate. * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Use a match_operand with the new predicate to accept either the CC flag or a destination register for the boolean return value, restricting it to CC flag only via constraint. Adapt operand numbers accordingly. From-SVN: r241577
2016-10-26frv.c (comparison_string): Do not fall through after an error.Jeff Law2-1/+4
* config/frv/frv.c (comparison_string): Do not fall through after an error. From-SVN: r241576
2016-10-26iq2000.c (iq2000_function_arg): Adjust fallthru comment.Jeff Law2-1/+6
* config/iq2000/iq2000.c (iq2000_function_arg): Adjust fallthru comment. (expand_one_builtin): Add missing break. From-SVN: r241573
2016-10-26m32c.c (encode_pattern_1): Add fallthru comment.Jeff Law2-0/+5
* config/m32c/m32c.c (encode_pattern_1): Add fallthru comment. (m32c_legitimate_address_p): Likewise. From-SVN: r241572
2016-10-26* config/m32r/m32r.c (m32r_print_operand): Adjust fallthru comment.Jeff Law2-1/+4
From-SVN: r241571
2016-10-26* config/mcore/mcore.c (mcore_gen_compare): Adjust fallthru comments.Jeff Law2-5/+7
From-SVN: r241569
2016-10-26microblaze.c (microblaze_function_arg): Adjust fallthru comment.Jeff Law2-1/+4
* config/microblaze/microblaze.c (microblaze_function_arg): Adjust fallthru comment. From-SVN: r241568
2016-10-26msp430.c (msp430_legitimate_address_p): Adjust fallthru comment.Jeff Law2-1/+4
* config/msp430/msp430.c (msp430_legitimate_address_p): Adjust fallthru comment. From-SVN: r241567
2016-10-26* config/nios2/nios2.c (nios2_rtx_costs): Avoid fallthru.Jeff Law2-0/+3
From-SVN: r241566
2016-10-26rl78.c (rl78_calculate_death_notes): Add fallthru comment.Jeff Law2-1/+6
* config/rl78/rl78.c (rl78_calculate_death_notes): Add fallthru comment. (rl78_asm_ctor_dtor): Increase buffer size. From-SVN: r241565
2016-10-26stormy16.c (xstormy16_asm_output_destrutor): Increase buffer size.Jeff Law2-2/+6
* config/stormy16/stormy16.c (xstormy16_asm_output_destrutor): Increase buffer size. (xstormy16_asm_output_constructor): Likewise. From-SVN: r241564
2016-10-26pa.c (pa_asm_output_mi_thunk): Increase buffer size.Jeff Law2-1/+4
* config/pa/pa.c (pa_asm_output_mi_thunk): Increase buffer size. From-SVN: r241561
2016-10-26h8300.c (h8300_print_operand): Adjust FALLTHRU comment to silence warning.Jeff Law2-4/+9
* config/h8300/h8300.c (h8300_print_operand): Adjust FALLTHRU comment to silence warning. From-SVN: r241560
2016-10-26spu.c (spu_sched_reorder): Add missing fallthru comment.Jeff Law2-1/+9
* config/spu/spu.c (spu_sched_reorder): Add missing fallthru comment. (spu_legitimate_address_p): Fix logic error and add missing fallthru comment. From-SVN: r241557
2016-10-26re PR fortran/78108 (Generic type-bound operator conflicts)Paul Thomas5-1/+132
2016-10-26 Paul Thomas <pault@gcc.gnu.org> PR fortran/78108 * resolve.c (resolve_typebound_intrinsic_op): For submodules suppress the error and return if the same procedure symbol is added more than once to the interface. 2016-10-26 Paul Thomas <pault@gcc.gnu.org> PR fortran/78108 * gfortran.dg/submodule_18.f08: New test. * gfortran.dg/submodule_19.f08: New test. From-SVN: r241555
2016-10-26fix pr78060 pr78061 pr78088Michael Matz6-18/+112
PR tree-optimization/78060 PR tree-optimization/78061 PR tree-optimization/78088 * tree-ssa-loop-split.c (easy_exit_values): New function. (tree_ssa_split_loops): Use it. (compute_new_first_bound): Change order of operations, fix invalid use of types. testsuite/ * g++.dg/pr78060.C: New test. * gfortran.dg/pr78061.f: New test. * g++.dg/pr78088.C: New test. From-SVN: r241551
2016-10-26New I/O specifiers CARRIAGECONTROL, READONLY, SHARE with -fdec.Fritz Reese14-5/+582
gcc/fortran/ * gfortran.texi: Document. * frontend-passes.c (gfc_code_walker): Add SHARE and CARRIAGECONTROL. * io.c (gfc_free_open, gfc_resolve_open, gfc_match_open): Ditto. * gfortran.h (gfc_open): Add SHARE, CARRIAGECONTROL, and READONLY. * io.c (io_tag, match_open_element): Ditto. * ioparm.def: Ditto. * trans-io.c (gfc_trans_open): Ditto. * io.c (match_dec_etag, match_dec_ftag): New functions. libgfortran/io/ * libgfortran.h (IOPARM_OPEN_HAS_READONLY, IOPARM_OPEN_HAS_SHARE, IOPARM_OPEN_HAS_CC): New for READONLY, SHARE, and CARRIAGECONTROL. * close.c (st_close): Support READONLY. * io.h (st_parameter_open, unit_flags): Support SHARE, CARRIAGECONTROL, and READONLY. * open.c (st_open): Ditto. * transfer.c (data_transfer_init): Ditto. * io.h (st_parameter_dt): New member 'cc' for CARRIAGECONTROL. * write.c (write_check_cc, write_cc): New functions for CARRIAGECONTROL. * transfer.c (next_record_cc): Ditto. * file_pos.c (st_endfile): Support SHARE and CARRIAGECONTROL. * io.h (st_parameter_inquire): Ditto. * open.c (edit_modes, new_unit): Ditto. * inquire.c (inquire_via_unit, inquire_via_filename): Ditto. * io.h (unit_share, unit_cc, cc_fortran, IOPARM_INQUIRE_HAS_SHARE, IOPARM_INQUIRE_HAS_CC): New for SHARE and CARRIAGECONTROL. * open.c (share_opt, cc_opt): Ditto. * read.c (read_x): Support CARRIAGECONTROL. * transfer.c (read_sf, next_record_r, next_record_w): Ditto. * write.c (list_formatted_write_scalar, write_a): Ditto. * unix.h (close_share): New prototype. * unix.c (open_share, close_share): New functions to handle SHARE. * unix.c (open_external): Handle READONLY. Call open_share. * close.c (st_close): Call close_share. gcc/testsuite/ * dec_io_1.f90: New test. * dec_io_2.f90: New test. * dec_io_3.f90: New test. * dec_io_4.f90: New test. * dec_io_5.f90: New test. * dec_io_6.f90: New test. From-SVN: r241550
2016-10-26gen-pass-instances.awk is sensitive to the order in which passes are added...Georg-Johann Lay2-10/+23
gen-pass-instances.awk is sensitive to the order in which passes are added; passes that appear later have to be added first. PR target/71676 PR target/71678 * config/avr/avr-passes.def: Swap order of directives for gen-pass-instances.awk. From-SVN: r241547
2016-10-26Daily bump.GCC Administrator1-1/+1
From-SVN: r241545
2016-10-25vax.c (vad_address_cost_1): Add missing FALLTHRU comment.Jeff Law2-0/+7
* config/vax/vax.c (vad_address_cost_1): Add missing FALLTHRU comment. (vax_notice_update_cc): Likewise. From-SVN: r241542
2016-10-25re PR fortran/45516 ([F08] allocatable compontents of recursive type)Paul Thomas14-18/+464
2016-10-25 Paul Thomas <pault@gcc.gnu.org> PR fortran/45516 * class.c (gfc_find_derived_vtab): Detect recursive allocatable derived type components. If present, add '_deallocate' field to the vtable and build the '__deallocate' function. * decl.c (build_struct): Allow recursive allocatable derived type components for -std=f2008 or more. (gfc_match_data_decl): Accept these derived types. * expr.c (gfc_has_default_initializer): Ditto. * resolve.c (resolve_component): Make sure that the vtable is built for these derived types. * trans-array.c(structure_alloc_comps) : Use the '__deallocate' function for the automatic deallocation of these types. * trans-expr.c : Generate the deallocate accessor. * trans.h : Add its prototype. * trans-types.c (gfc_get_derived_type): Treat the recursive allocatable components in the same way as the corresponding pointer components. 2016-10-25 Paul Thomas <pault@gcc.gnu.org> PR fortran/45516 * gfortran.dg/class_2.f03: Set -std=f2003. * gfortran.dg/finalize_21.f90: Modify tree-dump. * gfortran.dg/recursive_alloc_comp_1.f08: New test. * gfortran.dg/recursive_alloc_comp_2.f08: New test. * gfortran.dg/recursive_alloc_comp_3.f08: New test. * gfortran.dg/recursive_alloc_comp_4.f08: New test. From-SVN: r241539
2016-10-25config.gcc (sparc*-*-solaris2*): Adjust.Eric Botcazou6-544/+587
* config.gcc (sparc*-*-solaris2*): Adjust. (sparc64-*-linux*): Likewise. * config/sparc/default-64.h: Rename to... * config/sparc/default64.h: ...this. * config/sparc/sparc.c (sparc_option_override): Replace TARGET_64BIT with TARGET_ARCH64. (sparc_mangle_type): Replace !TARGET_64BIT with TARGET_ARCH32. * config/sparc/sparc.h: Minor tweaks. * config/sparc/sparc.md: Replace !TARGET_64BIT and !TARGET_ARCH64 with TARGET_ARCH32 throughout. Minor various tweaks throughout. From-SVN: r241538
2016-10-25re PR sanitizer/78106 (ASAN can't find heap-use-after-free with -O1)Jakub Jelinek2-7/+12
PR sanitizer/78106 * gcc.dg/asan/pr78106.c: Add -ffat-lto-objects to dg-options. From-SVN: r241537
2016-10-25input.c/libcpp: fix lifetimes of path buffersDavid Malcolm2-8/+49
Running "make selftest-valgrind" showed various leaks of the form: 408 bytes in 24 blocks are definitely lost in loss record 572 of 679 at 0x4A0645D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) by 0x1B0D057: xmalloc (xmalloc.c:148) by 0x1ACCAA1: append_file_to_dir(char const*, cpp_dir*) [clone .isra.3] (files.c:1567) by 0x1ACD56F: _cpp_find_file (files.c:390) by 0x1ACF8FB: cpp_read_main_file(cpp_reader*, char const*) (init.c:632) by 0x1AB3D97: selftest::lexer_test::lexer_test(selftest::line_table_case const&, char const*, selftest::lexer_test_options*) (input.c:2014) by 0x1AB792B: selftest::test_lexer_string_locations_u8(selftest::line_table_case const&) (input.c:2713) by 0x1ABA22A: selftest::for_each_line_table_case(void (*)(selftest::line_table_case const&)) (input.c:3227) by 0x1ABA381: selftest::input_c_tests() (input.c:3260) by 0x1A295F1: selftest::run_tests() (selftest-run-tests.c:62) by 0xF20DC4: toplev::run_self_tests() (toplev.c:2076) by 0xF20FCD: toplev::main(int, char**) (toplev.c:2153) Fix the leak by freeing the file->path in destroy_cpp_file. However, doing so would lead to a use-after-free in input.c's file cache since the filenames in this cache are the libcpp file->path buffers. Hence we need to ensure that any references to the file in the input.c cache are purged before cleaning up file->path. This is normally done by the temp_source_file dtor. Hence we need to reorder things to that the temp_source_file dtor runs before cleaning up the cpp_parser. The patch does this by introducing a wrapper class around cpp_parser *, so that the dtor can run after the dtor for temp_source_file. gcc/ChangeLog: * input.c (fcache::file_patch): Add comment about lifetime. (selftest::cpp_reader_ptr): New class. (selftest::lexer_test): Convert m_parser from cpp_reader * to a cpp_reader_ptr, and move m_tempfile to after it. (selftest::lexer_test::lexer_test): Update for above reordering. (lexer_test::~lexer_test): Move cleanup of m_parser to cpp_reader_ptr's dtor. libcpp/ChangeLog: * files.c (destroy_cpp_file): Free file->path. From-SVN: r241536
2016-10-25Convert logical ops on integers to bitwise equivalent with -fdec.Fritz Reese6-0/+415
gcc/fortran/ * gfortran.texi: Document. * resolve.c (logical_to_bitwise): New function. * resolve.c (resolve_operator): Wrap operands with logical_to_bitwise. gcc/testsuite/gfortran.dg/ * dec_bitwise_ops_1.f90, dec_bitwise_ops_2.f90: New testcases. From-SVN: r241534