1. 03 Jan, 2018 1 commit
  2. 14 Dec, 2017 1 commit
    • invoke.texi: Document -Wcast-function-type. · c65e18d3
      gcc:
      2017-12-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * doc/invoke.texi: Document -Wcast-function-type.
              * recog.h (stored_funcptr): Change signature.
              * tree-dump.c (dump_node): Avoid warning.
              * typed-splay-tree.h (typed_splay_tree): Avoid warning.
      
      libcpp:
      2017-12-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * internal.h (maybe_print_line): Change signature.
      
      c-family:
      2017-12-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * c.opt (Wcast-function-type): New warning option.
              * c-lex.c (get_fileinfo): Avoid warning.
              * c-ppoutput.c (scan_translation_unit_directives_only): Remove cast.
      
      c:
      2017-12-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * c-typeck.c (c_safe_arg_type_equiv_p,
              c_safe_function_type_cast_p): New function.
              (build_c_cast): Implement -Wcast-function-type.
      
      cp:
      2017-12-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * decl2.c (start_static_storage_duration_function): Avoid warning.
              * typeck.c (cxx_safe_arg_type_equiv_p,
              cxx_safe_function_type_cast_p): New function.
              (build_reinterpret_cast_1): Implement -Wcast-function-type.
      
      testsuite:
      2017-12-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * c-c++-common/Wcast-function-type.c: New test.
              * g++.dg/Wcast-function-type.C: New test.
      
      From-SVN: r255661
      Bernd Edlinger committed
  3. 01 Jan, 2017 1 commit
  4. 02 Sep, 2016 1 commit
    • Improvements to typed_splay_tree · 950f6c85
      This patch adds foreach, max and min methods to
      class typed_splay_tree, along with the start of a selftest
      suite.
      
      gcc/ChangeLog:
      	* Makefile.in (OBJS): Add typed-splay-tree.o.
      	* selftest-run-tests.c (selftest::run_tests): Call
      	typed_splay_tree_c_tests.
      	* selftest.h (typed_splay_tree_c_tests): New decl.
      	* typed-splay-tree.c: New file.
      	* typed-splay-tree.h (typed_splay_tree::foreach_fn): New typedef.
      	(typed_splay_tree::max): New method.
      	(typed_splay_tree::min): New method.
      	(typed_splay_tree::foreach): New method.
      	(typed_splay_tree::closure): New struct.
      	(typed_splay_tree::inner_foreach_fn): New function.
      
      From-SVN: r239958
      David Malcolm committed
  5. 04 Jan, 2016 1 commit
  6. 30 Jun, 2015 1 commit
    • jit: add switch statements · ec5d0088
      gcc/ChangeLog:
      	* typed-splay-tree.h: New file.
      
      gcc/jit/ChangeLog:
      	* docs/cp/topics/functions.rst (Blocks): Add switch statements to
      	list of ways to terminate a block.
      	(gccjit::block::end_with_switch): Add function description.
      	(gccjit::case_): Add class.
      	(gccjit::context::new_case): Add function description.
      	* docs/cp/topics/objects.rst: Add "case_" to class hierarchy.
      	* docs/topics/compatibility.rst (LIBGCCJIT_ABI_3): New.
      	* docs/topics/functions.rst (Blocks): Add switch statements to
      	list of ways to terminate a block.
      	(gcc_jit_block_end_with_switch): Add function description.
      	(gcc_jit_case): Add type.
      	(gcc_jit_context_new_case): Add function description.
      	(gcc_jit_case_as_object): Add function description.
      	* docs/topics/objects.rst: Add gcc_jit_case to class hierarchy.
      	* docs/_build/texinfo/libgccjit.texi: Regenerate.
      	* jit-common.h (gcc::jit::recording::case_): Add forward decl.
      	(gcc::jit::playback::case_): Add forward decl.
      	* jit-playback.c (add_case): New function.
      	(gcc::jit::playback::block::add_switch): New function.
      	* jit-playback.h (gcc::jit::playback::case_): New struct.
      	(gcc::jit::playback::block::get_function): New method.
      	(gcc::jit::playback::block::add_switch): New method.
      	* jit-recording.c: Within namespace gcc::jit...
      	(recording::context::new_case): New method.
      	(recording::function::validate): Update for change to
      	get_successor_blocks.
      	(recording::block::end_with_switch): New method.
      	(recording::block::get_successor_blocks): Update to support an
      	arbitrary number of successor blocks.
      	(recording::block::dump_edges_to_dot): Likewise.
      	(memento_of_new_rvalue_from_const <int>::get_wide_int): New.
      	(memento_of_new_rvalue_from_const <long>::get_wide_int): New.
      	(memento_of_new_rvalue_from_const <double>::get_wide_int): New.
      	(memento_of_new_rvalue_from_const <void *>::get_wide_int): New.
      	(recording::statement::get_successor_blocks): Update to support an
      	arbitrary number of successor blocks.
      	(recording::conditional::get_successor_blocks): Likewise.
      	(recording::jump::get_successor_blocks): Likewise.
      	(recording::return_::get_successor_blocks): Likewise.
      	(recording::case_::write_reproducer): New.
      	(recording::case_::make_debug_string): New.
      	(recording::switch_::switch_): New.
      	(recording::switch_::replay_into): New.
      	(recording::switch_::get_successor_blocks): New.
      	(recording::switch_::make_debug_string): New.
      	(recording::switch_::write_reproducer): New.
      	* jit-recording.h: Within namespace gcc::jit::recording...
      	(context::new_case): New.
      	(rvalue::is_constant): New.
      	(rvalue::get_wide_int): New.
      	(block::end_with_switch): New.
      	(block::get_successor_blocks): Update to support an arbitrary
      	number of successor blocks.
      	(memento_of_new_rvalue_from_const::is_constant): New.
      	(memento_of_new_rvalue_from_const::get_wide_int): New.
      	(statement::get_successor_blocks): Update to support an arbitrary
      	number of successor blocks.
      	(conditional::get_successor_blocks): Likewise.
      	(jump::get_successor_blocks): Likewise.
      	(return_::get_successor_blocks): Likewise.
      	(case_): New subclass of memento.
      	(switch_): New subclass of statement.
      	* libgccjit++.h (gccjit::case_): New subclass of gccjit::object.
      	(gccjit::context::new_case): New method.
      	(gccjit::block::end_with_switch): New method.
      	(gccjit::case_::case): New ctors.
      	(gccjit::case_::get_inner_case): New method.
      	* libgccjit.c: Include "typed-splay-tree.h"
      	(struct gcc_jit_case): New.
      	(gcc_jit_context_new_case): New function.
      	(gcc_jit_case_as_object): New function.
      	(valid_dest_for_switch): New function.
      	(valid_case_for_switch): New function.
      	(class api_call_validator): New class.
      	(class case_range_validator): New class.
      	(case_range_validator::case_range_validator): New.
      	(case_range_validator::validate): New.
      	(case_range_validator::case_compare): New.
      	(case_range_validator::get_wide_int): new.
      	(gcc_jit_block_end_with_switch): New.
      	* libgccjit.h: Add gcc_jit_case to class hierarchy comment.
      	(gcc_jit_case): New typedef.
      	(gcc_jit_context_new_case): New function.
      	(gcc_jit_case_as_object): New function.
      	(gcc_jit_block_end_with_switch): New function.
      	(LIBGCCJIT_HAVE_SWITCH_STATEMENTS): New.
      	* libgccjit.map: Add gcc_jit_block_end_with_switch,
      	gcc_jit_case_as_object and gcc_jit_context_new_case.
      
      gcc/testsuite/ChangeLog:
      	* jit.dg/all-non-failing-tests.h: Add test-switch.c.
      	* jit.dg/test-error-gcc_jit_block_end_with_switch-NULL-case.c: New
      	testcase.
      	* jit.dg/test-error-gcc_jit_block_end_with_switch-mismatching-case-type.c:
      	New testcase.
      	* jit.dg/test-error-gcc_jit_block_end_with_switch-overlapping-ranges.c:
      	New testcase.
      	* jit.dg/test-error-gcc_jit_context_new_case-non-const-label.c:
      	New testcase.
      	* jit.dg/test-error-gcc_jit_context_new_case-non-integer-type.c:
      	New testcase.
      	* jit.dg/test-error-gcc_jit_context_new_case-reversed-endpoints.c:
      	New testcase.
      	* jit.dg/test-switch.c: New testcase.
      	* jit.dg/test-switch.cc: New testcase.
      
      From-SVN: r225207
      David Malcolm committed