Skip to content
  1. Sep 06, 2012
    • Jordan Rose's avatar
      Continue including temporary destructors in the CFG used for warnings. · 91f78406
      Jordan Rose authored
      ...and hopefully unbreak buildbots. My apologies!
      
      llvm-svn: 163267
      91f78406
    • Jordan Rose's avatar
      Format strings: suggest casts for NS(U)Integer and [SU]Int32 on Darwin. · aee34381
      Jordan Rose authored
      These types are defined differently on 32-bit and 64-bit platforms, and
      trying to offer a fixit for one platform would only mess up the format
      string for the other. The Apple-recommended solution is to cast to a type
      that is known to be large enough and always use that to print the value.
      
      This should only have an impact on compile time if the format string is
      incorrect; in cases where the format string matches the definition on the
      current platform, no warning will be emitted.
      
      <rdar://problem/9135072&12164284>
      
      llvm-svn: 163266
      aee34381
    • Jordan Rose's avatar
      Format string checking: change long if-statement to early returns. · 22b7471f
      Jordan Rose authored
      No functionality change.
      
      llvm-svn: 163265
      22b7471f
    • Jordan Rose's avatar
      [analyzer] Always include destructors in the analysis CFG. · 6d671cc3
      Jordan Rose authored
      While destructors will continue to not be inlined (unless the analyzer
      config option 'c++-inlining' is set to 'destructors'), leaving them out
      of the CFG is an incomplete model of the behavior of an object, and
      can cause false positive warnings (like PR13751, now working).
      
      Destructors for temporaries are still not on by default, since
      (a) we haven't actually checked this code to be sure it's fully correct
          (in particular, we probably need to be very careful with regard to
          lifetime-extension when a temporary is bound to a reference,
          C++11 [class.temporary]p5), and
      (b) ExprEngine doesn't actually do anything when it sees a temporary
          destructor in the CFG -- not even invalidate the object region.
      
      To enable temporary destructors, set the 'cfg-temporary-dtors' analyzer
      config option to '1'. The old -cfg-add-implicit-dtors cc1 option, which
      controlled all implicit destructors, has been removed.
      
      llvm-svn: 163264
      6d671cc3
    • Anna Zaks's avatar
      [analyzer] Fix a crash PR13762. · e5cb4981
      Anna Zaks authored
      llvm-svn: 163262
      e5cb4981
    • Anna Zaks's avatar
      [analyzer] NullOrUndef diagnostics: track symbols binded to regions. · b4b2b57e
      Anna Zaks authored
      If a region is binded to a symbolic value, we should track the symbol.
      
      (The code I changed was not previously exercised by the regression
      tests.)
      
      llvm-svn: 163261
      b4b2b57e
    • Anna Zaks's avatar
      [analyzer] Remove unneeded code. · 1e2a0dc4
      Anna Zaks authored
      This region is set as interesting as part of trackNullOrUndefValue call,
      no need to mark it as interesting twice.
      
      llvm-svn: 163260
      1e2a0dc4
  2. Sep 05, 2012
  3. Sep 04, 2012
Loading