1. 16 Mar, 2018 3 commits
  2. 15 Mar, 2018 1 commit
  3. 13 Mar, 2018 1 commit
  4. 12 Mar, 2018 1 commit
    • PR tree-optimization/83456 - -Wrestrict false positive on a non-overlapping… · e9b9fa4c
      PR tree-optimization/83456 - -Wrestrict false positive on a non-overlapping memcpy in an inline function
      
      gcc/ChangeLog:
      
      	PR tree-optimization/83456
      	* gimple-fold.c (gimple_fold_builtin_memory_op): Avoid warning
      	for perfectly overlapping calls to memcpy.
      	(gimple_fold_builtin_memory_chk): Same.
      	(gimple_fold_builtin_strcpy): Handle no-warning.
      	(gimple_fold_builtin_stxcpy_chk): Same.
      	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Handle no-warning.
      
      gcc/c-family/ChangeLog:
      
      	PR tree-optimization/83456
      	* gcc/c-family/c-common.c (check_function_restrict): Return bool.
      	Restore checking of bounded built-in functions.
      	(check_function_arguments): Also return the result
      	of warn_for_restrict.
      	* gcc/c-family/c-common.c (check_function_restrict): Return bool.
      	* gcc/c-family/c-warn.c (warn_for_restrict): Return bool.
      
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/83456
      	* c-c++-common/Wrestrict-2.c: Remove test cases.
      	* c-c++-common/Wrestrict.c: Same.
      	* gcc.dg/Wrestrict-12.c: New test.
      	* gcc.dg/Wrestrict-14.c: New test.
      
      From-SVN: r258455
      Martin Sebor committed
  5. 02 Mar, 2018 2 commits
  6. 01 Mar, 2018 1 commit
  7. 28 Feb, 2018 5 commits
    • i-cexten.ads (Float_128): New type. · c6db43fa
      ada/
      	* libgnat/i-cexten.ads (Float_128): New type.
      c-family/
      	* c-ada-spec.c (dump_ada_node) <NULLPTR_TYPE>: New case.
      	<REAL_TYPE>: Deal specifically with _Float128/__float128.
      
      From-SVN: r258068
      Eric Botcazou committed
    • c-ada-spec.c (dump_ada_double_name): New case. · 9e25c7ed
      	* c-ada-spec.c (dump_ada_double_name) <ENUMERAL_TYPE>: New case.
      	(is_char_array): Take a type instead of a declaration.
      	(dump_ada_array_type): Likewise.
      	(is_simple_enum): Minor tweak.
      	(dump_ada_enum_type): New function extracted from...
      	(dump_ada_node) <ENUMERAL_TYPE>: ...here.  Invoke it.
      	<INTEGER_TYPE>: Remove unreachable code.
      	<RECORD_TYPE>: Likewise.  Minor tweaks.
      	(dump_nested_type) <ARRAY_TYPE>: Adjust to above changes.
      	<ENUMERAL_TYPE>: New case.
      	<RECORD_TYPE>: Factor out common code.
      	(dump_ada_declaration) <ARRAY_TYPE>: Adjust to above changes.
      	Minor tweaks.  Deal with enumeral types.
      	(dump_ada_structure): Minor tweaks.
      
      From-SVN: r258067
      Eric Botcazou committed
    • c-ada-spec.c (dump_ada_node): Do not use generic address for incomplete structures. · 09de3550
      	* c-ada-spec.c (dump_ada_node) <POINTER_TYPE>: Do not use generic
      	address for incomplete structures.
      	(dump_forward_type): Do not bail out for incomplete structures.
      	(dump_ada_declaration): Do not special-case incomplete structures
      	for subtypes.  Dump them as null records for types.
      
      From-SVN: r258066
      Eric Botcazou committed
    • c-ada-spec.c (dump_ada_import): Use boolean and fix formatting. · e02f4b92
      	* c-ada-spec.c (dump_ada_import): Use boolean and fix formatting.
      	(is_char_array): Fix formatting.
      	(dump_template_types): Likewise.
      	(dump_generic_ada_node): Rename into...
      	(dump_ada_node): ...this.
      	<POINTER_TYPE>: Remove superfluous space.  Use generic address for
      	incomplete structures and not for empty structures.  Do not use it
      	when forward declarations are needed.
      	(dump_forward_type): New function.
      	(dump_nested_types): Remove FORWARD parameter.  Do not consider
      	TREE_VISITED and do not generate a forward declaration.  Only dump
      	original nested types for nested declaration.
      	(dump_nested_type) <POINTER_TYPE>: Call dump_forward_type.
      	<ARRAY_TYPE>: Likewise if the component type is an anonymous pointer.
      	<RECORD_TYPE>: Do not consider TREE_VISITED.
      	(dump_ada_declaration): Use booleans and fix formatting throughout.
      	<TYPE_DECL>: Skip incomplete structures and not empty structures.
      	Call dump_forward_type instead of dump_nested_types for a typedef.
      	Remove superfluous check and adjust call to dump_nested_types.
      	<POINTER_TYPE>: Call dump_forward_type and fall through.
      	(dump_ada_struct_decl): Rename into...
      	(dump_ada_structure): ...this.  Do not special-case empty structures.
      
      From-SVN: r258064
      Eric Botcazou committed
    • c-ada-spec.c (dump_ada_import): Use boolean and fix formatting. · 095d8d4b
      	* c-ada-spec.c (dump_ada_import): Use boolean and fix formatting.
      	(is_char_array): Fix formatting.
      	(dump_template_types): Likewise.
      	(dump_generic_ada_node): Rename into...
      	(dump_ada_node): ...this.
      	<POINTER_TYPE>: Remove superfluous space.  Use generic address for
      	incomplete structures and not for empty structures.  Do not use it
      	when forward declarations are needed.
      	(dump_forward_type): New function.
      	(dump_nested_types): Remove FORWARD parameter.  Do not consider
      	TREE_VISITED and do not generate a forward declaration.  Only dump
      	original nested types for nested declaration.
      	(dump_nested_type) <POINTER_TYPE>: Call dump_forward_type.
      	<ARRAY_TYPE>: Likewise if the component type is an anonymous pointer.
      	<RECORD_TYPE>: Do not consider TREE_VISITED.
      	(dump_ada_declaration): Use booleans and fix formatting throughout.
      	<TYPE_DECL>: Skip incomplete structures and not empty structures.
      	Call dump_forward_type instead of dump_nested_types for a typedef.
      	Remove superfluous check and adjust call to dump_nested_types.
      	<POINTER_TYPE>: Call dump_forward_type and fall through.
      	(dump_ada_struct_decl): Rename into...
      	(dump_ada_structure): ...this.  Do not special-case empty structures.
      
      From-SVN: r258062
      Eric Botcazou committed
  8. 27 Feb, 2018 1 commit
    • PR c++/83871 - wrong code for attribute const and pure on distinct template specializations · d4cfd486
      PR c++/83871 - wrong code for attribute const and pure on distinct template specializations
      PR c++/83503 - [8 Regression] bogus -Wattributes for const and pure on function template specialization
      
      gcc/ChangeLog:
      
      	PR c++/83871
      	* gcc/doc/invoke.texi (-Wmissing-attributes): New option.
      	* gcc/print-tree.c (print_node): Handle DECL_UNINLINABLE.
      
      gcc/c-family/ChangeLog:
      
      	PR c++/83871
      	* c.opt (-Wmissing-attributes): New option.
      
      gcc/cp/ChangeLog:
      
      	PR c++/83871
      	PR c++/83503
      	* cp-tree.h (warn_spec_missing_attributes): New function.
      	((check_explicit_specialization): Add an argument.  Call the above
      	function.
      	* decl.c (duplicate_decls): Avoid applying primary function template's
      	attributes to its explicit specializations.
      	cp/pt.c (warn_spec_missing_attributes): Define.
      
      gcc/testsuite/ChangeLog:
      
      	PR c++/83871
      	PR c++/83503
      	* g++.dg/Wmissing-attributes.C: New test.
      	* g++.dg/ext/attr-const-pure.C: New test.
      	* g++.dg/ext/attr-const.C: New test.
      	* g++.dg/ext/attr-deprecated-2.C: New test.
      	* g++.dg/ext/attr-malloc-2.C: New test.
      	* g++.dg/ext/attr-malloc.C: New test.
      	* g++.dg/ext/attr-noinline-2.C: New test.
      	* g++.dg/ext/attr-noinline.C: New test.
      	* g++.dg/ext/attr-nonnull.C: New test.
      	* g++.dg/ext/attr-noreturn-2.C: New test.
      	* g++.dg/ext/attr-noreturn.C: New test.
      	* g++.dg/ext/attr-nothrow-2.C: New test.
      	* g++.dg/ext/attr-nothrow.C: New test.
      	* g++.dg/ext/attr-optimize.C: New test.
      	* g++.dg/ext/attr-pure.C: New test.
      	* g++.dg/ext/attr-returns-nonnull.C: New test.
      	* g++.dg/ext/attr-warning.C: New test.
      
      From-SVN: r258045
      Martin Sebor committed
  9. 21 Feb, 2018 1 commit
  10. 15 Feb, 2018 1 commit
  11. 09 Feb, 2018 3 commits
  12. 02 Feb, 2018 2 commits
    • c-common.h (DECL_UNNAMED_BIT_FIELD): New. · 7c30b12a
      /c-family
      2018-02-02  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* c-common.h (DECL_UNNAMED_BIT_FIELD): New.
      
      /c
      2018-02-02  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* c-typeck.c (really_start_incremental_init, push_init_level,
      	set_nonincremental_init, output_init_element, process_init_element):
      	Use DECL_UNNAMED_BIT_FIELD.
      
      /cp
      2018-02-02  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* class.c (is_really_empty_class): Use DECL_UNNAMED_BIT_FIELD.
      	* constexpr.c (cx_check_missing_mem_inits): Likewise.
      	* decl.c (next_initializable_field, find_decomp_class_base,
      	cp_finish_decomp): Likewise.
      	* typeck2.c (process_init_constructor_record): Likewise.
      
      From-SVN: r257348
      Paolo Carlini committed
    • Move omp bitmask to general to use it in x86 backend. · eece7fe5
      gcc/c-family/
      	* c-common.h (omp_clause_mask): Move to wide_int_bitmask.h.
      
      gcc/
      	* config/i386/i386.c (ix86_option_override_internal): Change flags type
      	to wide_int_bitmask.
      	* wide-int-bitmask.h: New.
      
      From-SVN: r257329
      Julia Koval committed
  13. 29 Jan, 2018 1 commit
  14. 27 Jan, 2018 1 commit
  15. 18 Jan, 2018 1 commit
    • Add ability to remap file names in __FILE__, etc (PR other/70268) · 7365279f
      This commit adds the -fmacro-prefix-map option that allows remapping of file
      names in __FILE__, __BASE_FILE__, and __builtin_FILE(), similar to how
      -fdebug-prefix-map allows to do the same for debug information.
      
      Additionally, it adds -ffile-prefix-map which can be used to specify both
      mappings with a single option (and, should we need to add more -f*-prefix-map
      options in the future, those as well).
      
      libcpp/ChangeLog:
      
      2018-01-18  Boris Kolpackov  <boris@codesynthesis.com>
      
              PR other/70268
              * include/cpplib.h (cpp_callbacks::remap_filename): New callback.
              * libcpp/macro.c (_cpp_builtin_macro_text): Call remap_filename for
              __FILE__ and __BASE_FILE__.
      
      
      gcc/ChangeLog:
      
      2018-01-18  Boris Kolpackov  <boris@codesynthesis.com>
      
              PR other/70268
              * common.opt: (-ffile-prefix-map): New option.
              * opts.c (common_handle_option): Defer it.
              * opts-global.c (handle_common_deferred_options): Handle it.
              * debug.h (remap_debug_filename, add_debug_prefix_map): Move to...
              * file-prefix-map.h: New file.
              (remap_debug_filename, add_debug_prefix_map): ...here.
              (add_macro_prefix_map, add_file_prefix_map, remap_macro_filename): New.
              * final.c (debug_prefix_map, add_debug_prefix_map
              remap_debug_filename): Move to...
              * file-prefix-map.c: New file.
              (file_prefix_map, add_prefix_map, remap_filename) ...here and rename,
              generalize, get rid of alloca(), use strrchr() instead of strchr().
              (add_macro_prefix_map, add_debug_prefix_map, add_file_prefix_map):
              Implement in terms of add_prefix_map().
              (remap_macro_filename, remap_debug_filename): Implement in term of
              remap_filename().
              * Makefile.in (OBJS, PLUGIN_HEADERS): Add new files.
              * builtins.c (fold_builtin_FILE): Call remap_macro_filename().
              * dbxout.c: Include file-prefix-map.h.
              * varasm.c: Likewise.
              * vmsdbgout.c: Likewise.
              * xcoffout.c: Likewise.
              * dwarf2out.c: Likewise plus omit new options from DW_AT_producer.
              * doc/cppopts.texi (-fmacro-prefix-map): Document.
              * doc/invoke.texi (-ffile-prefix-map): Document.
      	(-fdebug-prefix-map): Update description.
      
      
      gcc/c-family/ChangeLog:
      
      2018-01-18  Boris Kolpackov  <boris@codesynthesis.com>
      
              PR other/70268
              * c-family/c.opt (-fmacro-prefix-map): New option.
              * c-family/c-opts.c (c_common_handle_option): Handle it.
              * c-family/c-lex.c (init_c_lex): Set remap_filename cpp callback.
              * c-family/c-ppoutput.c (init_pp_output): Likewise.
      
      
      gcc/testsuite/ChangeLog:
      
      2018-01-18  Boris Kolpackov  <boris@codesynthesis.com>
      
              PR other/70268
              * c-c++-common/ffile-prefix-map.c: New test.
              * c-c++-common/fmacro-prefix-map.c: New test.
              * c-c++-common/cpp/ffile-prefix-map.c: New test.
              * c-c++-common/cpp/fmacro-prefix-map.c: New test.
      
      From-SVN: r256847
      Boris Kolpackov committed
  16. 17 Jan, 2018 1 commit
    • C++: Fix crash in warn_for_memset within templates (PR c++/83814) · bb9869d5
      gcc/c-family/ChangeLog:
      	PR c++/83814
      	* c-common.c (fold_for_warn): Move to c/c-fold.c and cp/expr.c.
      
      gcc/c/ChangeLog:
      	PR c++/83814
      	* c-fold.c (fold_for_warn): Move from c-common.c, reducing to just
      	the C part.
      
      gcc/cp/ChangeLog:
      	PR c++/83814
      	* expr.c (fold_for_warn): Move from c-common.c, reducing to just
      	the C++ part.  If processing a template, call
      	fold_non_dependent_expr rather than fully folding.
      
      gcc/testsuite/ChangeLog:
      	PR c++/83814
      	PR c++/83902
      	* g++.dg/wrappers/pr83814.C: New test case.
      	* g++.dg/wrappers/pr83902.C: New test case.
      
      From-SVN: r256804
      David Malcolm committed
  17. 10 Jan, 2018 2 commits
    • c-ada-spec.c (dump_number): Add FLOAT_P parameter. · 68dc87c3
      	* c-ada-spec.c (dump_number): Add FLOAT_P parameter.
      	Skip 'f' and 'F' characters if it is true.
      	(store_ada_macro): Minor tweak.
      	(dump_ada_macros) <CPP_COMMENT>: Likewise.
      	<CPP_WSTRING>: Likewise.
      	<CPP_STRING>: Output '&' in the buffer if not the first string.
      	<CPP_NUMBER>: Adjust calls to dump_number.
      
      From-SVN: r256463
      Eric Botcazou committed
    • Preserving locations for variable-uses and constants (PR c++/43486) · 9a004410
      This patch implements location wrapper nodes, preserving source locations
      of the uses of variables and constants in various places in the
      C++ frontend: at the arguments at callsites, and for typeid, alignof,
      sizeof, and offsetof.
      
      For example, it allows the C++ FE to underline the pertinent argument
      for mismatching calls, for such expressions, improving:
      
      extern int callee (int one, const char *two, float three);
      
      int caller (int first, int second, float third)
      {
        return callee (first, second, third);
      }
      
      from
      
      test.cc: In function 'int caller(int, int, float)':
      test.cc:5:38: error: invalid conversion from 'int' to 'const char*' [-fpermissive]
         return callee (first, second, third);
                                            ^
      test.cc:1:41: note:   initializing argument 2 of 'int callee(int, const char*, float)'
       extern int callee (int one, const char *two, float three);
                                   ~~~~~~~~~~~~^~~
      
      to:
      
      test.cc: In function 'int caller(int, int, float)':
      test.cc:5:25: error: invalid conversion from 'int' to 'const char*' [-fpermissive]
         return callee (first, second, third);
                               ^~~~~~
      test.cc:1:41: note:   initializing argument 2 of 'int callee(int, const char*, float)'
       extern int callee (int one, const char *two, float three);
                                   ~~~~~~~~~~~~^~~
      
      This is the combination of the following patches:
      
        "[PATCH 01/14] C++: preserve locations within build_address"
           https://gcc.gnu.org/ml/gcc-patches/2017-11/msg00883.html
      
        "[PATCH v2.4 of 02/14] Support for adding and stripping location_t wrapper nodes"
          https://gcc.gnu.org/ml/gcc-patches/2018-01/msg00591.html
      
        "[PATCH] Eliminate location wrappers in tree_nop_conversion/STRIP_NOPS"
          https://gcc.gnu.org/ml/gcc-patches/2017-12/msg01330.html
      
        "[PATCH v4 of 03/14] C++: add location_t wrapper nodes during parsing (minimal impl)"
          https://gcc.gnu.org/ml/gcc-patches/2018-01/msg00660.html
      
        "[PATCH 04/14] Update testsuite to show improvements"
          https://gcc.gnu.org/ml/gcc-patches/2017-11/msg00891.html
      
        "[v3 of 05/14] C++: handle locations wrappers when calling warn_for_memset"
          https://gcc.gnu.org/ml/gcc-patches/2017-12/msg01378.html
      
        "[PATCH 07/14] reject_gcc_builtin: strip any location wrappers"
          https://gcc.gnu.org/ml/gcc-patches/2017-11/msg00886.html
      
        "[v3 of PATCH 08/14] cp/tree.c: strip location wrappers in lvalue_kind"
          https://gcc.gnu.org/ml/gcc-patches/2017-12/msg01433.html
      
        "[PATCH 09/14] Strip location wrappers in null_ptr_cst_p"
          https://gcc.gnu.org/ml/gcc-patches/2017-11/msg00888.html
      
        "[PATCH 11/14] Handle location wrappers in string_conv_p"
          https://gcc.gnu.org/ml/gcc-patches/2017-11/msg00890.html
      
        "[PATCH 12/14] C++: introduce null_node_p"
          https://gcc.gnu.org/ml/gcc-patches/2017-11/msg00894.html
      
        "[v3 of PATCH 13/14] c-format.c: handle location wrappers"
          https://gcc.gnu.org/ml/gcc-patches/2017-12/msg01494.html
      
        "[PATCH 14/14] pp_c_cast_expression: don't print casts for location wrappers"
          https://gcc.gnu.org/ml/gcc-patches/2017-11/msg00893.html
      
        "[v3 of PATCH 15/14] Use fold_for_warn in get_atomic_generic_size"
          https://gcc.gnu.org/ml/gcc-patches/2017-12/msg01380.html
      
        "[PATCH] Add selftest for "fold_for_warn (error_mark_node)""
          https://gcc.gnu.org/ml/gcc-patches/2017-12/msg01385.html
      
      gcc/c-family/ChangeLog:
      	PR c++/43486
      	* c-common.c: Include "selftest.h".
      	(get_atomic_generic_size): Perform the test for integral type
      	before the range test for any integer constant, fixing indentation
      	of braces.  Call fold_for_warn before testing for an INTEGER_CST.
      	(reject_gcc_builtin): Strip any location wrapper from EXPR.
      	(selftest::test_fold_for_warn): New function.
      	(selftest::c_common_c_tests): New function.
      	(selftest::c_family_tests): Call it, and
      	selftest::c_pretty_print_c_tests.
      	* c-common.h (selftest::c_pretty_print_c_tests): New decl.
      	* c-format.c (check_format_arg): Convert VAR_P check to a
      	fold_for_warn.
      	* c-pretty-print.c: Include "selftest.h".
      	(pp_c_cast_expression): Don't print casts for location wrappers.
      	(selftest::assert_c_pretty_printer_output): New function.
      	(ASSERT_C_PRETTY_PRINTER_OUTPUT): New macro.
      	(selftest::test_location_wrappers): New function.
      	(selftest::c_pretty_print_c_tests): New function.
      	* c-warn.c (warn_for_memset): Call fold_for_warn on the arguments.
      
      gcc/cp/ChangeLog:
      	PR c++/43486
      	* call.c (null_ptr_cst_p): Strip location wrappers when
      	converting from '0' to a pointer type in C++11 onwards.
      	(conversion_null_warnings): Replace comparison with null_node with
      	call to null_node_p.
      	(build_over_call): Likewise.
      	* cp-gimplify.c (cp_fold): Remove the early bailout when
      	processing_template_decl.
      	* cp-lang.c (selftest::run_cp_tests): Call
      	selftest::cp_pt_c_tests and selftest::cp_tree_c_tests.
      	* cp-tree.h (cp_expr::maybe_add_location_wrapper): New method.
      	(selftest::run_cp_tests): Move decl to bottom of file.
      	(null_node_p): New inline function.
      	(selftest::cp_pt_c_tests): New decl.
      	(selftest::cp_tree_c_tests): New decl.
      	* cvt.c (build_expr_type_conversion): Replace comparison with
      	null_node with call to null_node_p.
      	* error.c (args_to_string): Likewise.
      	* except.c (build_throw): Likewise.
      	* mangle.c (write_expression): Skip location wrapper nodes.
      	* parser.c (literal_integer_zerop): New function.
      	(cp_parser_postfix_expression): Call maybe_add_location_wrapper on
      	the result for RID_TYPEID. Pass true for new "wrap_locations_p"
      	param of cp_parser_parenthesized_expression_list.  When calling
      	warn_for_memset, replace integer_zerop calls with
      	literal_integer_zerop, eliminating the double logical negation
      	cast to bool.  Eliminate the special-casing for CONST_DECL in
      	favor of the fold_for_warn within warn_for_memset.
      	(cp_parser_parenthesized_expression_list): Add "wrap_locations_p"
      	param, defaulting to false.  Convert "expr" to a cp_expr, and call
      	maybe_add_location_wrapper on it when wrap_locations_p is true.
      	(cp_parser_unary_expression): Call maybe_add_location_wrapper on
      	the result for RID_ALIGNOF and RID_SIZEOF.
      	(cp_parser_builtin_offsetof): Likewise.
      	* pt.c: Include "selftest.h".
      	(tsubst_copy): Handle location wrappers.
      	(tsubst_copy_and_build): Likewise.
      	(build_non_dependent_expr): Likewise.
      	(selftest::test_build_non_dependent_expr): New function.
      	(selftest::cp_pt_c_tests): New function.
      	* tree.c: Include "selftest.h".
      	(lvalue_kind): Handle VIEW_CONVERT_EXPR location wrapper nodes.
      	(selftest::test_lvalue_kind): New function.
      	(selftest::cp_tree_c_tests): New function.
      	* typeck.c (string_conv_p): Strip any location wrapper from "exp".
      	(cp_build_binary_op): Replace comparison with null_node with call
      	to null_node_p.
      	(build_address): Use location of operand when building address
      	expression.
      
      gcc/testsuite/ChangeLog:
      	PR c++/43486
      	* g++.dg/diagnostic/param-type-mismatch.C: Update expected results
      	to reflect that the arguments are correctly underlined.
      	* g++.dg/plugin/diagnostic-test-expressions-1.C: Add test coverage
      	for globals, params, locals and literals.
      	(test_sizeof): Directly test the location of "sizeof", rather than
      	when used in compound expressions.
      	(test_alignof): Likewise for "alignof".
      	(test_string_literals): Likewise for string literals.
      	(test_numeric_literals): Likewise for numeric literals.
      	(test_builtin_offsetof): Likewise for "__builtin_offsetof".
      	(test_typeid): Likewise for typeid.
      	(test_unary_plus): New.
      	* g++.dg/warn/Wformat-1.C: Add tests of pointer arithmetic on
      	format strings.
      
      gcc/ChangeLog:
      	PR c++/43486
      	* tree-core.h: Document EXPR_LOCATION_WRAPPER_P's usage of
      	"public_flag".
      	* tree.c (tree_nop_conversion): Return true for location wrapper
      	nodes.
      	(maybe_wrap_with_location): New function.
      	(selftest::check_strip_nops): New function.
      	(selftest::test_location_wrappers): New function.
      	(selftest::tree_c_tests): Call it.
      	* tree.h (STRIP_ANY_LOCATION_WRAPPER): New macro.
      	(maybe_wrap_with_location): New decl.
      	(EXPR_LOCATION_WRAPPER_P): New macro.
      	(location_wrapper_p): New inline function.
      	(tree_strip_any_location_wrapper): New inline function.
      
      From-SVN: r256448
      David Malcolm committed
  18. 03 Jan, 2018 4 commits
    • Add support for MODE_VECTOR_BOOL · 5c0caeb3
      This patch adds a new mode class to represent vectors of booleans.
      GET_MODE_BITSIZE (m) / GET_MODE_NUNITS (m) determines the number
      of bits that are used to represent each boolean; this can be 1
      for a fully-packed representation or greater than 1 for an unpacked
      representation.  In the latter case, the value of bits other than
      the lowest is not significant.
      
      These are used by the SVE port to represent predicates.
      
      2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* mode-classes.def (MODE_VECTOR_BOOL): New mode class.
      	* machmode.h (INTEGRAL_MODE_P, VECTOR_MODE_P): Return true
      	for MODE_VECTOR_BOOL.
      	* machmode.def (VECTOR_BOOL_MODE): Document.
      	* genmodes.c (VECTOR_BOOL_MODE): New macro.
      	(make_vector_bool_mode): New function.
      	(complete_mode, emit_mode_wider, emit_mode_adjustments): Handle
      	MODE_VECTOR_BOOL.
      	* lto-streamer-in.c (lto_input_mode_table): Likewise.
      	* rtx-vector-builder.c (rtx_vector_builder::find_cached_value):
      	Likewise.
      	* stor-layout.c (int_mode_for_mode): Likewise.
      	* tree.c (build_vector_type_for_mode): Likewise.
      	* varasm.c (output_constant_pool_2): Likewise.
      	* emit-rtl.c (init_emit_once): Make sure that CONST1_RTX (BImode) and
      	CONSTM1_RTX (BImode) are the same thing.  Initialize const_tiny_rtx
      	for MODE_VECTOR_BOOL.
      	* expr.c (expand_expr_real_1): Use VECTOR_MODE_P instead of a list
      	of mode class checks.
      	* tree-vect-generic.c (expand_vector_operation): Use VECTOR_MODE_P
      	instead of a list of mode class checks.
      	(expand_vector_scalar_condition): Likewise.
      	(type_for_widest_vector_mode): Handle BImode as an inner mode.
      
      gcc/c-family/
      	* c-common.c (c_common_type_for_mode): Handle MODE_VECTOR_BOOL.
      
      gcc/fortran/
      	* trans-types.c (gfc_type_for_mode): Handle MODE_VECTOR_BOOL.
      
      gcc/go/
      	* go-lang.c (go_langhook_type_for_mode): Handle MODE_VECTOR_BOOL.
      
      gcc/lto/
      	* lto-lang.c (lto_type_for_mode): Handle MODE_VECTOR_BOOL.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r256202
      Richard Sandiford committed
    • poly_int: GET_MODE_BITSIZE · 73a699ae
      This patch changes GET_MODE_BITSIZE from an unsigned short
      to a poly_uint16.
      
      2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* machmode.h (mode_to_bits): Return a poly_uint16 rather than an
      	unsigned short.
      	(GET_MODE_BITSIZE): Return a constant if ONLY_FIXED_SIZE_MODES,
      	or if measurement_type is polynomial.
      	* calls.c (shift_return_value): Treat GET_MODE_BITSIZE as polynomial.
      	* combine.c (make_extraction): Likewise.
      	* dse.c (find_shift_sequence): Likewise.
      	* dwarf2out.c (mem_loc_descriptor): Likewise.
      	* expmed.c (store_integral_bit_field, extract_bit_field_1): Likewise.
      	(extract_bit_field, extract_low_bits): Likewise.
      	* expr.c (convert_move, convert_modes, emit_move_insn_1): Likewise.
      	(optimize_bitfield_assignment_op, expand_assignment): Likewise.
      	(store_expr_with_bounds, store_field, expand_expr_real_1): Likewise.
      	* fold-const.c (optimize_bit_field_compare, merge_ranges): Likewise.
      	* gimple-fold.c (optimize_atomic_compare_exchange_p): Likewise.
      	* reload.c (find_reloads): Likewise.
      	* reload1.c (alter_reg): Likewise.
      	* stor-layout.c (bitwise_mode_for_mode, compute_record_mode): Likewise.
      	* targhooks.c (default_secondary_memory_needed_mode): Likewise.
      	* tree-if-conv.c (predicate_mem_writes): Likewise.
      	* tree-ssa-strlen.c (handle_builtin_memcmp): Likewise.
      	* tree-vect-patterns.c (adjust_bool_pattern): Likewise.
      	* tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
      	* valtrack.c (dead_debug_insert_temp): Likewise.
      	* varasm.c (mergeable_constant_section): Likewise.
      	* config/sh/sh.h (LOCAL_ALIGNMENT): Use as_a <fixed_size_mode>.
      
      gcc/ada/
      	* gcc-interface/misc.c (enumerate_modes): Treat GET_MODE_BITSIZE
      	as polynomial.
      
      gcc/c-family/
      	* c-ubsan.c (ubsan_instrument_shift): Treat GET_MODE_BITSIZE
      	as polynomial.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r256200
      Richard Sandiford committed
    • poly_int: TYPE_VECTOR_SUBPARTS · 928686b1
      This patch changes TYPE_VECTOR_SUBPARTS to a poly_uint64.  The value is
      encoded in the 10-bit precision field and was previously always stored
      as a simple log2 value.  The challenge was to use this 10 bits to
      encode the number of elements in variable-length vectors, so that
      we didn't need to increase the size of the tree.
      
      In practice the number of vector elements should always have the form
      N + N * X (where X is the runtime value), and as for constant-length
      vectors, N must be a power of 2 (even though X itself might not be).
      The patch therefore uses the low 8 bits to encode log2(N) and bit
      8 to select between constant-length and variable-length vectors.
      Targets without variable-length vectors continue to use the old scheme.
      
      A new valid_vector_subparts_p function tests whether a given number
      of elements can be encoded.  This is false for the vector modes that
      represent an LD3 or ST3 vector triple (which we want to treat as arrays
      of vectors rather than single vectors).
      
      Most of the patch is mechanical; previous patches handled the changes
      that weren't entirely straightforward.
      
      2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* tree.h (TYPE_VECTOR_SUBPARTS): Turn into a function and handle
      	polynomial numbers of units.
      	(SET_TYPE_VECTOR_SUBPARTS): Likewise.
      	(valid_vector_subparts_p): New function.
      	(build_vector_type): Remove temporary shim and take the number
      	of units as a poly_uint64 rather than an int.
      	(build_opaque_vector_type): Take the number of units as a
      	poly_uint64 rather than an int.
      	* tree.c (build_vector_from_ctor): Handle polynomial
      	TYPE_VECTOR_SUBPARTS.
      	(type_hash_canon_hash, type_cache_hasher::equal): Likewise.
      	(uniform_vector_p, vector_type_mode, build_vector): Likewise.
      	(build_vector_from_val): If the number of units is variable,
      	use build_vec_duplicate_cst for constant operands and
      	VEC_DUPLICATE_EXPR otherwise.
      	(make_vector_type): Remove temporary is_constant ().
      	(build_vector_type, build_opaque_vector_type): Take the number of
      	units as a poly_uint64 rather than an int.
      	(check_vector_cst): Handle polynomial TYPE_VECTOR_SUBPARTS and
      	VECTOR_CST_NELTS.
      	* cfgexpand.c (expand_debug_expr): Likewise.
      	* expr.c (count_type_elements, categorize_ctor_elements_1): Likewise.
      	(store_constructor, expand_expr_real_1): Likewise.
      	(const_scalar_mask_from_tree): Likewise.
      	* fold-const-call.c (fold_const_reduction): Likewise.
      	* fold-const.c (const_binop, const_unop, fold_convert_const): Likewise.
      	(operand_equal_p, fold_vec_perm, fold_ternary_loc): Likewise.
      	(native_encode_vector, vec_cst_ctor_to_array): Likewise.
      	(fold_relational_const): Likewise.
      	(native_interpret_vector): Likewise.  Change the size from an
      	int to an unsigned int.
      	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Handle polynomial
      	TYPE_VECTOR_SUBPARTS.
      	(gimple_fold_indirect_ref, gimple_build_vector): Likewise.
      	(gimple_build_vector_from_val): Use VEC_DUPLICATE_EXPR when
      	duplicating a non-constant operand into a variable-length vector.
      	* hsa-brig.c (hsa_op_immed::emit_to_buffer): Handle polynomial
      	TYPE_VECTOR_SUBPARTS and VECTOR_CST_NELTS.
      	* ipa-icf.c (sem_variable::equals): Likewise.
      	* match.pd: Likewise.
      	* omp-simd-clone.c (simd_clone_subparts): Likewise.
      	* print-tree.c (print_node): Likewise.
      	* stor-layout.c (layout_type): Likewise.
      	* targhooks.c (default_builtin_vectorization_cost): Likewise.
      	* tree-cfg.c (verify_gimple_comparison): Likewise.
      	(verify_gimple_assign_binary): Likewise.
      	(verify_gimple_assign_ternary): Likewise.
      	(verify_gimple_assign_single): Likewise.
      	* tree-pretty-print.c (dump_generic_node): Likewise.
      	* tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
      	(simplify_bitfield_ref, is_combined_permutation_identity): Likewise.
      	* tree-vect-data-refs.c (vect_permute_store_chain): Likewise.
      	(vect_grouped_load_supported, vect_permute_load_chain): Likewise.
      	(vect_shift_permute_load_chain): Likewise.
      	* tree-vect-generic.c (nunits_for_known_piecewise_op): Likewise.
      	(expand_vector_condition, optimize_vector_constructor): Likewise.
      	(lower_vec_perm, get_compute_type): Likewise.
      	* tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
      	(get_initial_defs_for_reduction, vect_transform_loop): Likewise.
      	* tree-vect-patterns.c (vect_recog_bool_pattern): Likewise.
      	(vect_recog_mask_conversion_pattern): Likewise.
      	* tree-vect-slp.c (vect_supported_load_permutation_p): Likewise.
      	(vect_get_constant_vectors, vect_transform_slp_perm_load): Likewise.
      	* tree-vect-stmts.c (perm_mask_for_reverse): Likewise.
      	(get_group_load_store_type, vectorizable_mask_load_store): Likewise.
      	(vectorizable_bswap, simd_clone_subparts, vectorizable_assignment)
      	(vectorizable_shift, vectorizable_operation, vectorizable_store)
      	(vectorizable_load, vect_is_simple_cond, vectorizable_comparison)
      	(supportable_widening_operation): Likewise.
      	(supportable_narrowing_operation): Likewise.
      	* tree-vector-builder.c (tree_vector_builder::binary_encoded_nelts):
      	Likewise.
      	* varasm.c (output_constant): Likewise.
      
      gcc/ada/
      	* gcc-interface/utils.c (gnat_types_compatible_p): Handle
      	polynomial TYPE_VECTOR_SUBPARTS.
      
      gcc/brig/
      	* brigfrontend/brig-to-generic.cc (get_unsigned_int_type): Handle
      	polynomial TYPE_VECTOR_SUBPARTS.
      	* brigfrontend/brig-util.h (gccbrig_type_vector_subparts): Likewise.
      
      gcc/c-family/
      	* c-common.c (vector_types_convertible_p, c_build_vec_perm_expr)
      	(convert_vector_to_array_for_subscript): Handle polynomial
      	TYPE_VECTOR_SUBPARTS.
      	(c_common_type_for_mode): Check valid_vector_subparts_p.
      	* c-pretty-print.c (pp_c_initializer_list): Handle polynomial
      	VECTOR_CST_NELTS.
      
      gcc/c/
      	* c-typeck.c (comptypes_internal, build_binary_op): Handle polynomial
      	TYPE_VECTOR_SUBPARTS.
      
      gcc/cp/
      	* constexpr.c (cxx_eval_array_reference): Handle polynomial
      	VECTOR_CST_NELTS.
      	(cxx_fold_indirect_ref): Handle polynomial TYPE_VECTOR_SUBPARTS.
      	* call.c (build_conditional_expr_1): Likewise.
      	* decl.c (cp_finish_decomp): Likewise.
      	* mangle.c (write_type): Likewise.
      	* typeck.c (structural_comptypes): Likewise.
      	(cp_build_binary_op): Likewise.
      	* typeck2.c (process_init_constructor_array): Likewise.
      
      gcc/fortran/
      	* trans-types.c (gfc_type_for_mode): Check valid_vector_subparts_p.
      
      gcc/lto/
      	* lto-lang.c (lto_type_for_mode): Check valid_vector_subparts_p.
      	* lto.c (hash_canonical_type): Handle polynomial TYPE_VECTOR_SUBPARTS.
      
      gcc/go/
      	* go-lang.c (go_langhook_type_for_mode): Check valid_vector_subparts_p.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r256197
      Richard Sandiford committed
    • Update copyright years. · 85ec4feb
      From-SVN: r256169
      Jakub Jelinek committed
  19. 22 Dec, 2017 3 commits
    • re PR debug/83550 (Bad location of DW_TAG_structure_type with forward declaration since r224161) · 14ec014e
      	PR debug/83550
      	* c-decl.c (finish_struct): Set DECL_SOURCE_LOCATION on
      	TYPE_STUB_DECL and call rest_of_type_compilation before processing
      	incomplete vars rather than after it.
      
      	* c-c++-common/dwarf2/pr83550.c: New test.
      
      From-SVN: r255981
      Jakub Jelinek committed
    • extend.texi (Loop-Specific Pragmas): Document pragma GCC unroll. · 170a8bd6
      	* doc/extend.texi (Loop-Specific Pragmas): Document pragma GCC unroll.
      c-family/
      	* c-pragma.c (init_pragma): Register pragma GCC unroll.
      	* c-pragma.h (enum pragma_kind): Add PRAGMA_UNROLL.
      c/
      	* c-parser.c (c_parser_while_statement): Add unroll parameter and
      	build ANNOTATE_EXPR if present.  Add 3rd operand to ANNOTATE_EXPR.
      	(c_parser_do_statement): Likewise.
      	(c_parser_for_statement): Likewise.
      	(c_parser_statement_after_labels): Adjust calls to above.
      	(c_parse_pragma_ivdep): New static function.
      	(c_parser_pragma_unroll): Likewise.
      	(c_parser_pragma) <PRAGMA_IVDEP>: Add support for pragma Unroll.
      	<PRAGMA_UNROLL>: New case.
      cp/
      	* constexpr.c (cxx_eval_constant_expression) <ANNOTATE_EXPR>: Remove
      	assertion on 2nd operand.
      	(potential_constant_expression_1): Likewise.
      	* cp-tree.def (RANGE_FOR_STMT): Take a 5th operand.
      	* cp-tree.h (RANGE_FOR_UNROLL): New macro.
      	(cp_convert_range_for): Adjust prototype.
      	(finish_while_stmt_cond): Likewise.
      	(finish_do_stmt): Likewise.
      	(finish_for_cond): Likewise.
      	* init.c (build_vec_init): Adjut call to finish_for_cond.
      	* parser.c (cp_parser_statement): Adjust call to
      	cp_parser_iteration_statement.
      	(cp_parser_for): Add unroll parameter and pass it in calls to
      	cp_parser_range_for and cp_parser_c_for.
      	(cp_parser_c_for): Add unroll parameter and pass it in call to
      	finish_for_cond.
      	(cp_parser_range_for): Add unroll parameter, set in on RANGE_FOR_STMT
      	and pass it in call to cp_convert_range_for.
      	(cp_convert_range_for): Add unroll parameter and pass it in call to
      	finish_for_cond.
      	(cp_parser_iteration_statement): Add unroll parameter and pass it in
      	calls to finish_while_stmt_cond, finish_do_stmt and cp_parser_for.
      	(cp_parser_pragma_ivdep): New static function.
      	(cp_parser_pragma_unroll): Likewise.
      	(cp_parser_pragma) <PRAGMA_IVDEP>: Add support for pragma Unroll.
      	<PRAGMA_UNROLL>: New case.
      	* pt.c (tsubst_expr) <FOR_STMT>: Adjust call to finish_for_cond.
      	<RANGE_FOR_STMT>: Pass unrolling factor to cp_convert_range_for.
      	<WHILE_STMT>: Adjust call to finish_while_stmt_cond.
      	<DO_STMT>: Adjust call to finish_do_stmt.
      	* semantics.c (finish_while_stmt_cond): Add unroll parameter and
      	build ANNOTATE_EXPR if present.
      	(finish_do_stmt): Likewise.
      	(finish_for_cond): Likewise.
      	(begin_range_for_stmt): Build RANGE_FOR_STMT with 5th operand.
      fortran/
      	* array.c (gfc_copy_iterator): Copy unroll field.
      	* decl.c (directive_unroll): New global variable.
      	(gfc_match_gcc_unroll): New function.
      	* gfortran.h (gfc_iterator]): Add unroll field.
      	(directive_unroll): Declare:
      	* match.c (gfc_match_do): Use memset to initialize the iterator.
      	* match.h (gfc_match_gcc_unroll): New prototype.
      	* parse.c (decode_gcc_attribute): Match "unroll".
      	(parse_do_block): Set iterator's unroll.
      	(parse_executable): Diagnose misplaced unroll directive.
      	* trans-stmt.c (gfc_trans_simple_do) Annotate loop condition with
      	annot_expr_unroll_kind.
      	(gfc_trans_do): Likewise.
      	* gfortran.texi (GNU Fortran Compiler Directives): Split section into
      	subections 'ATTRIBUTES directive' and 'UNROLL directive'.
      
      From-SVN: r255973
      Eric Botcazou committed
    • [SFN] sync up debug-only stmt list's side effects with empty stmts too · 18408e96
      for  gcc/c-family/ChangeLog
      
      	PR debug/83527
      	PR debug/83419
      	* c-semantics.c (only_debug_stmts_after_p): New.
      	(pop_stmt_list): Clear side effects in debug-only stmt list.
      	Check for single nondebug stmt followed by debug stmts only.
      
      for  gcc/testsuite/ChangeLog
      
      	PR debug/83527
      	PR debug/83419
      	* gcc.dg/pr83527.c: New.
      
      From-SVN: r255966
      Alexandre Oliva committed
  20. 21 Dec, 2017 2 commits
    • move ChangeLog entry to the right file · c12d20d4
      From-SVN: r255955
      Alexandre Oliva committed
    • [SFN] propagate single-nondebug-stmt's side effects to enclosing list · cb633233
      Statements without side effects, preceded by debug begin stmt markers,
      would become a statement list with side effects, although the stmt on
      its own would be extracted from the list and remain not having side
      effects.  This causes debug info and possibly codegen differences.
      This patch fixes it, identifying the situation in which the stmt would
      have been extracted from the stmt list, and propagating the side
      effects flag from the stmt to the list.
      
      for  gcc/ChangeLog
      
      	PR debug/83419
      	* c-family/c-semantics.c (pop_stmt_list): Propagate side
      	effects from single nondebug stmt to container list.
      
      for  gcc/testsuite/ChangeLog
      
      	PR debug/83419
      	* gcc.dg/pr83419.c: New.
      
      From-SVN: r255947
      Alexandre Oliva committed
  21. 19 Dec, 2017 1 commit
    • read-rtl.c (parse_reg_note_name): Replace Yoda conditions with typical order conditions. · 01512446
      	* read-rtl.c (parse_reg_note_name): Replace Yoda conditions with
      	typical order conditions.
      	* sel-sched.c (extract_new_fences_from): Likewise.
      	* config/visium/constraints.md (J, K, L): Likewise.
      	* config/visium/predicates.md (const_shift_operand): Likewise.
      	* config/visium/visium.c (visium_legitimize_address,
      	visium_legitimize_reload_address): Likewise.
      	* config/m68k/m68k.c (output_reg_adjust, emit_reg_adjust): Likewise.
      	* config/arm/arm.c (arm_block_move_unaligned_straight): Likewise.
      	* config/avr/constraints.md (Y01, Ym1, Y02, Ym2): Likewise.
      	* config/avr/avr-log.c (avr_vdump, avr_log_set_avr_log,
      	SET_DUMP_DETAIL): Likewise.
      	* config/avr/predicates.md (const_8_16_24_operand): Likewise.
      	* config/avr/avr.c (STR_PREFIX_P, avr_popcount_each_byte,
      	avr_is_casesi_sequence, avr_casei_sequence_check_operands,
      	avr_set_core_architecture, avr_set_current_function,
      	avr_legitimize_reload_address, avr_asm_len, avr_print_operand,
      	output_movqi, output_movsisf, avr_out_plus, avr_out_bitop,
      	avr_out_fract, avr_adjust_insn_length, avr_encode_section_info,
      	avr_2word_insn_p, output_reload_in_const, avr_has_nibble_0xf,
      	avr_map_decompose, avr_fold_builtin): Likewise.
      	* config/avr/driver-avr.c (avr_devicespecs_file): Likewise.
      	* config/avr/gen-avr-mmcu-specs.c (str_prefix_p, print_mcu): Likewise.
      	* config/i386/i386.c (ix86_parse_stringop_strategy_string): Likewise.
      	* config/m32c/m32c-pragma.c (m32c_pragma_memregs): Likewise.
      	* config/m32c/m32c.c (m32c_conditional_register_usage,
      	m32c_address_cost): Likewise.
      	* config/m32c/predicates.md (shiftcount_operand,
      	longshiftcount_operand): Likewise.
      	* config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
      	* config/nios2/nios2.c (nios2_handle_custom_fpu_insn_option,
      	can_use_cdx_ldstw): Likewise.
      	* config/nios2/nios2.h (CDX_REG_P): Likewise.
      	* config/cr16/cr16.h (RETURN_ADDR_RTX, REGNO_MODE_OK_FOR_BASE_P):
      	Likewise.
      	* config/cr16/cr16.md (*mov<mode>_double): Likewise.
      	* config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise.
      	* config/h8300/h8300.c (h8300_rtx_costs, get_shift_alg): Likewise.
      	* config/vax/constraints.md (U06, U08, U16, CN6, S08, S16): Likewise.
      	* config/vax/vax.c (adjacent_operands_p): Likewise.
      	* config/ft32/constraints.md (L, b, KA): Likewise.
      	* config/ft32/ft32.c (ft32_load_immediate, ft32_expand_prologue):
      	Likewise.
      	* cfgexpand.c (expand_stack_alignment): Likewise.
      	* gcse.c (insert_expr_in_table): Likewise.
      	* print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Likewise.
      	* cgraphunit.c (cgraph_node::expand): Likewise.
      	* ira-build.c (setup_min_max_allocno_live_range_point): Likewise.
      	* emit-rtl.c (add_insn): Likewise.
      	* input.c (dump_location_info): Likewise.
      	* passes.c (NEXT_PASS): Likewise.
      	* read-rtl-function.c (parse_note_insn_name,
      	function_reader::read_rtx_operand_r, function_reader::parse_mem_expr):
      	Likewise.
      	* sched-rgn.c (sched_rgn_init): Likewise.
      	* diagnostic-show-locus.c (layout::show_ruler): Likewise.
      	* combine.c (find_split_point, simplify_if_then_else, force_to_mode,
      	if_then_else_cond, simplify_shift_const_1, simplify_comparison): Likewise.
      	* explow.c (eliminate_constant_term): Likewise.
      	* final.c (leaf_renumber_regs_insn): Likewise.
      	* cfgrtl.c (print_rtl_with_bb): Likewise.
      	* genhooks.c (emit_init_macros): Likewise.
      	* poly-int.h (maybe_ne, maybe_le, maybe_lt): Likewise.
      	* tree-data-ref.c (conflict_fn): Likewise.
      	* selftest.c (assert_streq): Likewise.
      	* expr.c (store_constructor_field, expand_expr_real_1): Likewise.
      	* fold-const.c (fold_range_test, extract_muldiv_1, fold_truth_andor,
      	fold_binary_loc, multiple_of_p): Likewise.
      	* reload.c (push_reload, find_equiv_reg): Likewise.
      	* et-forest.c (et_nca, et_below): Likewise.
      	* dbxout.c (dbxout_symbol_location): Likewise.
      	* reorg.c (relax_delay_slots): Likewise.
      	* dojump.c (do_compare_rtx_and_jump): Likewise.
      	* gengtype-parse.c (type): Likewise.
      	* simplify-rtx.c (simplify_gen_ternary, simplify_gen_relational,
      	simplify_const_relational_operation): Likewise.
      	* reload1.c (do_output_reload): Likewise.
      	* dumpfile.c (get_dump_file_info_by_switch): Likewise.
      	* gengtype.c (type_for_name): Likewise.
      	* gimple-ssa-sprintf.c (format_directive): Likewise.
      ada/
      	* gcc-interface/trans.c (Loop_Statement_to_gnu): Replace Yoda
      	conditions with typical order conditions.
      	* gcc-interface/misc.c (gnat_get_array_descr_info,
      	default_pass_by_ref): Likewise.
      	* gcc-interface/decl.c (gnat_to_gnu_entity): Likewise.
      	* adaint.c (__gnat_tmp_name): Likewise.
      c-family/
      	* known-headers.cc (get_stdlib_header_for_name): Replace Yoda
      	conditions with typical order conditions.
      c/
      	* c-typeck.c (comptypes_internal, function_types_compatible_p,
      	perform_integral_promotions, digest_init): Replace Yoda conditions
      	with typical order conditions.
      	* c-decl.c (check_bitfield_type_and_width): Likewise.
      cp/
      	* name-lookup.c (get_std_name_hint): Replace Yoda conditions with
      	typical order conditions.
      	* class.c (check_bitfield_decl): Likewise.
      	* pt.c (convert_template_argument): Likewise.
      	* decl.c (duplicate_decls): Likewise.
      	* typeck.c (commonparms): Likewise.
      fortran/
      	* scanner.c (preprocessor_line): Replace Yoda conditions with typical
      	order conditions.
      	* dependency.c (check_section_vs_section): Likewise.
      	* trans-array.c (gfc_conv_expr_descriptor): Likewise.
      jit/
      	* jit-playback.c (get_type, playback::compile_to_file::copy_file,
      	playback::context::acquire_mutex): Replace Yoda conditions with
      	typical order conditions.
      	* libgccjit.c (gcc_jit_context_new_struct_type,
      	gcc_jit_struct_set_fields, gcc_jit_context_new_union_type,
      	gcc_jit_context_new_function, gcc_jit_timer_pop): Likewise.
      	* jit-builtins.c (matches_builtin): Likewise.
      	* jit-recording.c (recording::compound_type::set_fields,
      	recording::fields::write_reproducer, recording::rvalue::set_scope,
      	recording::function::validate): Likewise.
      	* jit-logging.c (logger::decref): Likewise.
      
      From-SVN: r255831
      Jakub Jelinek committed
  22. 18 Dec, 2017 1 commit
  23. 17 Dec, 2017 1 commit