Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
6a214ec
[MemProf] Fix an assertion when writing distributed index for aliasee…
teresajohnson Jan 14, 2025
1682dee
[libclang] Add API to query more information about base classes. (#12…
efriedma-quic Jan 14, 2025
25f28dd
[flang][cuda][NFC] Fix file header
clementval Jan 14, 2025
1de3dc7
[LV] Bail out early if BTC+1 wraps.
fhahn Jan 14, 2025
43f203d
[bazel] add missing dep
slackito Jan 14, 2025
a829eba
[Triple] Ignore the vendor field for MinGW, wrt LTO/IR compatibility …
mstorsjo Jan 14, 2025
72225ca
Revert "Reland: "[Exegesis] Add the ability to dry-run the measuremen…
mshockwave Jan 14, 2025
0b39126
[ARM] Update LV test in test/Codegen/ARM after 1de3dc7d23.
fhahn Jan 14, 2025
7aec7ca
Add explicit triple to test_type.py.
efriedma-quic Jan 14, 2025
2b961b0
[AST] Migrate away from PointerUnion::dyn_cast (NFC) (#122854)
kazutakahirata Jan 14, 2025
e673f9d
[Sema] Migrate away from PointerUnion::dyn_cast (NFC) (#122855)
kazutakahirata Jan 14, 2025
a1f8ce6
[StaticAnalyzer] Migrate away from PointerUnion::dyn_cast (NFC) (#122…
kazutakahirata Jan 14, 2025
466753b
[AST] Avoid repeated map lookups (NFC) (#122858)
kazutakahirata Jan 14, 2025
99ab848
[CodeGen] Avoid repeated hash lookups (NFC) (#122861)
kazutakahirata Jan 14, 2025
bc74625
[clang-tidy] Add an option to exclude files not present in the compil…
wonbinbk Jan 14, 2025
b665ddd
[AMDGPU] Add tests for v_sat_pk_u8_i16 codegen (#122438)
Shoreshen Jan 15, 2025
ebef440
[LLVM][Triple] Add an argument to specify canonical form to `Triple::…
shiltian Jan 15, 2025
a19919f
[flang][cuda] Add cuf.device_address operation (#122975)
clementval Jan 15, 2025
565f3bd
[mlir][linalg] Remove redundant checks for variable(NFC) (#122731)
CoTinker Jan 15, 2025
ef4800c
[mlir][Interfaces][NFC] Update doc of ViewLikeOpInterface parser/prin…
dcaballe Jan 15, 2025
0294dab
[LV][VPlan] Add fast flags for selectRecipe (#121023)
LiqinWeng Jan 15, 2025
2a5281d
[ORC-RT] Fix missing '\' line continuations in objc-imageinfo.S test.
lhames Jan 15, 2025
e7f756d
[NFC][BoundsChecking] Address #122576 review comments (#122773)
vitalybuka Jan 15, 2025
21ade5a
[JITLink] Fix indentation in debugging output.
lhames Jan 15, 2025
9c5001e
[JITLink] Add convenience methods to LinkGraph to find symbols by name.
lhames Jan 15, 2025
9f48bb6
[JITLink] Document EHFrameEdgeFixer's handling of implicit relocation…
lhames Jan 15, 2025
da4ac13
[RISCV][llvm-exegesis] Simplify copying a SmallVector to a std::vecto…
topperc Jan 15, 2025
9ac6a55
[clang][AST] Assert that DependentNameType's Name and NNS are not nul…
HighCommander4 Jan 15, 2025
c4fb718
[lldb][NFC] Make the target's SectionLoadList private. (#113278)
clayborg Jan 15, 2025
273a94b
[NVPTX] Add some more immediate instruction variants (#122746)
AlexMaclean Jan 15, 2025
02403f4
[RISCV] Split strided-load-store.ll tests into EVL and VP. NFC
lukel97 Jan 15, 2025
030d48b
[clangd] Augment code completion results with documentation from the …
bevin-hansson Jan 15, 2025
2504693
[ARM][NFC] Remove redundant sub-expressions (#122911)
CoTinker Jan 15, 2025
135f39c
[SPIR-V] Fix a typo in cmake. NFC
darkbuck Jan 15, 2025
edc0235
[NFC][LoopVectorize] Add more loop early exit asserts (#122732)
david-arm Jan 15, 2025
7201cae
[C++20] [Modules] Support module level lookup (#122887)
ChuanqiXu9 Jan 15, 2025
d1d2564
[clang][bytecode] Handle UETT_PtrAuthTypeDiscriminator (#122941)
tbaederr Jan 15, 2025
929eb50
[mlir] Rewrites for I2 to I8 signed and unsigned extension (#121298)
ziereis Jan 15, 2025
8ac00ca
[X86] lowerShuffleWithUndefHalf - don't split vXi8 unary shuffles if …
RKSimon Jan 15, 2025
4c2e4ea
[RISCV][llvm-exegesis] Disable pseudo instructions in allowAsBackToBa…
topperc Jan 15, 2025
c24ce32
[mlir][IR] Turn `FloatType` into a type interface (#118891)
matthias-springer Jan 15, 2025
af656a8
[LVI] Learn value ranges from ctpop results (#121945)
zsrkmyn Jan 15, 2025
2c34632
[C++20] [Modules] [Driver] Support -print-library-module-manifest-pat…
ChuanqiXu9 Jan 15, 2025
4cec0ba
[clang][bytecode][NFC] Simplify VisitCXXDefaultArgExpr (#123024)
tbaederr Jan 15, 2025
04b002b
[IRBuilder] Add Align argument for CreateMaskedExpandLoad and CreateM…
skachkov-sc Jan 15, 2025
b3924cb
[AMDGPU] Set Convergent property for image.(getlod/sample*) intrinsic…
mariusz-sikora-at-amd Jan 15, 2025
eb96c8c
[lldb] Implement (SB)Function::GetInstructions for discontinuous func…
labath Jan 15, 2025
e470826
[vim] Improve `iskeyword` for MLIR (#121750)
FranklandJack Jan 15, 2025
bd76824
[DAG] replaceShuffleOfInsert - convert INSERT_VECTOR_ELT matching to …
RKSimon Jan 14, 2025
85fdf50
[Multilib] Custom flags YAML parsing (#122903)
vhscampos Jan 15, 2025
a5b88cb
[libclc] Add missing includes to CLC headers (#118654)
frasercrmck Jan 15, 2025
9bc8828
[OMPIRBuilder][MLIR] Add support for target 'if' clause (#122478)
skatrak Jan 15, 2025
2a044f8
[MLIR] Add [[maybe_unused]] to variables on used in assert (#123037)
WillFroom Jan 15, 2025
defd0d9
[libc] implement unistd/getentropy (#122692)
SchrodingerZhu Jan 15, 2025
9025c26
[AArch64] Add an extra test case for adds and subs combines. NFC
davemgreen Jan 15, 2025
e33f456
Fixed some warn-override tests in SemaCXX (#122680)
2LoS Jan 15, 2025
c8bbbaa
[SelectionDAG][AMDGPU] Negative offset when selecting scratch sv offs…
jofrn Jan 15, 2025
6affc18
[clang-reorder-fields] Move trailing comments. (#122918)
legrosbuffle Jan 15, 2025
f9350c9
[clang][NFC] Update CODEOWNERS
Endilll Jan 15, 2025
bfedf64
[LoopVectorize] Add support for reverse loops in isDereferenceableAnd…
david-arm Jan 15, 2025
b92e97b
[test] Pre-commit llvm.experimental.memset.pattern tests prior to Mem…
asb Jan 15, 2025
da4551a
[compiler-rt][sanitizer_common] Fix for solaris and *BSD platforms pr…
devnexen Jan 15, 2025
e00d1dd
[ARM] Fix armv6kz LDREX definition (#122965)
Un1q32 Jan 15, 2025
d1314d0
[MemoryLocation] Teach MemoryLocation about llvm.experimental.memset.…
asb Jan 15, 2025
a32c456
[flang][OpenMP] Generalize fixing `alloca` IP pre-condition for `priv…
ergawy Jan 15, 2025
6ca560a
[clang] Add support for passing FileSystem to buildASTFromCodeWithArg…
bricknerb Jan 15, 2025
a00938e
Revert "[LoopVectorize] Add support for reverse loops in isDereferenc…
david-arm Jan 15, 2025
cf2e828
SCEV: regen some tests with UTC (#123050)
artagnon Jan 15, 2025
f22af59
[LLD][COFF] Move symbol mangling and lookup helpers to SymbolTable cl…
cjacek Jan 15, 2025
c82a6a0
[AMDGPU] Use correct vector elt type when shrinking mfma scale (#123043)
frasercrmck Jan 15, 2025
e9504c5
[mlir][vector] Add tests for populateSinkVectorOpsPatterns (2/N) (#12…
banach-space Jan 15, 2025
c593e3d
[Flang][Driver] Add a flag to control zero initialization of global v…
kiranchandramohan Jan 15, 2025
44ba43a
Revert "[Flang][Driver] Add a flag to control zero initialization of …
kiranchandramohan Jan 15, 2025
ff862d6
[flang] Modifications to ieee floating point environment procedures (…
vdonaldson Jan 15, 2025
3fd296e
[AST] Migrate away from PointerUnion::dyn_cast (NFC) (#123012)
kazutakahirata Jan 15, 2025
3a3a1e4
[CodeGen] Migrate away from PointerUnion::dyn_cast (NFC) (#123013)
kazutakahirata Jan 15, 2025
acdcdbc
[Sema] Migrate away from PointerUnion::dyn_cast (NFC) (#123014)
kazutakahirata Jan 15, 2025
94e9813
[AsmParser] Avoid repeated map lookups (NFC) (#123015)
kazutakahirata Jan 15, 2025
ebb5856
[CodeGen] Avoid repeated hash lookups (NFC) (#123016)
kazutakahirata Jan 15, 2025
618ac90
[TableGen] Avoid repeated hash lookups (NFC) (#123018)
kazutakahirata Jan 15, 2025
8ac35bd
[CUDA][HIP] Support CUID in new driver (#122859)
yxsamliu Jan 15, 2025
3986cff
[lldb] Add OpenBSD signals (#123005)
brad0 Jan 15, 2025
0d2f86f
[AutoBump] Merge with 3986cffe (Jan 15)
jorickert Mar 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp @nikic
/llvm/lib/Transforms/InstCombine/ @nikic

/clang/include/clang/Sema/Sema.h @Endilll
/clang/test/CXX/drs/ @Endilll
/clang/www/cxx_dr_status.html @Endilll
/clang/www/make_cxx_dr_status @Endilll
Expand Down
69 changes: 61 additions & 8 deletions clang-tools-extra/clang-reorder-fields/ReorderFieldsAction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,9 @@ getNewFieldsOrder(const RecordDecl *Definition,
NameToIndex[Field->getName()] = Field->getFieldIndex();

if (DesiredFieldsOrder.size() != NameToIndex.size()) {
llvm::errs() << "Number of provided fields doesn't match definition.\n";
llvm::errs() << "Number of provided fields (" << DesiredFieldsOrder.size()
<< ") doesn't match definition (" << NameToIndex.size()
<< ").\n";
return {};
}
SmallVector<unsigned, 4> NewFieldsOrder;
Expand Down Expand Up @@ -116,26 +118,77 @@ findMembersUsedInInitExpr(const CXXCtorInitializer *Initializer,
return Results;
}

/// Returns the full source range for the field declaration up to (not
/// including) the trailing semicolumn, including potential macro invocations,
/// e.g. `int a GUARDED_BY(mu);`.
/// Returns the next token after `Loc` (including comment tokens).
static std::optional<Token> getTokenAfter(SourceLocation Loc,
const SourceManager &SM,
const LangOptions &LangOpts) {
if (Loc.isMacroID()) {
return std::nullopt;
}
Loc = Lexer::getLocForEndOfToken(Loc, 0, SM, LangOpts);

// Break down the source location.
std::pair<FileID, unsigned> LocInfo = SM.getDecomposedLoc(Loc);

// Try to load the file buffer.
bool InvalidTemp = false;
StringRef File = SM.getBufferData(LocInfo.first, &InvalidTemp);
if (InvalidTemp)
return std::nullopt;

const char *TokenBegin = File.data() + LocInfo.second;

Lexer lexer(SM.getLocForStartOfFile(LocInfo.first), LangOpts, File.begin(),
TokenBegin, File.end());
lexer.SetCommentRetentionState(true);
// Find the token.
Token Tok;
lexer.LexFromRawLexer(Tok);
return Tok;
}

/// Returns the end of the trailing comments after `Loc`.
static SourceLocation getEndOfTrailingComment(SourceLocation Loc,
const SourceManager &SM,
const LangOptions &LangOpts) {
// We consider any following comment token that is indented more than the
// first comment to be part of the trailing comment.
const unsigned Column = SM.getPresumedColumnNumber(Loc);
std::optional<Token> Tok = getTokenAfter(Loc, SM, LangOpts);
while (Tok && Tok->is(tok::comment) &&
SM.getPresumedColumnNumber(Tok->getLocation()) > Column) {
Loc = Tok->getEndLoc();
Tok = getTokenAfter(Loc, SM, LangOpts);
}
return Loc;
}

/// Returns the full source range for the field declaration up to (including)
/// the trailing semicolumn, including potential macro invocations,
/// e.g. `int a GUARDED_BY(mu);`. If there is a trailing comment, include it.
static SourceRange getFullFieldSourceRange(const FieldDecl &Field,
const ASTContext &Context) {
SourceRange Range = Field.getSourceRange();
const SourceRange Range = Field.getSourceRange();
SourceLocation Begin = Range.getBegin();
SourceLocation End = Range.getEnd();
const SourceManager &SM = Context.getSourceManager();
const LangOptions &LangOpts = Context.getLangOpts();
while (true) {
std::optional<Token> CurrentToken = Lexer::findNextToken(End, SM, LangOpts);

if (!CurrentToken || CurrentToken->is(tok::semi))
break;
if (!CurrentToken)
return SourceRange(Begin, End);

if (CurrentToken->is(tok::eof))
return Range; // Something is wrong, return the original range.

End = CurrentToken->getLastLoc();

if (CurrentToken->is(tok::semi))
break;
}
return SourceRange(Range.getBegin(), End);
End = getEndOfTrailingComment(End, SM, LangOpts);
return SourceRange(Begin, End);
}

/// Reorders fields in the definition of a struct/class.
Expand Down
36 changes: 35 additions & 1 deletion clang-tools-extra/clang-tidy/tool/clang-tidy-diff.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import tempfile
import threading
import traceback
from pathlib import Path

try:
import yaml
Expand Down Expand Up @@ -124,6 +125,23 @@ def merge_replacement_files(tmpdir, mergefile):
open(mergefile, "w").close()


def get_compiling_files(args):
"""Read a compile_commands.json database and return a set of file paths"""
current_dir = Path.cwd()
compile_commands_json = (
(current_dir / args.build_path) if args.build_path else current_dir
)
compile_commands_json = compile_commands_json / "compile_commands.json"
files = set()
with open(compile_commands_json) as db_file:
db_json = json.load(db_file)
for entry in db_json:
if "file" not in entry:
continue
files.add(Path(entry["file"]))
return files


def main():
parser = argparse.ArgumentParser(
description="Run clang-tidy against changed files, and "
Expand Down Expand Up @@ -234,6 +252,13 @@ def main():
action="store_true",
help="Allow empty enabled checks.",
)
parser.add_argument(
"-only-check-in-db",
dest="skip_non_compiling",
default=False,
action="store_true",
help="Only check files in the compilation database",
)

clang_tidy_args = []
argv = sys.argv[1:]
Expand All @@ -243,11 +268,13 @@ def main():

args = parser.parse_args(argv)

compiling_files = get_compiling_files(args) if args.skip_non_compiling else None

# Extract changed lines for each file.
filename = None
lines_by_file = {}
for line in sys.stdin:
match = re.search('^\\+\\+\\+\\ "?(.*?/){%s}([^ \t\n"]*)' % args.p, line)
match = re.search(r'^\+\+\+\ "?(.*?/){%s}([^ \t\n"]*)' % args.p, line)
if match:
filename = match.group(2)
if filename is None:
Expand All @@ -260,6 +287,13 @@ def main():
if not re.match("^%s$" % args.iregex, filename, re.IGNORECASE):
continue

# Skip any files not in the compiling list
if (
compiling_files is not None
and (Path.cwd() / filename) not in compiling_files
):
continue

match = re.search(r"^@@.*\+(\d+)(,(\d+))?", line)
if match:
start_line = int(match.group(1))
Expand Down
27 changes: 27 additions & 0 deletions clang-tools-extra/clangd/CodeComplete.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1867,14 +1867,41 @@ class CodeCompleteFlow {
CodeCompleteResult Output;

// Convert the results to final form, assembling the expensive strings.
// If necessary, search the index for documentation comments.
LookupRequest Req;
llvm::DenseMap<SymbolID, uint32_t> SymbolToCompletion;
for (auto &C : Scored) {
Output.Completions.push_back(toCodeCompletion(C.first));
Output.Completions.back().Score = C.second;
Output.Completions.back().CompletionTokenRange = ReplacedRange;
if (Opts.Index && !Output.Completions.back().Documentation) {
for (auto &Cand : C.first) {
if (Cand.SemaResult &&
Cand.SemaResult->Kind == CodeCompletionResult::RK_Declaration) {
auto ID = clangd::getSymbolID(Cand.SemaResult->getDeclaration());
if (!ID)
continue;
Req.IDs.insert(ID);
SymbolToCompletion[ID] = Output.Completions.size() - 1;
}
}
}
}
Output.HasMore = Incomplete;
Output.Context = CCContextKind;
Output.CompletionRange = ReplacedRange;

// Look up documentation from the index.
if (Opts.Index) {
Opts.Index->lookup(Req, [&](const Symbol &S) {
if (S.Documentation.empty())
return;
auto &C = Output.Completions[SymbolToCompletion.at(S.ID)];
C.Documentation.emplace();
parseDocumentation(S.Documentation, *C.Documentation);
});
}

return Output;
}

Expand Down
81 changes: 81 additions & 0 deletions clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1136,6 +1136,87 @@ int x = foo^
Contains(AllOf(named("foo"), doc("This comment should be retained!"))));
}

TEST(CompletionTest, CommentsOnMembersFromHeader) {
MockFS FS;
MockCompilationDatabase CDB;

auto Opts = ClangdServer::optsForTest();
Opts.BuildDynamicSymbolIndex = true;

ClangdServer Server(CDB, FS, Opts);

FS.Files[testPath("foo.h")] = R"cpp(
struct alpha {
/// This is a member field.
int gamma;

/// This is a member function.
int delta();
};
)cpp";

auto File = testPath("foo.cpp");
Annotations Test(R"cpp(
#include "foo.h"
alpha a;
int x = a.^
)cpp");
runAddDocument(Server, File, Test.code());
auto CompletionList =
llvm::cantFail(runCodeComplete(Server, File, Test.point(), {}));

EXPECT_THAT(CompletionList.Completions,
Contains(AllOf(named("gamma"), doc("This is a member field."))));
EXPECT_THAT(
CompletionList.Completions,
Contains(AllOf(named("delta"), doc("This is a member function."))));
}

TEST(CompletionTest, CommentsOnMembersFromHeaderOverloadBundling) {
using testing::AnyOf;
MockFS FS;
MockCompilationDatabase CDB;

auto Opts = ClangdServer::optsForTest();
Opts.BuildDynamicSymbolIndex = true;

ClangdServer Server(CDB, FS, Opts);

FS.Files[testPath("foo.h")] = R"cpp(
struct alpha {
/// bool overload.
int delta(bool b);

/// int overload.
int delta(int i);

void epsilon(long l);

/// This one has a comment.
void epsilon(int i);
};
)cpp";

auto File = testPath("foo.cpp");
Annotations Test(R"cpp(
#include "foo.h"
alpha a;
int x = a.^
)cpp");
runAddDocument(Server, File, Test.code());
clangd::CodeCompleteOptions CCOpts;
CCOpts.BundleOverloads = true;
auto CompletionList =
llvm::cantFail(runCodeComplete(Server, File, Test.point(), CCOpts));

EXPECT_THAT(
CompletionList.Completions,
Contains(AllOf(named("epsilon"), doc("This one has a comment."))));
EXPECT_THAT(CompletionList.Completions,
Contains(AllOf(named("delta"), AnyOf(doc("bool overload."),
doc("int overload.")))));
}

TEST(CompletionTest, GlobalCompletionFiltering) {

Symbol Class = cls("XYZ");
Expand Down
4 changes: 4 additions & 0 deletions clang-tools-extra/docs/ReleaseNotes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,10 @@ Improvements to clang-query
Improvements to clang-tidy
--------------------------

- Improved :program:`clang-tidy-diff.py` script. Add the `-only-check-in-db`
option to exclude files not present in the compilation database, avoiding
false-negative results.

- Improved :program:`run-clang-tidy.py` script. Fixed minor shutdown noise
happening on certain platforms when interrupting the script.

Expand Down
23 changes: 23 additions & 0 deletions clang-tools-extra/test/clang-reorder-fields/Comments.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// RUN: clang-reorder-fields -record-name Foo -fields-order e1,e3,e2,a,c,b %s -- | FileCheck %s

class Foo {
int a; // Trailing comment for a.
int b; // Multiline
// trailing for b.
// Prefix comments for c.
int c;

/*c-like*/ int e1;
int /*c-like*/ e2;
int e3 /*c-like*/;
};

// CHECK: /*c-like*/ int e1;
// CHECK-NEXT: int e3 /*c-like*/;
// CHECK-NEXT: int /*c-like*/ e2;
// CHECK-NEXT: int a; // Trailing comment for a.
// CHECK-NEXT: // Prefix comments for c.
// CHECK-NEXT: int c;
// CHECK-NEXT: int b; // Multiline
// CHECK-NEXT: // trailing for b.

25 changes: 25 additions & 0 deletions clang/bindings/python/clang/cindex.py
Original file line number Diff line number Diff line change
Expand Up @@ -2133,6 +2133,14 @@ def get_field_offsetof(self):
"""Returns the offsetof the FIELD_DECL pointed by this Cursor."""
return conf.lib.clang_Cursor_getOffsetOfField(self) # type: ignore [no-any-return]

def get_base_offsetof(self, parent):
"""Returns the offsetof the CXX_BASE_SPECIFIER pointed by this Cursor."""
return conf.lib.clang_getOffsetOfBase(parent, self) # type: ignore [no-any-return]

def is_virtual_base(self):
"""Returns whether the CXX_BASE_SPECIFIER pointed by this Cursor is virtual."""
return conf.lib.clang_isVirtualBase(self) # type: ignore [no-any-return]

def is_anonymous(self):
"""
Check whether this is a record type without a name, or a field where
Expand Down Expand Up @@ -2687,6 +2695,21 @@ def visitor(field, children):
conf.lib.clang_Type_visitFields(self, fields_visit_callback(visitor), fields)
return iter(fields)

def get_bases(self):
"""Return an iterator for accessing the base classes of this type."""

def visitor(base, children):
assert base != conf.lib.clang_getNullCursor()

# Create reference to TU so it isn't GC'd before Cursor.
base._tu = self._tu
bases.append(base)
return 1 # continue

bases: list[Cursor] = []
conf.lib.clang_visitCXXBaseClasses(self, fields_visit_callback(visitor), bases)
return iter(bases)

def get_exception_specification_kind(self):
"""
Return the kind of the exception specification; a value from
Expand Down Expand Up @@ -3940,6 +3963,7 @@ def set_property(self, property, value):
("clang_getNumDiagnosticsInSet", [c_object_p], c_uint),
("clang_getNumElements", [Type], c_longlong),
("clang_getNumOverloadedDecls", [Cursor], c_uint),
("clang_getOffsetOfBase", [Cursor, Cursor], c_longlong),
("clang_getOverloadedDecl", [Cursor, c_uint], Cursor),
("clang_getPointeeType", [Type], Type),
("clang_getRange", [SourceLocation, SourceLocation], SourceRange),
Expand Down Expand Up @@ -3992,6 +4016,7 @@ def set_property(self, property, value):
[TranslationUnit, SourceRange, POINTER(POINTER(Token)), POINTER(c_uint)],
),
("clang_visitChildren", [Cursor, cursor_visit_callback, py_object], c_uint),
("clang_visitCXXBaseClasses", [Type, fields_visit_callback, py_object], c_uint),
("clang_Cursor_getNumArguments", [Cursor], c_int),
("clang_Cursor_getArgument", [Cursor, c_uint], Cursor),
("clang_Cursor_getNumTemplateArguments", [Cursor], c_int),
Expand Down
Loading
Loading