Skip to content
  1. Mar 09, 2013
    • Michael J. Spencer's avatar
      [Writer][ELF] Use correct data types for sizes. Fixes integer overflow bug. · 2d224509
      Michael J. Spencer authored
      This only happens when the section header count is > 1024.
      
      llvm-svn: 176747
      2d224509
    • Nick Lewycky's avatar
      Don't emit the extra checksum into the .gcda file if the user hasn't asked for · 593eeb00
      Nick Lewycky authored
      it. Fortunately, versions of gcov that predate the extra checksum also ignore 
      any extra data, so this isn't a problem. This matches the API change made in
      r176745.
      
      llvm-svn: 176746
      593eeb00
    • Nick Lewycky's avatar
      Don't emit the extra checksum into the .gcda file if the user hasn't asked for · 88f1d0d6
      Nick Lewycky authored
      it. Fortunately, versions of gcov that predate the extra checksum also ignore
      any extra data, so this isn't a problem. There will be a matching commit in
      compiler-rt.
      
      llvm-svn: 176745
      88f1d0d6
    • Jordan Rose's avatar
      [analyzer] Be more consistent about Objective-C methods that free memory. · 613f3c00
      Jordan Rose authored
      Previously, MallocChecker's pointer escape check and its post-call state
      update for Objective-C method calls had a fair amount duplicated logic
      and not-entirely-consistent checks. This commit restructures all this to
      be more consistent and possibly allow us to be more aggressive in warning
      about double-frees.
      
      New policy (applies to system header methods only):
      (1) If this is a method we know about, model it as taking/holding ownership
          of the passed-in buffer.
        (1a) ...unless there's a "freeWhenDone:" parameter with a zero (NO) value.
      (2) If there's a "freeWhenDone:" parameter (but it's not a method we know
          about), treat the buffer as escaping if the value is non-zero (YES) and
          non-escaping if it's zero (NO).
      (3) If the first selector piece ends with "NoCopy" (but it's not a method we
          know about and there's no "freeWhenDone:" parameter), treat the buffer
          as escaping.
      
      The reason that (2) and (3) don't explicitly model the ownership transfer is
      because we can't be sure that they will actually free the memory using free(),
      and we wouldn't want to emit a spurious "mismatched allocator" warning
      (coming in Anton's upcoming patch). In the future, we may have an idea of a
      "generic deallocation", i.e. we assume that the deallocator is correct but
      still continue tracking the region so that we can warn about double-frees.
      
      Patch by Anton Yartsev, with modifications from me.
      
      llvm-svn: 176744
      613f3c00
    • John McCall's avatar
      Adjust the special non-C++ enum block return type inference · e4c11cc7
      John McCall authored
      so that it looks through certain syntactic forms and applies
      even if normal inference would have succeeded.
      
      There is potential for source incompatibility from this
      change, but overall we feel that it produces a much
      cleaner and more defensible result, and the block
      compatibility rules should curb a lot of the potential
      for annoyance.
      
      rdar://13200889
      
      llvm-svn: 176743
      e4c11cc7
    • John McCall's avatar
      Add TagDecl::hasNameForLinkage(), which is true if the tag · 5ea95770
      John McCall authored
      is non-anonymous or is defined in a typedef of itself.
      
      llvm-svn: 176742
      5ea95770
    • Jim Ingham's avatar
      Fix a reversed test for "for_expression" in creating C++ exception breakpoints. · 168d469a
      Jim Ingham authored
      Add a missing "break" in processing the -h option to "breakpoint set".
      
      llvm-svn: 176741
      168d469a
    • Jason Molenda's avatar
      Fix assert in RegisterValue::SetBytes if we're trying to · c3313670
      Jason Molenda authored
      write a 32-byte value into a 32-byte ymm vector reg - that 
      is allowed.
      <rdar://problem/13350587> 
      
      llvm-svn: 176740
      c3313670
    • Fariborz Jahanian's avatar
      Documentation parsing. Some refactoring and code · cfbac5d3
      Fariborz Jahanian authored
      improvements per Dmtiri's comments. // rdar://12379114
      
      llvm-svn: 176739
      cfbac5d3
    • Sean Callanan's avatar
      Removed One Definition Rule warnings because they're · 83b3da95
      Sean Callanan authored
      noisy when dealing with anonymous structs.
      
      <rdar://problem/13246914>
      
      llvm-svn: 176738
      83b3da95
    • Jordan Rose's avatar
      [analyzer] Look for lvalue nodes when tracking a null pointer. · bce05836
      Jordan Rose authored
      r176010 introduced the notion of "interesting" lvalue expressions, whose
      nodes are guaranteed never to be reclaimed by the ExplodedGraph. This was
      used in bugreporter::trackNullOrUndefValue to find the region that contains
      the null or undef value being tracked.
      
      However, the /rvalue/ nodes (i.e. the loads from these lvalues that produce
      a null or undef value) /are/ still being reclaimed, and if we couldn't
      find the node for the rvalue, we just give up. This patch changes that so
      that we look for the node for either the rvalue or the lvalue -- preferring
      the former, since it lets us fall back to value-only tracking in cases
      where we can't get a region, but allowing the latter as well.
      
      <rdar://problem/13342842>
      
      llvm-svn: 176737
      bce05836
    • Jordan Rose's avatar
      [analyzer] Don't rely on finding the correct return statement for suppression. · 5ca39546
      Jordan Rose authored
      Previously, ReturnVisitor waited to suppress a null return path until it
      had found the inlined "return" statement. Now, it checks up front whether
      the return value was NULL, and suppresses the warning right away if so.
      
      We still have to wait until generating the path notes to invalidate the bug
      report, or counter-suppression will never be triggered. (Counter-suppression
      happens while generating path notes, but the generation won't happen for
      reports already marked invalid.)
      
      This isn't actually an issue today because we never reclaim nodes for
      top-level statements (like return statements), but it could be an issue
      some day in the future. (But, no expected behavioral change and no new
      test case.)
      
      llvm-svn: 176736
      5ca39546
    • Edwin Vane's avatar
      Adding user documentation for UseAuto transform · 3b9f08d6
      Edwin Vane authored
      Reviewers: silvas, gribozavr
      llvm-svn: 176735
      3b9f08d6
    • Jakob Stoklund Olesen's avatar
      Remove wrong and unnecessary assertion. · 10016738
      Jakob Stoklund Olesen authored
      PHIs are allowed to have multiple operand pairs per predecessor, and
      this code works just fine when it happens.
      
      llvm-svn: 176734
      10016738
  2. Mar 08, 2013
Loading