On Sun, Aug 06, 2017 at 10:01:53PM +0200, Mark Kettenis wrote:
> This makes clang actually do something for kprintf. This is a minimal
> diff that actually allows some FreeBSD-specific kprintf type
> specifiers. But I'd prefer to do a proper overhaul of this code
> upstream first and keep the diffs minimal at this point.
>
> ok?
works as advertised. OK florian@ fwiw
(tested on amd64+i386 GENERIC.MP + RAMDISK)
>
>
> Index: gnu/llvm/tools/clang/lib/Sema/SemaChecking.cpp
> ===================================================================
> RCS file: /cvs/src/gnu/llvm/tools/clang/lib/Sema/SemaChecking.cpp,v
> retrieving revision 1.2
> diff -u -p -r1.2 SemaChecking.cpp
> --- gnu/llvm/tools/clang/lib/Sema/SemaChecking.cpp 27 Jul 2017 20:15:24
> -0000 1.2
> +++ gnu/llvm/tools/clang/lib/Sema/SemaChecking.cpp 6 Aug 2017 19:57:54
> -0000
> @@ -6352,8 +6352,9 @@ static void CheckFormatString(Sema &S, c
> }
>
> if (Type == Sema::FST_Printf || Type == Sema::FST_NSString ||
> - Type == Sema::FST_FreeBSDKPrintf || Type == Sema::FST_OSLog ||
> - Type == Sema::FST_OSTrace || Type == Sema::FST_Syslog) {
> + Type == Sema::FST_Kprintf || Type == Sema::FST_FreeBSDKPrintf ||
> + Type == Sema::FST_OSLog || Type == Sema::FST_OSTrace ||
> + Type == Sema::FST_Syslog) {
> CheckPrintfHandler H(
> S, FExpr, OrigFormatExpr, Type, firstDataArg, numDataArgs,
> (Type == Sema::FST_NSString || Type == Sema::FST_OSTrace), Str,
> @@ -6363,7 +6364,7 @@ static void CheckFormatString(Sema &S, c
> if (!analyze_format_string::ParsePrintfString(H, Str, Str + StrLen,
> S.getLangOpts(),
> S.Context.getTargetInfo(),
> - Type ==
> Sema::FST_FreeBSDKPrintf))
> + Type == Sema::FST_Kprintf || Type ==
> Sema::FST_FreeBSDKPrintf))
> H.DoneProcessing();
> } else if (Type == Sema::FST_Scanf) {
> CheckScanfHandler H(S, FExpr, OrigFormatExpr, Type, firstDataArg,
>
--
I'm not entirely sure you are real.