Skip to content
Snippets Groups Projects
  1. Jan 13, 2020
    • Jonathan Wakely's avatar
      Replace update_web_docs_libstdcxx_svn with update_web_docs_libstdcxx_git · 97e2f333
      Jonathan Wakely authored
      This patch replaces the update_web_docs_libstdcxx_svn script, that
      updates online documentation from its sources in the GCC repository, run
      once a day from cron, with update_web_docs_libstdcxx_git.
      
      	* update_web_docs_libstdcxx_git: New file.
      	* update_web_docs_libstdcxx_svn: Remove.
      	* crontab: Use update_web_docs_libstdcxx_git.
      97e2f333
    • David Malcolm's avatar
      testsuite: remove unused dg-line directive · 20571289
      David Malcolm authored
      gcc/testsuite/ChangeLog:
      	* gcc.dg/plugin/diagnostic-test-paths-2.c: Remove unused dg-line
      	directive.
      20571289
    • Anatoliy Sokolov's avatar
      MAINTAINERS: Update my email address. · ef4395e5
      Anatoliy Sokolov authored
      ef4395e5
    • Richard Earnshaw's avatar
      Revert "contrib: Add in the default push rule which was overridden" · 11b81575
      Richard Earnshaw authored
      This reverts commit b60563a8.
      
      Doesn't work as expected.
      11b81575
    • Richard Earnshaw's avatar
      contrib: Add in the default push rule which was overridden · b60563a8
      Richard Earnshaw authored
      When we add a push rule, the default rule gets removed, so add that in
      explicitly.  This needs to come last since otherwise it would match
      the custom redirecting rules we have for personal and vendor
      sub-spaces.
      
      I also noticed that the push rule for the vendor subspace still had
      a force push default.  We don't want that so remove it.
      
      	* gcc-git-customization.sh: Add back the default rule that
      	is lost by adding a custom push rule.
      	* git-fetch-vendor.sh: Likewise, also remove '+' from push specs.
      b60563a8
    • Martin Jambor's avatar
      IPA: Avoid segfault in devirtualization_time_bonus (PR 93223) · 8472660b
      Martin Jambor authored
      2020-01-13  Martin Jambor  <mjambor@suse.cz>
      
      	PR ipa/93223
      	* ipa-cp.c (devirtualization_time_bonus): Check whether isummary is
      	NULL.
      
      	testsuite/
      	* g++.dg/ipa/pr93223.C: New test.
      8472660b
    • Jason Merrill's avatar
      PR c++/80265 - constexpr __builtin_mem*. · 69dc042f
      Jason Merrill authored
      The library has already worked around this issue, but I was curious about
      why it wasn't working.  The answer: because we were passing &var to fold,
      which doesn't know about the constexpr values hash table.  Fixed by passing
      &"str" instead.
      
      	* constexpr.c (cxx_eval_builtin_function_call): Expose STRING_CST
      	to str/mem builtins.
      69dc042f
    • Jason Merrill's avatar
      PR c++/33799 - destroy return value if local cleanup throws. · 7c82dd6c
      Jason Merrill authored
      This is a pretty rare situation since the C++11 change to make all
      destructors default to noexcept, but it is still possible to define throwing
      destructors, and if a destructor for a local variable throws during the
      return, we've already constructed the return value, so now we need to
      destroy it.  I handled this somewhat like the new-expression cleanup; as in
      that case, this cleanup can't properly nest with the cleanups for local
      variables, so I introduce a cleanup region around the whole function and a
      flag variable to indicate whether the return value actually needs to be
      destroyed.
      
      Setting the flag requires giving a COMPOUND_EXPR as the operand of a
      RETURN_EXPR, so I adjust gimplify_return_expr to handle that.
      
      This doesn't currently work with deduced return type because we don't know
      the type when we're deciding whether to introduce the cleanup region.
      
      gcc/
      	* gimplify.c (gimplify_return_expr): Handle COMPOUND_EXPR.
      gcc/cp/
      	* cp-tree.h (current_retval_sentinel): New macro.
      	* decl.c (start_preparsed_function): Set up cleanup for retval.
      	* typeck.c (check_return_expr): Set current_retval_sentinel.
      7c82dd6c
    • Jason Merrill's avatar
      PR c++/93238 - short right-shift with enum. · f1acad4e
      Jason Merrill authored
      My earlier patch to reintroduce short_shift failed to adjust for the C++
      front end use of const_op1 rather than op1.
      
      	* typeck.c (cp_build_binary_op): Use folded op1 for short_shift.
      f1acad4e
    • Joseph Myers's avatar
      Replace update_web_docs_svn with update_web_docs_git. · 33742a0a
      Joseph Myers authored
      This patch replaces the update_web_docs_svn script, that updates
      online documentation from its sources in the GCC repository, run once
      a day from cron, with update_web_docs_git.
      
      	* update_web_docs_git: New file.
      	* update_web_docs_svn: Remove.
      	* crontab: Use update_web_docs_svn.
      33742a0a
    • Jason Merrill's avatar
      Fix typo in invoke.texi. · ac4d87c2
      Jason Merrill authored
      ac4d87c2
    • Joseph Myers's avatar
      Fix handling of overflow in C casts in integer constant expressions (PR c/93241). · 3d77686d
      Joseph Myers authored
      Bug 93241 reports a case where certain C expressions involving casts,
      that would not be valid in an evaluated part of an integer constant
      expression (because of e.g. involving integer overflow), are wrongly
      rejected in an unevaluated part of an integer constant expression even
      though all the operands and operations are ones that are valid in that
      context.  This is a rejects-valid regression in GCC 4.5 and later
      relative to 4.4 (for some testcases; the one in the bug uses
      _Static_assert which isn't supported in those older releases).
      
      The rule in the C front end is that an expression with those
      properties (valid in an unevaluated part of an integer constant
      expression but not an evaluated part) must be represented either as an
      INTEGER_CST with TREE_OVERFLOW set or as a C_MAYBE_CONST_EXPR with
      C_MAYBE_CONST_EXPR_INT_OPERANDS set.  This patch fixes build_c_cast to
      check for that case and call note_integer_operands as needed.
      
      Bootstrapped with no regressions for x86_64-pc-linux-gnu.
      
      	PR c/93241
      gcc/c:
      	* c-typeck.c (build_c_cast): Check for expressions with integer
      	operands that can occur in an unevaluated part of an integer
      	constant expression and call note_integer_operands as needed.
      
      gcc/testsuite:
      	* gcc.dg/c11-static-assert-10.c, gcc.dg/c99-const-expr-15.c: New
      	tests.
      3d77686d
    • Richard Earnshaw's avatar
      contrib: script to setup git to pull a vendors branches · b8f59c4b
      Richard Earnshaw authored
      This simple script is intended to setup a new git configuration to
      pull the branches and tags for a specific vendor.  This should
      simplify some of the steps needed for working with a vendor's
      branches.
      
      	* git-fetch-vendor.sh: New file.
      b8f59c4b
    • Jakub Jelinek's avatar
      contrib: Add git gcc-descr and gcc-undescr aliases. · e19db6a2
      Jakub Jelinek authored
      2020-01-13  Jakub Jelinek  <jakub@redhat.com>
      
      	* contrib/gcc-git-customization.sh: Add git gcc-descr and gcc-undescr
      	aliases.
      e19db6a2
    • Richard Earnshaw's avatar
      contrib: Add script to help with customizing a git checkout for use with GCC · 743d4d82
      Richard Earnshaw authored
      This patch is intended to help with folks setting up a git work
      environment for use with GCC following the transition to git.  It
      currently does a couple of things.
      
      1) Add an alias 'svn-rev' to git so that you can look up a legacy
      commit by its svn revision number.  This enables you to type
      	git svn-rev 1234
      and git will show the commit log entry relating to SVN r1234.
      
      2) Sets up tracking information for the user's personal area in
      the git repo.  It tries to figure out some sensible answers to the
      data it needs, but allows the user to override the values.  It then
      creates the fetch and push entries that are needed for tracking the
      extra refs. This implements one part of the recommendations that I've
      proposed in svnwrite.html for dealing with private branches.
      
      It should be possible to run the script more than once and for it to
      DTRT.  If you change your answers the configuration should be
      correctly updated.
      
      2020-01-13  Richard Earnshaw  <rearnsha@arm.com>
      
          * gcc-git-customization: New file.
      743d4d82
    • Martin Liska's avatar
      Remove usage of legacy param_ipa_cp_unit_growth. · 12122f94
      Martin Liska authored
      	* ipa-cp.c (get_max_overall_size): Use newly
      	renamed param param_ipa_cp_unit_growth.
      	* params.opt: Remove legacy param name.
      12122f94
    • Martin Sebor's avatar
      PR tree-optimization/93213 - wrong code with -Og -foptimize-strlen · e13f37d9
      Martin Sebor authored
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/93213
      	* gcc.c-torture/execute/pr93213.c: New test.
      
      gcc/ChangeLog:
      
      	PR tree-optimization/93213
      	* tree-ssa-strlen.c (handle_store): Only allow single-byte nul-over-nul
      	stores to be eliminated.
      e13f37d9
    • Martin Liska's avatar
      Exclude CL_WARNING and CL_PARAM from --help=optimize. · 5ab08934
      Martin Liska authored
      2020-01-13  Martin Liska  <mliska@suse.cz>
      
      	* opts.c (print_help): Do not print CL_PARAM
      	and CL_WARNING for CL_OPTIMIZATION.
      5ab08934
    • Jonathan Wakely's avatar
      libstdc++: Ensure root-dir converted to forward slash (PR93244) · fe7cc34f
      Jonathan Wakely authored
      	PR libstdc++/93244
      	* include/bits/fs_path.h (path::generic_string<C,A>)
      	[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Convert root-dir to forward-slash.
      	* testsuite/27_io/filesystem/path/generic/generic_string.cc: Check
      	root-dir is converted to forward slash in generic pathname.
      	* testsuite/27_io/filesystem/path/generic/utf.cc: New test.
      	* testsuite/27_io/filesystem/path/generic/wchar_t.cc: New test.
      fe7cc34f
    • Jonathan Wakely's avatar
      libstdc++: Value-initialize std::atomic for C++20 (P0883R2) · e4379a93
      Jonathan Wakely authored
      This implements the new requirements for C++20 that std::atomic should
      initialize the atomic variable in its default constructor.
      
      This patch does not add the deprecated attribute to atomic_init, but
      that should be done at some point as it's deprecated in C++20.
      
      The paper also deprecates the ATOMIC_FLAG_INIT macro, although we can't
      apply the deprecated attribute to a macro.
      
      	PR libstdc++/58605
      	* include/bits/atomic_base.h (__cpp_lib_atomic_value_initialization):
      	Define.
      	(__atomic_flag_base, __atomic_base, __atomic_base<_PTp*>)
      	(__atomic_float): Add default member initializer for C++20.
      	* include/std/atomic (atomic): Likewise.
      	(atomic::atomic()): Remove noexcept-specifier on default constructor.
      	* include/std/version (__cpp_lib_atomic_value_initialization): Define.
      	* testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust dg-error line
      	number.
      	* testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
      	* testsuite/29_atomics/atomic/cons/value_init.cc: New test.
      	* testsuite/29_atomics/atomic_flag/cons/value_init.cc: New test.
      	* testsuite/29_atomics/atomic_flag/requirements/trivial.cc: Adjust
      	expected result for is_trivially_default_constructible.
      	* testsuite/29_atomics/atomic_float/requirements.cc: Likewise.
      	* testsuite/29_atomics/atomic_float/value_init.cc: New test.
      	* testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Likewise.
      	* testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise.
      	* testsuite/29_atomics/atomic_integral/cons/value_init.cc
      	* testsuite/29_atomics/atomic_integral/requirements/trivial.cc: Adjust
      	expected results for is_trivially_default_constructible.
      	* testsuite/util/testsuite_common_types.h (has_trivial_dtor): Add
      	new test generator.
      e4379a93
    • Jonathan Wakely's avatar
      doc: Note that some warnings depend on optimizations (PR 92757) · aef85e40
      Jonathan Wakely authored
      	PR driver/92757
      	* doc/invoke.texi (Warning Options): Add caveat about some warnings
      	depending on optimization settings.
      aef85e40
    • Jakub Jelinek's avatar
      tree-opt: Fix bootstrap failure in tree-ssa-forwprop.c some more PR90838 · eb7c7c52
      Jakub Jelinek authored
      2020-01-13  Jakub Jelinek  <jakub@redhat.com>
      
      	PR tree-optimization/90838
      	* tree-ssa-forwprop.c (simplify_count_trailing_zeroes): Use
      	SCALAR_INT_TYPE_MODE directly in CTZ_DEFINED_VALUE_AT_ZERO macro
      	argument rather than to initialize temporary for targets that
      	don't use the mode argument at all.  Initialize ctzval to avoid
      	warning at -O0.
      eb7c7c52
    • Joseph Myers's avatar
      Update gcc_release for move to git. · 67e63570
      Joseph Myers authored
      This patch updates the gcc_release script, used for snapshots and
      releases, to use git instead of SVN.
      
      The parts of the changes used in building snapshots have been tested.
      The parts used for building releases have not, so it's likely further
      fixes may turn out to be needed there when releases are first built
      from git.
      
      	* gcc_release: Use git instead of SVN.
      	* crontab: Update gcc_release calls.
      67e63570
    • GCC Administrator's avatar
      Daily bump. · a171d3f1
      GCC Administrator authored
      a171d3f1
    • Joseph Myers's avatar
      Replace update_version_svn with update_version_git. · 18cb6ac2
      Joseph Myers authored
      This patch replaces the update_version_svn script, that updates the
      DATESTAMP files from cron, with update_version_git.
      
      	* update_version_git: New file.
      	* update_version:svn: Remove.
      	* crontab: Use update_version_git.
      18cb6ac2
    • Joseph Myers's avatar
      Remove README.MOVED_TO_GIT. The repository is now open for commits. · b2b465c5
      Joseph Myers authored
      	* README.MOVED_TO_GIT: Remove.
      b2b465c5
  2. Jan 11, 2020
  3. Jan 10, 2020
    • Kwok Cheung Yeung's avatar
      [amdgcn] Remove dependency on stdint.h in libgcc · af9bd920
      Kwok Cheung Yeung authored
      2020-01-10  Kwok Cheung Yeung  <kcy@codesourcery.com>
      
      	libgcc/
      	* config/gcn/atomic.c: Remove include of stdint.h.
      	(__sync_val_compare_and_swap_##SIZE): Replace uintptr_t with
      	__UINTPTR_TYPE__.
      
      From-SVN: r280152
      af9bd920
    • Thomas Schwinge's avatar
      OpenACC 'acc_get_property' cleanup · 6fc0385c
      Thomas Schwinge authored
      	include/
      	* gomp-constants.h (enum gomp_device_property): Remove.
      	libgomp/
      	* libgomp-plugin.h (enum goacc_property): New.  Adjust all users
      	to use this instead of 'enum gomp_device_property'.
      	(GOMP_OFFLOAD_get_property): Rename to...
      	(GOMP_OFFLOAD_openacc_get_property): ... this.  Adjust all users.
      	* libgomp.h (struct gomp_device_descr): Move
      	'GOMP_OFFLOAD_openacc_get_property'...
      	(struct acc_dispatch_t): ... here.  Adjust all users.
      	* plugin/plugin-hsa.c (GOMP_OFFLOAD_get_property): Remove.
      	liboffloadmic/
      	* plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_get_property):
      	Remove.
      
      From-SVN: r280150
      6fc0385c
    • Thomas Schwinge's avatar
      Further changes for the OpenACC 'if_present' clause on the 'host_data' construct · b3b75e66
      Thomas Schwinge authored
      	gcc/
      	* tree.h (OMP_CLAUSE_USE_DEVICE_PTR_IF_PRESENT): New definition.
      	* tree-core.h: Document it.
      	* gimplify.c (gimplify_omp_workshare): Set it.
      	* omp-low.c (lower_omp_target): Use it.
      	* tree-pretty-print.c (dump_omp_clause): Print it.
      	gcc/testsuite/
      	* c-c++-common/goacc/host_data-1.c: Extend.
      	* gfortran.dg/goacc/host_data-tree.f95: Likewise.
      
      	gcc/
      	* omp-low.c (lower_omp_target) <OMP_CLAUSE_USE_DEVICE_PTR etc.>:
      	Assert that for OpenACC we always have 'GOMP_MAP_USE_DEVICE_PTR'.
      
      	libgomp/
      	* target.c (gomp_map_vars_internal)
      	<GOMP_MAP_USE_DEVICE_PTR_IF_PRESENT>: Clean up/elaborate code
      	paths.
      
      From-SVN: r280149
      b3b75e66
    • Jonathan Wakely's avatar
      libstdc++: Improve comment about testsuite utilities · 68be73fc
      Jonathan Wakely authored
      This fixes a typo and also explains why test_container is not a range
      when used with output_iterator_wrapper or input_iterator_wrapper.
      
      	* testsuite/util/testsuite_iterators.h: Improve comment.
      
      From-SVN: r280146
      68be73fc
    • David Malcolm's avatar
      Add diagnostic paths · 4bc1899b
      David Malcolm authored
      This patch adds support for associating a "diagnostic_path" with a
      diagnostic: a sequence of events predicted by the compiler that leads to
      the problem occurring, with their locations in the user's source,
      text descriptions, and stack information (for handling interprocedural
      paths).
      
      For example, the following (hypothetical) error has a 3-event
      intraprocedural path:
      
      test.c: In function 'demo':
      test.c:29:5: error: passing NULL as argument 1 to 'PyList_Append' which
        requires a non-NULL parameter
         29 |     PyList_Append(list, item);
            |     ^~~~~~~~~~~~~~~~~~~~~~~~~
        'demo': events 1-3
           |
           |   25 |   list = PyList_New(0);
           |      |          ^~~~~~~~~~~~~
           |      |          |
           |      |          (1) when 'PyList_New' fails, returning NULL
           |   26 |
           |   27 |   for (i = 0; i < count; i++) {
           |      |   ~~~
           |      |   |
           |      |   (2) when 'i < count'
           |   28 |     item = PyLong_FromLong(random());
           |   29 |     PyList_Append(list, item);
           |      |     ~~~~~~~~~~~~~~~~~~~~~~~~~
           |      |     |
           |      |     (3) when calling 'PyList_Append', passing NULL from (1) as argument 1
           |
      
      The patch adds a new "%@" format code for printing event IDs, so that
      in the above, the description of event (3) mentions event (1), showing
      the user where the bogus NULL value comes from (the event IDs are
      colorized to draw the user's attention to them).
      
      There is a separation between data vs presentation: the above shows how
      the diagnostic-printing code has consolidated the path into a single run
      of events, since all the events are near each other and within the same
      function; more complicated examples (such as interprocedural paths)
      might be printed as multiple runs of events.
      
      Examples of how interprocedural paths are printed can be seen in the
      test suite (which uses a plugin to exercise the code without relying
      on specific warnings using this functionality).
      
      Other output formats include
      - JSON,
      - printing each event as a separate "note", and
      - to not emit paths.
      
      gcc/ChangeLog:
      	* Makefile.in (OBJS): Add tree-diagnostic-path.o.
      	* common.opt (fdiagnostics-path-format=): New option.
      	(diagnostic_path_format): New enum.
      	(fdiagnostics-show-path-depths): New option.
      	* coretypes.h (diagnostic_event_id_t): New forward decl.
      	* diagnostic-color.c (color_dict): Add "path".
      	* diagnostic-event-id.h: New file.
      	* diagnostic-format-json.cc (json_from_expanded_location): Make
      	non-static.
      	(json_end_diagnostic): Call context->make_json_for_path if it
      	exists and the diagnostic has a path.
      	(diagnostic_output_format_init): Clear context->print_path.
      	* diagnostic-path.h: New file.
      	* diagnostic-show-locus.c (colorizer::set_range): Special-case
      	when printing a run of events in a diagnostic_path so that they
      	all get the same color.
      	(layout::m_diagnostic_path_p): New field.
      	(layout::layout): Initialize it.
      	(layout::print_any_labels): Don't colorize the label text for an
      	event in a diagnostic_path.
      	(gcc_rich_location::add_location_if_nearby): Add
      	"restrict_to_current_line_spans" and "label" params.  Pass the
      	former to layout.maybe_add_location_range; pass the latter
      	when calling add_range.
      	* diagnostic.c: Include "diagnostic-path.h".
      	(diagnostic_initialize): Initialize context->path_format and
      	context->show_path_depths.
      	(diagnostic_show_any_path): New function.
      	(diagnostic_path::interprocedural_p): New function.
      	(diagnostic_report_diagnostic): Call diagnostic_show_any_path.
      	(simple_diagnostic_path::num_events): New function.
      	(simple_diagnostic_path::get_event): New function.
      	(simple_diagnostic_path::add_event): New function.
      	(simple_diagnostic_event::simple_diagnostic_event): New ctor.
      	(simple_diagnostic_event::~simple_diagnostic_event): New dtor.
      	(debug): New overload taking a diagnostic_path *.
      	* diagnostic.def (DK_DIAGNOSTIC_PATH): New.
      	* diagnostic.h (enum diagnostic_path_format): New enum.
      	(json::value): New forward decl.
      	(diagnostic_context::path_format): New field.
      	(diagnostic_context::show_path_depths): New field.
      	(diagnostic_context::print_path): New callback field.
      	(diagnostic_context::make_json_for_path): New callback field.
      	(diagnostic_show_any_path): New decl.
      	(json_from_expanded_location): New decl.
      	* doc/invoke.texi (-fdiagnostics-path-format=): New option.
      	(-fdiagnostics-show-path-depths): New option.
      	(-fdiagnostics-color): Add "path" to description of default
      	GCC_COLORS; describe it.
      	(-fdiagnostics-format=json): Document how diagnostic paths are
      	represented in the JSON output format.
      	* gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
      	Add optional params "restrict_to_current_line_spans" and "label".
      	* opts.c (common_handle_option): Handle
      	OPT_fdiagnostics_path_format_ and
      	OPT_fdiagnostics_show_path_depths.
      	* pretty-print.c: Include "diagnostic-event-id.h".
      	(pp_format): Implement "%@" format code for printing
      	diagnostic_event_id_t *.
      	(selftest::test_pp_format): Add tests for "%@".
      	* selftest-run-tests.c (selftest::run_tests): Call
      	selftest::tree_diagnostic_path_cc_tests.
      	* selftest.h (selftest::tree_diagnostic_path_cc_tests): New decl.
      	* toplev.c (general_init): Initialize global_dc->path_format and
      	global_dc->show_path_depths.
      	* tree-diagnostic-path.cc: New file.
      	* tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Make
      	non-static.  Drop "diagnostic" param in favor of storing the
      	original value of "where" and re-using it.
      	(virt_loc_aware_diagnostic_finalizer): Update for dropped param of
      	maybe_unwind_expanded_macro_loc.
      	(tree_diagnostics_defaults): Initialize context->print_path and
      	context->make_json_for_path.
      	* tree-diagnostic.h (default_tree_diagnostic_path_printer): New
      	decl.
      	(default_tree_make_json_for_path): New decl.
      	(maybe_unwind_expanded_macro_loc): New decl.
      
      gcc/c-family/ChangeLog:
      	* c-format.c (local_event_ptr_node): New.
      	(PP_FORMAT_CHAR_TABLE): Add entry for "%@".
      	(init_dynamic_diag_info): Initialize local_event_ptr_node.
      	* c-format.h (T_EVENT_PTR): New define.
      
      gcc/testsuite/ChangeLog:
      	* gcc.dg/format/gcc_diag-10.c (diagnostic_event_id_t): New
      	typedef.
      	(test_diag): Add coverage of "%@".
      	* gcc.dg/plugin/diagnostic-path-format-default.c: New test.
      	* gcc.dg/plugin/diagnostic-path-format-inline-events-1.c: New test.
      	* gcc.dg/plugin/diagnostic-path-format-inline-events-2.c: New test.
      	* gcc.dg/plugin/diagnostic-path-format-inline-events-3.c: New test.
      	* gcc.dg/plugin/diagnostic-path-format-none.c: New test.
      	* gcc.dg/plugin/diagnostic-test-paths-1.c: New test.
      	* gcc.dg/plugin/diagnostic-test-paths-2.c: New test.
      	* gcc.dg/plugin/diagnostic-test-paths-3.c: New test.
      	* gcc.dg/plugin/diagnostic-test-paths-4.c: New test.
      	* gcc.dg/plugin/diagnostic_plugin_test_paths.c: New.
      	* gcc.dg/plugin/plugin.exp: Add the new plugin and test cases.
      
      libcpp/ChangeLog:
      	* include/line-map.h (class diagnostic_path): New forward decl.
      	(rich_location::get_path): New accessor.
      	(rich_location::set_path): New function.
      	(rich_location::m_path): New field.
      	* line-map.c (rich_location::rich_location): Initialize m_path.
      
      From-SVN: r280142
      4bc1899b
    • Jakub Jelinek's avatar
      re PR tree-optimization/93210 (Sub-optimal code optimization on... · ea69031c
      Jakub Jelinek authored
      re PR tree-optimization/93210 (Sub-optimal code optimization on struct/combound constexpr (gcc vs. clang))
      
      	PR tree-optimization/93210
      	* fold-const.h (native_encode_initializer,
      	can_native_interpret_type_p): Declare.
      	* fold-const.c (native_encode_string): Fix up handling with off != -1,
      	simplify.
      	(native_encode_initializer): New function, moved from dwarf2out.c.
      	Adjust to native_encode_expr compatible arguments, including dry-run
      	and partial extraction modes.  Don't handle STRING_CST.
      	(can_native_interpret_type_p): No longer static.
      	* gimple-fold.c (fold_ctor_reference): For native_encode_expr, verify
      	offset / BITS_PER_UNIT fits into int and don't call it if
      	can_native_interpret_type_p fails.  If suboff is NULL and for
      	CONSTRUCTOR fold_{,non}array_ctor_reference returns NULL, retry with
      	native_encode_initializer.
      	(fold_const_aggregate_ref_1): Formatting fix.
      	* dwarf2out.c (native_encode_initializer): Moved to fold-const.c.
      	(tree_add_const_value_attribute): Adjust caller.
      
      	* gcc.dg/pr93210.c: New test.
      	* g++.dg/opt/pr93210.C: New test.
      
      From-SVN: r280141
      ea69031c
    • Jakub Jelinek's avatar
      re PR tree-optimization/90838 (Detect table-based ctz implementation) · 974bb8a4
      Jakub Jelinek authored
      	PR tree-optimization/90838
      	* tree-ssa-forwprop.c (simplify_count_trailing_zeroes): Use
      	SCALAR_INT_TYPE_MODE instead of TYPE_MODE as operand of
      	CTZ_DEFINED_VALUE_AT_ZERO.
      
      From-SVN: r280140
      974bb8a4
    • Vladimir Makarov's avatar
      re PR inline-asm/93027 (ICE: in match_reload, at lra-constraints.c:1060) · a29a9962
      Vladimir Makarov authored
      2020-01-10  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR inline-asm/93027
      	* gcc.target/i386/pr93027.c: Use the right PR number in the test.
      
      From-SVN: r280138
      a29a9962
    • Jakub Jelinek's avatar
      re PR libgomp/93219 (unused return value in affinity-fmt.c) · 91df4397
      Jakub Jelinek authored
      	PR libgomp/93219
      	* libgomp.h (gomp_print_string): Change return type from void to int.
      	* affinity-fmt.c (gomp_print_string): Likewise.  Return true if
      	not all characters have been written.
      
      From-SVN: r280137
      91df4397
    • Vladimir Makarov's avatar
      Rename pr93207.c to pr93027.c. Fix PR number in change logs. · 530cfcd7
      Vladimir Makarov authored
      From-SVN: r280136
      530cfcd7
    • Vladimir Makarov's avatar
      re PR inline-asm/93027 (ICE: in match_reload, at lra-constraints.c:1060) · 6f9dc606
      Vladimir Makarov authored
      2020-01-10  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR inline-asm/93207
      	* gcc.target/i386/pr93207.c: Run it only for x86-64.
      
      From-SVN: r280135
      6f9dc606
    • David Malcolm's avatar
      testsuite: add dg-enable-nn-line-numbers · 83f604e7
      David Malcolm authored
      This patch adds support for obscuring the line numbers printed in the
      left-hand margin when printing the source code, converting them to "NN",
      e.g from:
      
        7111 |   if (!(flags & 0x0001)) {
             |      ^
             |      |
             |      (1) following 'true' branch...
        7112 |
      
      to:
      
         NN  |   if (!(flags & 0x0001)) {
             |      ^
             |      |
             |      (1) following 'true' branch...
         NN  |
      
      This is useful in followup patches e.g. when testing how interprocedural
      paths are printed using multiline.exp, to avoid depending on precise line
      numbers.
      
      gcc/testsuite/ChangeLog:
      	* lib/gcc-dg.exp (cleanup-after-saved-dg-test): Reset global
      	nn_line_numbers_enabled.
      	* lib/multiline.exp (nn_line_numbers_enabled): New global.
      	(dg-enable-nn-line-numbers): New proc.
      	(maybe-handle-nn-line-numbers): New proc.
      	* lib/prune.exp (prune_gcc_output): Call maybe-handle-nn-line-numbers.
      
      From-SVN: r280134
      83f604e7
Loading