[cfe-commits] r137903 - in /cfe/trunk: include/clang/Basic/Builtins.def include/clang/Basic/DiagnosticSemaKinds.td include/clang/Sema/Sema.h lib/Sema/SemaChecking.cpp test/Sema/warn-strlcpycat-size.c

NAKAMURA Takumi geek4civic at gmail.com
Wed Aug 17 17:06:23 PDT 2011


2011/8/18 Ted Kremenek <kremenek at apple.com>:
> Author: kremenek
> Date: Wed Aug 17 18:40:36 2011
> New Revision: 137903
>
> URL: http://llvm.org/viewvc/llvm-project?rev=137903&view=rev
> Log:
> Add experimental -Wstrlcpy-size warning that looks to see if the size argument for strlcpy/strlcat is the size of the *source*, and not the size of the *destination*.  This warning is off by default (for now).
>
> Warning logic provided by Geoff Keating.
>
> Added:
>    cfe/trunk/test/Sema/warn-strlcpycat-size.c
> Modified:
>    cfe/trunk/include/clang/Basic/Builtins.def
>    cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
>    cfe/trunk/include/clang/Sema/Sema.h
>    cfe/trunk/lib/Sema/SemaChecking.cpp
>
> Modified: cfe/trunk/include/clang/Basic/Builtins.def

msvc10 builder reported as below;

  ******************** TEST 'Clang :: Sema/warn-strlcpycat-size.c'
FAILED ********************
  Script:
  --
  E:/bb-win7/cmake-clang-i686-msvc10/build/bin/Release/clang.EXE -cc1
-Wstrlcpy-size -verify -fsyntax-only
E:\bb-win7\cmake-clang-i686-msvc10\llvm-project\llvm\tools\clang\test\Sema\warn-strlcpycat-size.c
  --
  Exit Code: 1
  Command Output (stdout):
  --
  Command 0: "E:/bb-win7/cmake-clang-i686-msvc10/build/bin/Release/clang.EXE"
"-cc1" "-Wstrlcpy-size" "-verify" "-fsyntax-only"
"E:\bb-win7\cmake-clang-i686-msvc10\llvm-project\llvm\tools\clang\test\Sema\warn-strlcpycat-size.c"
  Command 0 Result: 1
  Command 0 Output:


  Command 0 Stderr:
CUSTOMBUILD : error : 'warning' diagnostics seen but not expected:
[e:\bb-win7\cmake-clang-i686-msvc10\build\tools\clang\test\clang-test.vcxproj]
    Line 4: incompatible redeclaration of library function 'strlcpy'
    Line 5: incompatible redeclaration of library function 'strlcat'
    Line 6: incompatible redeclaration of library function 'strlen'
CUSTOMBUILD : error : 'warning' diagnostics expected but not seen:
[e:\bb-win7\cmake-clang-i686-msvc10\build\tools\clang\test\clang-test.vcxproj]
    Line 22: size argument in 'strlcpy' call appears to be size of the
source; expected the size of the destination
    Line 23: size argument in 'strlcpy' call appears to be size of the
source; expected the size of the destination
    Line 24: size argument in 'strlcat' call appears to be size of the
source; expected the size of the destination
    Line 25: size argument in 'strlcpy' call appears to be size of the
source; expected the size of the destination
    Line 26: size argument in 'strlcpy' call appears to be size of the
source; expected the size of the destination
    Line 27: size argument in 'strlcpy' call appears to be size of the
source; expected the size of the destination
CUSTOMBUILD : error : 'note' diagnostics seen but not expected:
[e:\bb-win7\cmake-clang-i686-msvc10\build\tools\clang\test\clang-test.vcxproj]
    Line 4: 'strlcpy' is a builtin with type 'unsigned int (char *,
const char *, unsigned int)'
    Line 5: 'strlcat' is a builtin with type 'unsigned int (char *,
const char *, unsigned int)'
    Line 6: 'strlen' is a builtin with type 'unsigned int (const char *)'
CUSTOMBUILD : error : 'note' diagnostics expected but not seen:
[e:\bb-win7\cmake-clang-i686-msvc10\build\tools\clang\test\clang-test.vcxproj]
    Line 22: change size argument to be the size of the destination
    Line 23: change size argument to be the size of the destination
    Line 24: change size argument to be the size of the destination
    Line 25: change size argument to be the size of the destination
    Line 26: change size argument to be the size of the destination
  17 errors generated.


  --

  ********************




More information about the cfe-commits mailing list