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.
-