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