Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-ports-kde
Path: blob/main/lang/cling/files/patch-llvm_clang_lib_Lex_Pragma.cpp
16461 views
1
--- llvm/clang/lib/Lex/Pragma.cpp.orig 2025-02-07 08:51:59 UTC
2
+++ llvm/clang/lib/Lex/Pragma.cpp
3
@@ -934,9 +934,11 @@ void Preprocessor::AddPragmaHandler(StringRef Namespac
4
}
5
6
// Check to make sure we don't already have a pragma for this identifier.
7
- assert(!InsertNS->FindHandler(Handler->getName()) &&
8
- "Pragma handler already exists for this identifier!");
9
- InsertNS->AddPragma(Handler);
10
+ // assert(!InsertNS->FindHandler(Handler->getName()) &&
11
+ // "Pragma handler already exists for this identifier!");
12
+
13
+ if (!InsertNS->FindHandler(Handler->getName()))
14
+ InsertNS->AddPragma(Handler);
15
}
16
17
/// RemovePragmaHandler - Remove the specific pragma handler from the
18
@@ -950,12 +952,15 @@ void Preprocessor::RemovePragmaHandler(StringRef Names
19
// If this is specified to be in a namespace, step down into it.
20
if (!Namespace.empty()) {
21
PragmaHandler *Existing = PragmaHandlers->FindHandler(Namespace);
22
+ if (!Existing)
23
+ return;
24
assert(Existing && "Namespace containing handler does not exist!");
25
26
NS = Existing->getIfNamespace();
27
assert(NS && "Invalid namespace, registered as a regular pragma handler!");
28
}
29
30
+ if (NS->FindHandler(Handler->getName()))
31
NS->RemovePragmaHandler(Handler);
32
33
// If this is a non-default namespace and it is now empty, remove it.
34
35