@@ -9164,33 +9164,36 @@ ConstString TypeSystemClang::DeclGetName(void *opaque_decl) {
9164
9164
}
9165
9165
9166
9166
ConstString TypeSystemClang::DeclGetMangledName (void *opaque_decl) {
9167
- if (opaque_decl) {
9168
- clang::NamedDecl *nd =
9169
- llvm::dyn_cast<clang::NamedDecl>((clang::Decl *)opaque_decl);
9170
- if (nd != nullptr && !llvm::isa<clang::ObjCMethodDecl>(nd)) {
9171
- clang::MangleContext *mc = getMangleContext ();
9172
- if (mc && mc->shouldMangleCXXName (nd)) {
9173
- llvm::SmallVector<char , 1024 > buf;
9174
- llvm::raw_svector_ostream llvm_ostrm (buf);
9175
- if (llvm::isa<clang::CXXConstructorDecl>(nd)) {
9176
- mc->mangleName (
9177
- clang::GlobalDecl (llvm::dyn_cast<clang::CXXConstructorDecl>(nd),
9178
- Ctor_Complete),
9179
- llvm_ostrm);
9180
- } else if (llvm::isa<clang::CXXDestructorDecl>(nd)) {
9181
- mc->mangleName (
9182
- clang::GlobalDecl (llvm::dyn_cast<clang::CXXDestructorDecl>(nd),
9183
- Dtor_Complete),
9184
- llvm_ostrm);
9185
- } else {
9186
- mc->mangleName (nd, llvm_ostrm);
9187
- }
9188
- if (buf.size () > 0 )
9189
- return ConstString (buf.data (), buf.size ());
9190
- }
9191
- }
9167
+ clang::NamedDecl *nd = llvm::dyn_cast_or_null<clang::NamedDecl>(
9168
+ static_cast <clang::Decl *>(opaque_decl));
9169
+
9170
+ if (!nd || llvm::isa<clang::ObjCMethodDecl>(nd))
9171
+ return {};
9172
+
9173
+ clang::MangleContext *mc = getMangleContext ();
9174
+ if (!mc || !mc->shouldMangleCXXName (nd))
9175
+ return {};
9176
+
9177
+ llvm::SmallVector<char , 1024 > buf;
9178
+ llvm::raw_svector_ostream llvm_ostrm (buf);
9179
+ if (llvm::isa<clang::CXXConstructorDecl>(nd)) {
9180
+ mc->mangleName (
9181
+ clang::GlobalDecl (llvm::dyn_cast<clang::CXXConstructorDecl>(nd),
9182
+ Ctor_Complete),
9183
+ llvm_ostrm);
9184
+ } else if (llvm::isa<clang::CXXDestructorDecl>(nd)) {
9185
+ mc->mangleName (
9186
+ clang::GlobalDecl (llvm::dyn_cast<clang::CXXDestructorDecl>(nd),
9187
+ Dtor_Complete),
9188
+ llvm_ostrm);
9189
+ } else {
9190
+ mc->mangleName (nd, llvm_ostrm);
9192
9191
}
9193
- return ConstString ();
9192
+
9193
+ if (buf.size () > 0 )
9194
+ return ConstString (buf.data (), buf.size ());
9195
+
9196
+ return {};
9194
9197
}
9195
9198
9196
9199
CompilerDeclContext TypeSystemClang::DeclGetDeclContext (void *opaque_decl) {
0 commit comments