Skip to content

Commit

Permalink
libcpp: move line typedef and column-numbering comment to top of file
Browse files Browse the repository at this point in the history
The description of our 1-based column-numbering convention was in
a non-obvious place withn line-map.h; this patch moves it to the top
of that header.

libcpp/ChangeLog:
	* include/line-map.h (linenum_type): Move this typedef and the
	comment describing column numbering to near the top of the file.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@254703 138bc75d-0d04-0410-961f-82ee72b054a4
  • Loading branch information
dmalcolm committed Nov 13, 2017
1 parent 7d3df64 commit e80defd
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 23 deletions.
5 changes: 5 additions & 0 deletions libcpp/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
2017-11-13 David Malcolm <[email protected]>

* include/line-map.h (linenum_type): Move this typedef and the
comment describing column numbering to near the top of the file.

2017-11-06 Mukesh Kapoor <[email protected]>

PR c++/80955
Expand Down
46 changes: 23 additions & 23 deletions libcpp/include/line-map.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,29 @@ along with this program; see the file COPYING3. If not see
#define GTY(x) /* nothing */
#endif

/* Both gcc and emacs number source *lines* starting at 1, but
they have differing conventions for *columns*.
GCC uses a 1-based convention for source columns,
whereas Emacs's M-x column-number-mode uses a 0-based convention.
For example, an error in the initial, left-hand
column of source line 3 is reported by GCC as:
some-file.c:3:1: error: ...etc...
On navigating to the location of that error in Emacs
(e.g. via "next-error"),
the locus is reported in the Mode Line
(assuming M-x column-number-mode) as:
some-file.c 10% (3, 0)
i.e. "3:1:" in GCC corresponds to "(3, 0)" in Emacs. */

/* The type of line numbers. */
typedef unsigned int linenum_type;

/* Reason for creating a new line map with linemap_add. LC_ENTER is
when including a new file, e.g. a #include directive in C.
LC_LEAVE is when reaching a file's end. LC_RENAME is when a file
Expand All @@ -43,9 +66,6 @@ enum lc_reason
/* FIXME: add support for stringize and paste. */
};

/* The type of line numbers. */
typedef unsigned int linenum_type;

/* The typedef "source_location" is a key within the location database,
identifying a source location or macro expansion, along with range
information, and (optionally) a pointer for use by gcc.
Expand Down Expand Up @@ -1251,26 +1271,6 @@ typedef struct
bool sysp;
} expanded_location;

/* Both gcc and emacs number source *lines* starting at 1, but
they have differing conventions for *columns*.
GCC uses a 1-based convention for source columns,
whereas Emacs's M-x column-number-mode uses a 0-based convention.
For example, an error in the initial, left-hand
column of source line 3 is reported by GCC as:
some-file.c:3:1: error: ...etc...
On navigating to the location of that error in Emacs
(e.g. via "next-error"),
the locus is reported in the Mode Line
(assuming M-x column-number-mode) as:
some-file.c 10% (3, 0)
i.e. "3:1:" in GCC corresponds to "(3, 0)" in Emacs. */

/* A location within a rich_location: a caret&range, with
the caret potentially flagged for display. */

Expand Down

0 comments on commit e80defd

Please sign in to comment.