From owner-svn-src-all@FreeBSD.ORG Mon Oct 11 17:18:23 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7879B1065670; Mon, 11 Oct 2010 17:18:23 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 674578FC0A; Mon, 11 Oct 2010 17:18:23 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o9BHINtO021766; Mon, 11 Oct 2010 17:18:23 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o9BHINX6021762; Mon, 11 Oct 2010 17:18:23 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <201010111718.o9BHINX6021762@svn.freebsd.org> From: Rui Paulo Date: Mon, 11 Oct 2010 17:18:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r213694 - in head/contrib/llvm/tools/clang: include/clang/Analysis/Analyses lib/Analysis X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Oct 2010 17:18:23 -0000 Author: rpaulo Date: Mon Oct 11 17:18:23 2010 New Revision: 213694 URL: http://svn.freebsd.org/changeset/base/213694 Log: Rework the analysis of the 'r' specifier. It turns out that we can't make it like xArg because they are different ('x' doesn't accept sign, but 'r' does). This fixes some warnings when building DDB with clang. With help from: rdivacky Modified: head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/FormatString.h head/contrib/llvm/tools/clang/lib/Analysis/FormatString.cpp head/contrib/llvm/tools/clang/lib/Analysis/PrintfFormatString.cpp Modified: head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/FormatString.h ============================================================================== --- head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/FormatString.h Mon Oct 11 16:57:02 2010 (r213693) +++ head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/FormatString.h Mon Oct 11 17:18:23 2010 (r213694) @@ -147,6 +147,7 @@ public: // FreeBSD specific specifiers bArg, DArg, + rArg, // GlibC specific specifiers. PrintErrno, // 'm' Modified: head/contrib/llvm/tools/clang/lib/Analysis/FormatString.cpp ============================================================================== --- head/contrib/llvm/tools/clang/lib/Analysis/FormatString.cpp Mon Oct 11 16:57:02 2010 (r213693) +++ head/contrib/llvm/tools/clang/lib/Analysis/FormatString.cpp Mon Oct 11 17:18:23 2010 (r213694) @@ -423,6 +423,7 @@ bool FormatSpecifier::hasValidLengthModi case ConversionSpecifier::xArg: case ConversionSpecifier::XArg: case ConversionSpecifier::nArg: + case ConversionSpecifier::rArg: return true; default: return false; @@ -448,6 +449,7 @@ bool FormatSpecifier::hasValidLengthModi case ConversionSpecifier::nArg: case ConversionSpecifier::cArg: case ConversionSpecifier::sArg: + case ConversionSpecifier::rArg: return true; default: return false; Modified: head/contrib/llvm/tools/clang/lib/Analysis/PrintfFormatString.cpp ============================================================================== --- head/contrib/llvm/tools/clang/lib/Analysis/PrintfFormatString.cpp Mon Oct 11 16:57:02 2010 (r213693) +++ head/contrib/llvm/tools/clang/lib/Analysis/PrintfFormatString.cpp Mon Oct 11 17:18:23 2010 (r213694) @@ -195,7 +195,7 @@ static PrintfSpecifierResult ParsePrintf case 'm': k = ConversionSpecifier::PrintErrno; break; // FreeBSD format extensions case 'b': if (FormatExtensions) k = ConversionSpecifier::bArg; break; /* check for int and then char * */ - case 'r': if (FormatExtensions) k = ConversionSpecifier::xArg; break; + case 'r': if (FormatExtensions) k = ConversionSpecifier::rArg; break; case 'y': if (FormatExtensions) k = ConversionSpecifier::iArg; break; case 'D': if (FormatExtensions) k = ConversionSpecifier::DArg; break; /* check for u_char * pointer and a char * string */ } @@ -279,6 +279,7 @@ const char *ConversionSpecifier::toStrin // FreeBSD specific specifiers. case bArg: return "b"; case DArg: return "D"; + case rArg: return "r"; // GlibC specific specifiers. case PrintErrno: return "m"; @@ -491,6 +492,7 @@ bool PrintfSpecifier::hasValidPlusPrefix case ConversionSpecifier::GArg: case ConversionSpecifier::aArg: case ConversionSpecifier::AArg: + case ConversionSpecifier::rArg: return true; default: @@ -514,6 +516,7 @@ bool PrintfSpecifier::hasValidAlternativ case ConversionSpecifier::FArg: case ConversionSpecifier::gArg: case ConversionSpecifier::GArg: + case ConversionSpecifier::rArg: return true; default: