1. 29 Aug, 2016 18 commits
  2. 28 Aug, 2016 7 commits
  3. 27 Aug, 2016 6 commits
  4. 26 Aug, 2016 9 commits
    • re PR target/77349 (AIX DWARF debugging offset in 64 bit mode) · f763d964
      PR target/77349
      * config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE.
      
      From-SVN: r239790
      David Edelsohn committed
    • Add validation and consolidation of fix-it hints · ee908516
      The first aspect of this patch is to add some checking of fix-it hints.
      The idea is to put this checking within the rich_location machinery,
      rather than requiring every diagnostic to implement it for itself.
      
      The fixits within a rich_location are "atomic": all must be valid for
      any to be applicable.
      
      We reject any fixits involving locations above
      LINE_MAP_MAX_LOCATION_WITH_COLS.
      
      There's no guarantee that it's sane to modify a macro, so we reject
      any fix-its that touch them.
      
      For example, note the attempt to provide a fix-it for the definition
      of the macro FIELD:
      
      spellcheck-fields-2.c: In function ‘test_macro’:
      spellcheck-fields-2.c:26:15: error: ‘union u’ has no member named ‘colour’; did you mean ‘color’?
       #define FIELD colour
                     ^
                     color
      spellcheck-fields-2.c:27:15: note: in expansion of macro ‘FIELD’
         return ptr->FIELD;
                     ^~~~~
      
      After this patch, the fixit is not displayed:
      
      spellcheck-fields-2.c: In function ‘test_macro’:
      spellcheck-fields-2.c:26:15: error: ‘union u’ has no member named ‘colour’; did you mean ‘color’?
       #define FIELD colour
                     ^
      spellcheck-fields-2.c:27:15: note: in expansion of macro ‘FIELD’
         return ptr->FIELD;
                     ^~~~~
      
      We might want some way for a diagnostic to opt-in to fix-its that
      affect macros, but for now it's simplest to reject them.
      
      The other aspect of this patch is fix-it consolidation: in some cases
      neighboring fix-its can be merged.  For example, in a diagnostic to
      modernize old-style struct initializers from:
      
       struct s example = {
      - foo: 1,
      + .foo = 1,
       };
      
      one approach would be to replace the "foo" with ".foo" and the ":"
      with " =".  This would give two "replace" fix-its:
      
        foo: 1,
        --- FIXIT 1
        .foo
           - FIXIT 2
           =
      
      This patch allows them to be consolidated into a single "replace" fix-it:
      
        foo: 1,
        ----
        .foo =
      
      gcc/ChangeLog:
      	* diagnostic-show-locus.c
      	(selftest::test_fixit_consolidation): New function.
      	(selftest::diagnostic_show_locus_c_tests): Call it.
      	* gcc-rich-location.h (gcc_rich_location): Eliminate unused
      	constructor based on source_range.
      
      gcc/testsuite/ChangeLog:
      	* gcc.dg/spellcheck-fields-2.c (test): Move
      	dg-begin/end-multiline-output within function body.
      	(test_macro): New function.
      
      libcpp/ChangeLog:
      	* include/line-map.h (rich_location): Eliminate unimplemented
      	constructor based on source_range.
      	(rich_location::get_last_fixit_hint): New method.
      	(rich_location::reject_impossible_fixit): New method.
      	(rich_location): Add fields m_line_table and
      	m_seen_impossible_fixit.
      	(fixit_hint::maybe_append_replace): New pure virtual function.
      	(fixit_insert::maybe_append_replace): New function.
      	(fixit_replace::maybe_append_replace): New function.
      	* line-map.c (rich_location::rich_location): Initialize
      	m_line_table and m_seen_impossible_fixit.
      	(rich_location::add_fixit_insert): Call
      	reject_impossible_fixit and bail out if true.
      	(column_before_p): New function.
      	(rich_location::add_fixit_replace): Call reject_impossible_fixit
      	and bail out if true.  Attempt to consolidate with neighboring
      	fixits.
      	(rich_location::get_last_fixit_hint): New method.
      	(rich_location::reject_impossible_fixit): New method.
      	(fixit_insert::maybe_append_replace): New method.
      	(fixit_replace::maybe_append_replace): New method.
      
      From-SVN: r239789
      David Malcolm committed
    • Tweak to colors of fix-it hints · d41e76cf
      Previous, fix-it hints were printed using the color of the severity
      of the diagnostic (magenta for warnings, red for errors, cyan for
      notes).
      
      This patch updates fix-it hints so that replacement text is printed in
      green, to better distinguish the suggested improvement from
      the current code.  For example:
      
      spellcheck-fields.cc:52:13: error: 'struct s' has no member named 'colour'; did you mean 'color'?
         return ptr->colour;  <<< RED
                     ^~~~~~   <<< RED
                     color    <<< GREEN
      
      It makes sense for the underlinings that indicate deletions to
      be printed in red, so the patch changes that also.  For example:
      
      diagnostic-test-show-locus-color.c:179:9: warning: example of a removal hint
         int a;;  <<< MAGENTA
               ^  <<< MAGENTA
               -  <<< RED
      
      gcc/ChangeLog:
      	* diagnostic-color.c (color_dict): Add "fixit-insert" and
      	"fixit-delete".
      	(parse_gcc_colors): Update description of default GCC_COLORS.
      	* diagnostic-show-locus.c (colorizer::set_fixit_hint): Delete.
      	(colorizer::set_fixit_insert): New method.
      	(colorizer::set_fixit_delete): New method.
      	(colorizer::get_color_by_name): New method.
      	(colorizer::STATE_FIXIT_INSERT): New constant.
      	(colorizer::STATE_FIXIT_DELETE): New constant.
      	(class colorizer): Drop "_cs" suffix from fields.  Delete "_ce"
      	fields in favor of new field "m_stop_color".  Add fields
      	"m_fixit_insert" and "m_fixit_delete".
      	(colorizer::colorizer): Update for above changes.  Replace
      	colorize_start calls with calls to get_color_by_name.
      	(colorizer::begin_state): Handle STATE_FIXIT_INSERT and
      	STATE_FIXIT_DELETE.  Update for field renamings.
      	(colorizer::finish_state): Simplify by using m_stop_color,
      	rather than multiple identical "*_ce" fields.
      	(colorizer::get_color_by_name): New method.
      	(layout::print_any_fixits): Print insertions and replacements
      	using the "fixit-insert" color, and deletions using the
      	"fixit-delete" color.
      	* doc/invoke.texi (-fdiagnostics-color): Update description of
      	default GCC_COLORS, and of the supported capabilities.
      
      gcc/testsuite/ChangeLog:
      	* gcc.dg/plugin/diagnostic-test-show-locus-color.c
      	(test_fixit_insert): Update expected output.
      	(test_fixit_remove): Likewise.
      	(test_fixit_replace): Likewise.
      
      From-SVN: r239787
      David Malcolm committed
    • Fix gcc.dg/ipa/propbits-2.c · 524a4c96
      	* gcc.dg/ipa/propbits-2.c: Add -fdump-tree-optimized to dg-options.
      	Fix typo.
      
      From-SVN: r239786
      Rainer Orth committed
    • xtensa: report stack usage · 7695d1e3
      This enables options -fstack-usage and -Wstack-usage.
      
      2016-08-26  Max Filippov  <jcmvbkbc@gmail.com>
      gcc/
      	* config/xtensa/xtensa.c (xtensa_expand_prologue): Update
      	current_function_static_stack_size variable with the static
      	stack frame size of the current function when
      	flag_stack_usage_info is enabled.
      
      From-SVN: r239785
      Max Filippov committed
    • Avoid calling a trivial default constructor. · d0b0fbd9
      	* class.c (default_ctor_p): New.
      	(in_class_defaulted_default_constructor): Use it.
      	(type_has_non_user_provided_default_constructor): Use it.
      	* call.c (build_over_call): Handle trivial default constructor.
      	* cp-tree.h: Declare default_ctor_p.
      
      From-SVN: r239783
      Jason Merrill committed
    • PR c++/57728 - explicit instantiation and defaulted functions · 9729a5d5
      	* pt.c (do_type_instantiation): Don't mess with non-user-provided
      	member functions.
      
      From-SVN: r239782
      Jason Merrill committed
    • libstdc++/51960 move-construction for raw_storage_iterator · 10491e4c
      	PR libstdc++/51960
      	* doc/xml/manual/intro.xml: Document DR 2127 change.
      	* doc/html/*: Regenerate.
      	* include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
      	(operator++(), operator++(int)): Use injected class name.
      	* testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
      
      From-SVN: r239781
      Jonathan Wakely committed
    • ipa-inline-analysis.c (inline_write_summary): Remove unnecessary assignment inside if condition. · bdc30f8f
      	* ipa-inline-analysis.c (inline_write_summary): Remove unnecessary
      	assignment inside if condition.
      
      From-SVN: r239779
      Nathan Sidwell committed