Skip to content

Commit 645f5f2

Browse files
committed
[AST Verifier] Account for names being part of macro discriminators
1 parent f8d78e2 commit 645f5f2

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

lib/AST/ASTVerifier.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ class Verifier : public ASTWalker {
232232
ClosureDiscriminators;
233233
DeclContext *CanonicalTopLevelSubcontext = nullptr;
234234

235-
typedef DeclContext * MacroExpansionDiscriminatorKey;
235+
typedef std::pair<DeclContext *, Identifier> MacroExpansionDiscriminatorKey;
236236
llvm::DenseMap<MacroExpansionDiscriminatorKey, SmallBitVector>
237237
MacroExpansionDiscriminators;
238238

@@ -2378,7 +2378,10 @@ class Verifier : public ASTWalker {
23782378

23792379
void verifyChecked(MacroExpansionExpr *expansion) {
23802380
auto dc = getCanonicalDeclContext(expansion->getDeclContext());
2381-
MacroExpansionDiscriminatorKey key{dc};
2381+
MacroExpansionDiscriminatorKey key{
2382+
dc,
2383+
expansion->getMacroName().getBaseName().getIdentifier()
2384+
};
23822385
auto &discriminatorSet = MacroExpansionDiscriminators[key];
23832386
unsigned discriminator = expansion->getDiscriminator();
23842387

@@ -2398,7 +2401,10 @@ class Verifier : public ASTWalker {
23982401

23992402
void verifyChecked(MacroExpansionDecl *expansion) {
24002403
auto dc = getCanonicalDeclContext(expansion->getDeclContext());
2401-
MacroExpansionDiscriminatorKey key{dc};
2404+
MacroExpansionDiscriminatorKey key{
2405+
dc,
2406+
expansion->getMacro().getBaseName().getIdentifier()
2407+
};
24022408
auto &discriminatorSet = MacroExpansionDiscriminators[key];
24032409
unsigned discriminator = expansion->getDiscriminator();
24042410

0 commit comments

Comments
 (0)