Skip to content
  1. Nov 25, 2009
    • Fariborz Jahanian's avatar
      Some fancy footwork to move the decision on how · 906d871e
      Fariborz Jahanian authored
      to build casted expression-list AST to Sema.
      
      llvm-svn: 89827
      906d871e
    • Douglas Gregor's avatar
      Eliminate CXXConditionDeclExpr with extreme prejudice. · 7bab5ff8
      Douglas Gregor authored
      All statements that involve conditions can now hold on to a separate
      condition declaration (a VarDecl), and will use a DeclRefExpr
      referring to that VarDecl for the condition expression. ForStmts now
      have such a VarDecl (I'd missed those in previous commits).
      
      Also, since this change reworks the Action interface for
      if/while/switch/for, use FullExprArg for the full expressions in those
      expressions, to ensure that we're emitting
      
      Note that we are (still) not generating the right cleanups for
      condition variables in for statements. That will be a follow-on
      commit.
      
      llvm-svn: 89817
      7bab5ff8
    • Sebastian Redl's avatar
      Have the parser tell sema whether a member declaration is a function... · d6f78501
      Sebastian Redl authored
      Have the parser tell sema whether a member declaration is a function definition. This allows sema to not emit spurious diagnostics in some invalid code.
      
      llvm-svn: 89816
      d6f78501
  2. Nov 24, 2009
  3. Nov 23, 2009
    • Ted Kremenek's avatar
      Clean up the Checker API a little more, resolving some hidden bugs · f5735157
      Ted Kremenek authored
      along the way.  Important changes:
      
      1) To generate a sink node, use GenerateSink(); GenerateNode() is for
      generating regular transitions.  This makes the API clearer and also
      allows us to use the 'bool' option to GenerateNode() for a different
      purpose.
      
      2) GenerateNode() now automatically adds the generated node to the
      destination ExplodedNodeSet (autotransition) unless the client
      specifies otherwise with a bool flag.  Several checkers did not call
      'addTransition()' after calling 'GenerateNode()', causing the
      simulation path to be prematurely culled when a non-fail stop bug was
      encountered.
      
      3) Add variants of GenerateNode()/GenerateSink() that take neither a
      Stmt* or a GRState*; most callers of GenerateNode() just pass in the
      same Stmt* as provided when the CheckerContext object is created; we
      can just use that the majority of the time.  This cleanup also allows
      us to potentially coelesce the APIs for evaluating branches and
      end-of-paths (which currently directly use builders).
      
      4) addTransition() no longer needs to be called except for a few
      cases.  We now have a variant of addTransition() that takes a
      GRState*; this allows one to propagate the updated state without
      caring about generating a new node explicitly.  This nicely cleaned up
      a bunch of cases that called autoTransition() with a bunch of
      conditional logic surround the call (that common logic has now been
      swallowed up by addTransition() itself).
      
      llvm-svn: 89707
      f5735157
Loading