Locations¶
- gccutils.get_src_for_loc(loc)¶
Given a
gcc.Location
, get the source line as a string (without trailing whitespace or newlines)
- class gcc.Location¶
Wrapper around GCC’s location_t, representing a location within the source code. Use
gccutils.get_src_for_loc()
to get at the line of actual source code.The output from __repr__ looks like this:
gcc.Location(file='./src/test.c', line=42)
The output from__str__ looks like this:
./src/test.c:42
- file¶
(string) Name of the source file (or header file)
- line¶
(int) Line number within source file (starting at 1, not 0)
- column¶
(int) Column number within source file (starting at 1, not 0)
- in_system_header¶
(bool) This attribute flags locations that are within a system header file. It may be of use when writing custom warnings, so that you can filter out issues in system headers, leaving just those within the user’s code:
# Don't report on issues found in system headers: if decl.location.in_system_header: return
- offset_column(self, offset)¶
Generate a new
gcc.Location
based on the caret location of this location, offsetting the column by the given amount.
From GCC 6 onwards, these values can represent both a caret and a range, e.g.:
a = (foo && bar) ~~~~~^~~~~~~
- __init__(self, caret, start, finish)¶
Construct a location, using the caret location of caret as the caret, and the start/finish of start and finish respectively:
compound_loc = gcc.Location(caret, start, finish)
- caret¶
(
gcc.Location
) The caret location within this location. In the above example, the caret is on the first ‘&’ character.
- start¶
(
gcc.Location
) The start location of this range. In the above example, the start is on the opening parenthesis.
- finish¶
(
gcc.Location
) The finish location of this range. In the above example, the finish is on the closing parenthesis.
- class gcc.RichLocation¶
Wrapper around GCC’s rich_location, representing one or more locations within the source code, and zero or more fix-it hints.
Note
gcc.RichLocation is only available from GCC 6 onwards
- add_fixit_replace(self, new_content)¶
Add a fix-it hint, suggesting replacement of the content covered by range 0 of the rich location with new_content.