================
@@ -1175,13 +1175,15 @@ static void InitializePredefinedMacros(const TargetInfo 
&TI,
   Builder.defineMacro("__UINTMAX_C_SUFFIX__", ConstSuffix);
   Builder.defineMacro("__UINTMAX_C(c)",
                       ConstSuffix.size() ? Twine("c##") + ConstSuffix : "c");
-  DefineType("__PTRDIFF_TYPE__", TI.getPtrDiffType(LangAS::Default), Builder);
-  DefineFmt(LangOpts, "__PTRDIFF", TI.getPtrDiffType(LangAS::Default), TI,
-            Builder);
   DefineType("__INTPTR_TYPE__", TI.getIntPtrType(), Builder);
   DefineFmt(LangOpts, "__INTPTR", TI.getIntPtrType(), TI, Builder);
-  DefineType("__SIZE_TYPE__", TI.getSizeType(), Builder);
+  // Use deduction to obtain the built-in __size_t and __ptrdiff_t types 
instead
+  // of standard integer types
+  Builder.defineMacro("__SIZE_TYPE__", "__typeof(sizeof(0))");
----------------
YexuanXiao wrote:

I enhanced the check for the `%zu` format specifier in #143653, but [some 
people](https://github.com/llvm/llvm-project/pull/143653#issuecomment-3086499400)
 reported that it generated a lot of false positives. As a result, the check 
was eventually removed. The reason was that calculating `skb->len - 
sizeof(_arph)` loses all the sugar types. If the PR gets accepted, I can add a 
new option to enable this enhanced check (under the condition that the libc 
defines `size_t` in this way).

https://github.com/llvm/llvm-project/pull/155979
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to