On Fri, Jun 19, 2015 at 7:17 PM, Douglas Gregor <[email protected]> wrote:
> Author: dgregor
> Date: Fri Jun 19 18:17:55 2015
> New Revision: 240187
>
> URL: http://llvm.org/viewvc/llvm-project?rev=240187&view=rev
> Log:
> Make -Wnullability-completeness work with -Wsystem-headers.
>
> rdar://problem/21134250
>
> Added:
>     cfe/trunk/test/SemaObjCXX/Inputs/nullability-consistency-system/
>     
> cfe/trunk/test/SemaObjCXX/Inputs/nullability-consistency-system/nullability-consistency-system.h
>    (with props)
> Modified:
>     cfe/trunk/lib/Sema/SemaType.cpp
>     cfe/trunk/test/SemaObjCXX/nullability-consistency.mm
>
> Modified: cfe/trunk/lib/Sema/SemaType.cpp
> URL: 
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaType.cpp?rev=240187&r1=240186&r2=240187&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaType.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaType.cpp Fri Jun 19 18:17:55 2015
> @@ -2791,9 +2791,12 @@ static FileID getNullabilityCompleteness
>    // We don't want to perform completeness checks on the main file or in
>    // system headers.
>    const SrcMgr::FileInfo &fileInfo = sloc.getFile();
> -  if (fileInfo.getIncludeLoc().isInvalid() ||
> -      fileInfo.getFileCharacteristic() != SrcMgr::C_User)
> +  if (fileInfo.getIncludeLoc().isInvalid())
>      return FileID();
> +  if (fileInfo.getFileCharacteristic() != SrcMgr::C_User &&
> +      S.Diags.getSuppressSystemWarnings()) {
> +    return FileID();
> +  }
>
>    return file;
>  }
>
> Added: 
> cfe/trunk/test/SemaObjCXX/Inputs/nullability-consistency-system/nullability-consistency-system.h
> URL: 
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjCXX/Inputs/nullability-consistency-system/nullability-consistency-system.h?rev=240187&view=auto
> ==============================================================================
> --- 
> cfe/trunk/test/SemaObjCXX/Inputs/nullability-consistency-system/nullability-consistency-system.h
>  (added)
> +++ 
> cfe/trunk/test/SemaObjCXX/Inputs/nullability-consistency-system/nullability-consistency-system.h
>  Fri Jun 19 18:17:55 2015
> @@ -0,0 +1,8 @@
> +// Simply marking this as "#pragma clang system_header" didn't tickle the 
> bug, rdar://problem/21134250.
> +
> +void system1(int *ptr);
> +#if WARN_IN_SYSTEM_HEADERS
> +// expected-warning@-2{{pointer is missing a nullability type specifier}}
> +#endif
> +
> +void system2(int * __nonnull);
>
> Propchange: 
> cfe/trunk/test/SemaObjCXX/Inputs/nullability-consistency-system/nullability-consistency-system.h
> ------------------------------------------------------------------------------
>     svn:eol-style = native
>
> Propchange: 
> cfe/trunk/test/SemaObjCXX/Inputs/nullability-consistency-system/nullability-consistency-system.h
> ------------------------------------------------------------------------------
>     svn:keywords = Id
>
> Propchange: 
> cfe/trunk/test/SemaObjCXX/Inputs/nullability-consistency-system/nullability-consistency-system.h
> ------------------------------------------------------------------------------
>     svn:mime-type = text/plain

Unintentional svn prop changes?

>
> Modified: cfe/trunk/test/SemaObjCXX/nullability-consistency.mm
> URL: 
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjCXX/nullability-consistency.mm?rev=240187&r1=240186&r2=240187&view=diff
> ==============================================================================
> --- cfe/trunk/test/SemaObjCXX/nullability-consistency.mm (original)
> +++ cfe/trunk/test/SemaObjCXX/nullability-consistency.mm Fri Jun 19 18:17:55 
> 2015
> @@ -1,4 +1,5 @@
> -// RUN: %clang_cc1 -fsyntax-only -fblocks -I %S/Inputs %s -verify
> +// RUN: %clang_cc1 -fsyntax-only -fblocks -I %S/Inputs -isystem 
> %S/Inputs/nullability-consistency-system %s -verify
> +// RUN: %clang_cc1 -fsyntax-only -fblocks -I %S/Inputs -isystem 
> %S/Inputs/nullability-consistency-system %s -Wsystem-headers 
> -DWARN_IN_SYSTEM_HEADERS -verify
>
>  #include "nullability-consistency-1.h"
>  #include "nullability-consistency-3.h"
> @@ -8,6 +9,7 @@
>  #include "nullability-consistency-6.h"
>  #include "nullability-consistency-7.h"
>  #include "nullability-consistency-8.h"
> +#include "nullability-consistency-system.h"
>
>  void h1(int *ptr) { } // don't warn
>
>
>
> _______________________________________________
> cfe-commits mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

~Aaron
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to