[libcxx-commits] [lldb] [flang] [libunwind] [clang-tools-extra] [libcxx] [clang] [libc] [compiler-rt] [llvm] [lld] Fix clang to recognize new C23 modifiers %w and %wf when printing (PR #71771)

Aaron Ballman via libcxx-commits libcxx-commits at lists.llvm.org
Fri Dec 1 04:54:06 PST 2023


================
@@ -537,8 +557,12 @@ ArgType PrintfSpecifier::getScalarArgType(ASTContext &Ctx,
             ArgType(Ctx.getPointerDiffType(), "ptrdiff_t"));
       case LengthModifier::AsAllocate:
       case LengthModifier::AsMAllocate:
-      case LengthModifier::AsWide:
         return ArgType::Invalid();
+      case LengthModifier::AsWide:
+      case LengthModifier::AsWideFast:
+        int s = getExplicitlyFixedSize();
+        bool fast = LM.getKind() == LengthModifier::AsWideFast ? true : false;
+        return clang::analyze_format_string::wToArgType(s, fast, Ctx);
----------------
AaronBallman wrote:

```suggestion
        int S = getExplicitlyFixedSize();
        bool Fast = LM.getKind() == LengthModifier::AsWideFast ? true : false;
        return clang::analyze_format_string::wToArgType(S, Fast, Ctx);
```
Same below.

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


More information about the libcxx-commits mailing list