diff --git a/clang/bindings/python/clang/cindex.py b/clang/bindings/python/clang/cindex.py index ee996bbf8b84..1734ddbcaf71 100644 --- a/clang/bindings/python/clang/cindex.py +++ b/clang/bindings/python/clang/cindex.py @@ -105,10 +105,10 @@ class SourceLocation(Structure): def _get_instantiation(self): if self._data is None: - f, l, c = c_object_p(), c_uint(), c_uint() - SourceLocation_loc(self, byref(f), byref(l), byref(c)) + f, l, c, o = c_object_p(), c_uint(), c_uint(), c_uint() + SourceLocation_loc(self, byref(f), byref(l), byref(c), byref(o)) f = File(f) if f else None - self._data = (f, int(l.value), int(c.value)) + self._data = (f, int(l.value), int(c.value), int(c.value)) return self._data @property @@ -126,6 +126,11 @@ class SourceLocation(Structure): """Get the column represented by this source location.""" return self._get_instantiation()[2] + @property + def offset(self): + """Get the file offset represented by this source location.""" + return self._get_instantiation()[3] + def __repr__(self): return "" % ( self.file.name if self.file else None, self.line, self.column) @@ -593,7 +598,8 @@ _CXString_getCString.restype = c_char_p # Source Location Functions SourceLocation_loc = lib.clang_getInstantiationLocation SourceLocation_loc.argtypes = [SourceLocation, POINTER(c_object_p), - POINTER(c_uint), POINTER(c_uint)] + POINTER(c_uint), POINTER(c_uint), + POINTER(c_uint)] # Source Range Functions SourceRange_start = lib.clang_getRangeStart