[clang] [clang-tools-extra] [Clang] Implement `__builtin_sort_pack` (PR #225025)

Younan Zhang via cfe-commits cfe-commits at lists.llvm.org
Mon Sep 21 01:15:25 PDT 2026


================
@@ -3428,6 +3430,28 @@ static SpirvOperand checkHLSLSpirvTypeOperand(Sema &SemaRef,
   return SpirvOperand::createType(OperandArg);
 }
 
+static QualType sortBuiltinTemplatePack(ASTContext &Context,
+                                        ArrayRef<TemplateArgument> InputArgs) {
+  // FIXME: cache mangling globally?
+  std::unique_ptr<MangleContext> MC(Context.createMangleContext());
+  SmallVector<std::pair<std::string, TemplateArgument>> SortedArgs(
+      InputArgs.size());
+  llvm::transform(
+      InputArgs, SortedArgs.begin(), [&](const TemplateArgument &Arg) {
+        assert(Arg.getKind() == TemplateArgument::Type);
+        std::string MangledName;
+        llvm::raw_string_ostream OS(MangledName);
+        MC->mangleCanonicalTypeName(Arg.getAsType(), OS);
----------------
zyn0217 wrote:

Do we end up with different sort result on different platforms?

https://github.com/llvm/llvm-project/pull/225025


More information about the cfe-commits mailing list