llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Boaz Brickner (bricknerb) <details> <summary>Changes</summary> Unfortunately, making `MangleContext::mangleName()` would require a lot of const escapes due to lazy initialization and id creations: `Mangle.h`: * https://github.com/llvm/llvm-project/blob/dffbc030e75b758e7512518abd499a0f680addbf/clang/include/clang/AST/Mangle.h#L82-L85 * https://github.com/llvm/llvm-project/blob/dffbc030e75b758e7512518abd499a0f680addbf/clang/include/clang/AST/Mangle.h#L97-L99 `ItaniumMangle.cpp`: * https://github.com/llvm/llvm-project/blob/dffbc030e75b758e7512518abd499a0f680addbf/clang/lib/AST/ItaniumMangle.cpp#L158-L161 * https://github.com/llvm/llvm-project/blob/4508d6aa72b0f31056ae01aff0e8009a252e4683/clang/lib/AST/ItaniumMangle.cpp#L641 `MicrosoftMangle.cpp`: * https://github.com/llvm/llvm-project/blob/dffbc030e75b758e7512518abd499a0f680addbf/clang/lib/AST/MicrosoftMangle.cpp#L243-L245 * https://github.com/llvm/llvm-project/blob/dffbc030e75b758e7512518abd499a0f680addbf/clang/lib/AST/MicrosoftMangle.cpp#L284 --- Full diff: https://github.com/llvm/llvm-project/pull/130613.diff 2 Files Affected: - (modified) clang/include/clang/AST/Mangle.h (+3-3) - (modified) clang/lib/AST/Mangle.cpp (+4-3) ``````````diff diff --git a/clang/include/clang/AST/Mangle.h b/clang/include/clang/AST/Mangle.h index 6134a70c04bd3..9ed8895cbfff1 100644 --- a/clang/include/clang/AST/Mangle.h +++ b/clang/include/clang/AST/Mangle.h @@ -140,7 +140,7 @@ class MangleContext { virtual void mangleCXXRTTIName(QualType T, raw_ostream &, bool NormalizeIntegers = false) = 0; virtual void mangleStringLiteral(const StringLiteral *SL, raw_ostream &) = 0; - virtual void mangleMSGuidDecl(const MSGuidDecl *GD, raw_ostream &); + virtual void mangleMSGuidDecl(const MSGuidDecl *GD, raw_ostream &) const; void mangleGlobalBlock(const BlockDecl *BD, const NamedDecl *ID, raw_ostream &Out); @@ -153,9 +153,9 @@ class MangleContext { void mangleObjCMethodName(const ObjCMethodDecl *MD, raw_ostream &OS, bool includePrefixByte = true, - bool includeCategoryNamespace = true); + bool includeCategoryNamespace = true) const; void mangleObjCMethodNameAsSourceName(const ObjCMethodDecl *MD, - raw_ostream &); + raw_ostream &) const; virtual void mangleStaticGuardVariable(const VarDecl *D, raw_ostream &) = 0; diff --git a/clang/lib/AST/Mangle.cpp b/clang/lib/AST/Mangle.cpp index 4c4f2038c51e6..b44ab23f1d0e1 100644 --- a/clang/lib/AST/Mangle.cpp +++ b/clang/lib/AST/Mangle.cpp @@ -240,7 +240,8 @@ void MangleContext::mangleName(GlobalDecl GD, raw_ostream &Out) { Out << ((DefaultPtrWidth / 8) * ArgWords); } -void MangleContext::mangleMSGuidDecl(const MSGuidDecl *GD, raw_ostream &Out) { +void MangleContext::mangleMSGuidDecl(const MSGuidDecl *GD, + raw_ostream &Out) const { // For now, follow the MSVC naming convention for GUID objects on all // targets. MSGuidDecl::Parts P = GD->getParts(); @@ -327,7 +328,7 @@ void MangleContext::mangleBlock(const DeclContext *DC, const BlockDecl *BD, void MangleContext::mangleObjCMethodName(const ObjCMethodDecl *MD, raw_ostream &OS, bool includePrefixByte, - bool includeCategoryNamespace) { + bool includeCategoryNamespace) const { if (getASTContext().getLangOpts().ObjCRuntime.isGNUFamily()) { // This is the mangling we've always used on the GNU runtimes, but it // has obvious collisions in the face of underscores within class @@ -382,7 +383,7 @@ void MangleContext::mangleObjCMethodName(const ObjCMethodDecl *MD, } void MangleContext::mangleObjCMethodNameAsSourceName(const ObjCMethodDecl *MD, - raw_ostream &Out) { + raw_ostream &Out) const { SmallString<64> Name; llvm::raw_svector_ostream OS(Name); `````````` </details> https://github.com/llvm/llvm-project/pull/130613 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits