Skip to content
  1. Feb 09, 2013
    • Dmitri Gribenko's avatar
      FileCheck'ize a test · f37d0cd7
      Dmitri Gribenko authored
      llvm-svn: 174814
      f37d0cd7
    • Ted Kremenek's avatar
      QoI: -Wreadonly-iboutlet-property should have the warning's location on the property. · 7ee25676
      Ted Kremenek authored
      There's no need to refer to the @implementation at all.
      
      Fixes <rdar://problem/13186515>
      
      llvm-svn: 174802
      7ee25676
    • Douglas Gregor's avatar
      Ensure that type definitions present in just-loaded modules are · 7dab26b8
      Douglas Gregor authored
      visible.
      
      The basic problem here is that a given translation unit can use
      forward declarations to form pointers to a given type, say,
      
        class X;
        X *x;
      
      and then import a module that includes a definition of X:
      
        import XDef;
      
      We will then fail when attempting to access a member of X, e.g., 
      
        x->method()
      
      because the AST reader did not know to look for a default of a class
      named X within the new module.
      
      This implementation is a bit of a C-centric hack, because the only
      definitions that can have this property are enums, structs, unions,
      Objective-C classes, and Objective-C protocols, and all of those are
      either visible at the top-level or can't be defined later. Hence, we
      can use the out-of-date-ness of the name and the identifier-update
      mechanism to force the update.
      
      In C++, we will not be so lucky, and will need a more advanced
      solution, because the definitions could be in namespaces defined in
      two different modules, e.g.,
      
        // module 1
        namespace N { struct X; }
      
        // module 2
        namespace N { struct X { /* ... */ }; }
      
      One possible implementation here is for C++ to extend the information
      associated with each identifier table to include the declaration IDs
      of any definitions associated with that name, regardless of
      context. We would have to eagerly load those definitions.
      
      llvm-svn: 174794
      7dab26b8
    • Jordan Rose's avatar
      Properly validate UCNs for C99 and C++03 (both more restrictive than C(++)11). · 58c61e00
      Jordan Rose authored
      Add warnings under -Wc++11-compat, -Wc++98-compat, and -Wc99-compat when a
      particular UCN is incompatible with a different standard, and -Wunicode when
      a UCN refers to a surrogate character in C++03.
      
      llvm-svn: 174788
      58c61e00
    • Anna Zaks's avatar
      [analyzer] Invalidation checker: move the "missing implementation" check · 7811c3ef
      Anna Zaks authored
      The missing definition check should be in the same category as the
      missing ivar validation - in this case, the intent is to invalidate in
      the given class, as described in the declaration, but the implementation
      does not perform the invalidation. Whereas the MissingInvalidationMethod
      checker checks the cases where the method intention is not to
      invalidate. The second checker has potential to have a much higher false
      positive rate.
      
      llvm-svn: 174787
      7811c3ef
    • Anna Zaks's avatar
      [analyzer] Split IvarInvalidation into two checkers · 91a5fdf8
      Anna Zaks authored
      Separate the checking for the missing invalidation methods into a
      separate checker so that it can be turned on/off independently.
      
      llvm-svn: 174781
      91a5fdf8
    • Anna Zaks's avatar
      [analyzer] IvarInvalidation: add annotation for partial invalidation · a5096f6f
      Anna Zaks authored
      The new annotation allows having methods that only partially invalidate
      IVars and might not be called from the invalidation methods directly
      (instead, are guaranteed to be called before the invalidation occurs).
      The checker is going to trust the programmer to call the partial
      invalidation method before the invalidator.This is common in cases when
      partial object tear down happens before the death of the object.
      
      llvm-svn: 174779
      a5096f6f
    • Fariborz Jahanian's avatar
      objective-C: don't issue bogus warning about · f3c171eb
      Fariborz Jahanian authored
      "auto-synthesized may not work correctly with 'nib' loader"
      when 'readonly' property is redeclared 'readwrite' in class
      extension. // rdar://13123861
      
      llvm-svn: 174775
      f3c171eb
  2. Feb 08, 2013
  3. Feb 07, 2013
Loading