Skip to content
  1. May 19, 2013
  2. May 18, 2013
    • Chandler Carruth's avatar
      Fix a logic bug in the handling of -fmath-errno in the driver. We would · 0d4b9e61
      Chandler Carruth authored
      imply -fno-math-errno if the user passed -fno-fast-math OR -ffast-math,
      regardless of in which order and regardless of the tool chain default.
      
      I've fixed this to follow the logic:
      
      1) If the last dominating flag is -fno-math-errno, -ffast-math, or
         -Ofast, then do not use math-errno.
      2) If the last dominating flag is an explicit -fmath-errno, do use
         math-errno.
      3) Otherwise, use the toolchain default.
      
      This, for example, allows the flag sequence
      '-ffast-math ... -fno-fast-math' with no mention of '-fmath-errno' or
      '-fno-math-errno' to preserve the toolchain default. Most notably, this
      should prevent users trying to disable fast-math optimizations on Darwin
      and BSD platforms from simultaneously enabling (pointless) -fmath-errno.
      
      I've enhanced the tests (after more reorganization) to cover this and
      other weird permutations of flags and targets.
      
      llvm-svn: 182203
      0d4b9e61
    • Chandler Carruth's avatar
      Slight reorganization of the fast-math tests which test for errno · 40746dfe
      Chandler Carruth authored
      setting. Consolidate the collection of tests that enable -fmath-errno
      and share a single CHECK line for simplicity.
      
      llvm-svn: 182202
      40746dfe
    • Serge Pavlov's avatar
      Removed invalid character. · 11120067
      Serge Pavlov authored
      llvm-svn: 182189
      11120067
    • Jordan Rose's avatar
      [analyzer] New edges: include an edge to the end-of-path location. · 933e5ba7
      Jordan Rose authored
      llvm-svn: 182188
      933e5ba7
    • Jordan Rose's avatar
      [analyzer] "Fix" ParentMap to handle non-syntactic OpaqueValueExprs. · c3f1cb3b
      Jordan Rose authored
      Constructs like PseudoObjectExpr, where an expression can appear more than
      once in the AST, use OpaqueValueExprs to guard against inadvertent
      re-processing of the shared expression during AST traversal. The most
      common form of this is to share expressions between the syntactic
      "as-written" form of, say, an Objective-C property access 'obj.prop', and
      the underlying "semantic" form '[obj prop]'.
      
      However, some constructs can produce OpaqueValueExprs that don't appear in
      the syntactic form at all; in these cases the ParentMap wasn't ever traversing
      the children of these expressions. This patch fixes that by checking to see
      if an OpaqueValueExpr's child has ever been traversed before. There's also a
      bit of reset logic when visiting a PseudoObjectExpr to handle the case of
      updating the ParentMap, which some external clients depend on.
      
      This still isn't exactly the right fix because we probably want the parent
      of the OpaqueValueExpr itself to be its location in the syntactic form if
      it's syntactic and the PseudoObjectExpr or BinaryConditionalOperator itself
      if it's semantic. Whe I originally wrote the code to do this, I didn't realize
      that OpaqueValueExprs themselves are shared in the AST, not just their source
      expressions. This patch doesn't change the existing behavior so as not to
      break anything inadvertently relying on it; we'll come back to this later.
      
      llvm-svn: 182187
      c3f1cb3b
    • Jordan Rose's avatar
      [analyzer] Add a debug dump for PathPieces, a list of PathDiagnosticPieces. · 7c40d078
      Jordan Rose authored
      Originally implemented by Ted, extended by me.
      
      llvm-svn: 182186
      7c40d078
    • Jordan Rose's avatar
      Revert "[analyzer; alternate edges] improve support for edges with PseudoObjectExprs." · 433b0f54
      Jordan Rose authored
      Ted and I spent a long time discussing this today and found out that neither
      the existing code nor the new code was doing what either of us thought it
      was, which is never good. The good news is we found a much simpler way to
      fix the motivating test case (an ObjCSubscriptExpr).
      
      This reverts r182083, but pieces of it will come back in subsequent commits.
      
      llvm-svn: 182185
      433b0f54
    • Rafael Espindola's avatar
      Handle local enum types too. · b6ed1531
      Rafael Espindola authored
      Thanks to John McCall for pointing this out.
      
      llvm-svn: 182182
      b6ed1531
    • Adrian Prantl's avatar
      Drop the const from the isa test. · b39fc142
      Adrian Prantl authored
      llvm-svn: 182178
      b39fc142
    • Adrian Prantl's avatar
      ObjC Debug Info: Emit the correct method names for accessors for · 6e785ec0
      Adrian Prantl authored
      properties declared in a protocol.
      
      rdar://problem/13798000
      
      llvm-svn: 182176
      6e785ec0
    • DeLesley Hutchins's avatar
      Thread safety analysis: add two new attributes to the thread safety analysis: · b6824317
      DeLesley Hutchins authored
      assert_exclusive_lock and assert_shared_lock.  These attributes are used to
      mark functions that dynamically check (i.e. assert) that a lock is held.
      
      llvm-svn: 182170
      b6824317
    • Rafael Espindola's avatar
      Use the awesome CHECK-DAG! · 94c2fea6
      Rafael Espindola authored
      llvm-svn: 182167
      94c2fea6
  3. May 17, 2013
  4. May 16, 2013
Loading