This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/79300] Wrong diagnostics position


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79300

--- Comment #5 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
Author: dmalcolm
Date: Thu Jul  6 14:17:24 2017
New Revision: 250022

URL: https://gcc.gnu.org/viewcvs?rev=250022&root=gcc&view=rev
Log:
diagnostics: fix end-points of ranges within macros (PR c++/79300)

gcc/ChangeLog:
        PR c++/79300
        * diagnostic-show-locus.c (layout::layout): Use start and finish
        spelling location for the start and finish of each range.
        * genmatch.c (linemap_client_expand_location_to_spelling_point):
        Add unused aspect param.
        * input.c (expand_location_1): Add "aspect" param, and use it
        to access the correct part of the location.
        (expand_location): Pass LOCATION_ASPECT_CARET to new param of
        expand_location_1.
        (expand_location_to_spelling_point): Likewise.
        (linemap_client_expand_location_to_spelling_point): Add "aspect"
        param, and pass it to expand_location_1.

gcc/testsuite/ChangeLog:
        PR c++/79300
        * c-c++-common/Wmisleading-indentation-3.c (fn_14): Update
        expected underlining within macro expansion.
        * c-c++-common/pr70264.c: Likewise.
        * g++.dg/plugin/diagnostic-test-expressions-1.C
        (test_within_macro_1): New test.
        (test_within_macro_2): Likewise.
        (test_within_macro_3): Likewise.
        (test_within_macro_4): Likewise.
        * gcc.dg/format/diagnostic-ranges.c (test_macro_3): Update
        expected underlining within macro expansion.
        (test_macro_4): Likewise.
        * gcc.dg/plugin/diagnostic-test-expressions-1.c
        (test_within_macro_1): New test.
        (test_within_macro_2): Likewise.
        (test_within_macro_3): Likewise.
        (test_within_macro_4): Likewise.
        * gcc.dg/spellcheck-fields-2.c (test_macro): Update expected
        underlining within macro expansion.

libcpp/ChangeLog:
        PR c++/79300
        * include/line-map.h (enum location_aspect): New enum.
        (linemap_client_expand_location_to_spelling_point): Add
        enum location_aspect param.
        * line-map.c (rich_location::get_expanded_location): Update for
        new param of linemap_client_expand_location_to_spelling_point.
        (rich_location::maybe_add_fixit): Likewise.
        (fixit_hint::affects_line_p): Likewise.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/diagnostic-show-locus.c
    trunk/gcc/genmatch.c
    trunk/gcc/input.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/c-c++-common/Wmisleading-indentation-3.c
    trunk/gcc/testsuite/c-c++-common/pr70264.c
    trunk/gcc/testsuite/g++.dg/plugin/diagnostic-test-expressions-1.C
    trunk/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
    trunk/gcc/testsuite/gcc.dg/plugin/diagnostic-test-expressions-1.c
    trunk/gcc/testsuite/gcc.dg/spellcheck-fields-2.c
    trunk/libcpp/ChangeLog
    trunk/libcpp/include/line-map.h
    trunk/libcpp/line-map.c

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]