Skip to content
  1. Nov 24, 2008
  2. Nov 23, 2008
  3. Nov 22, 2008
  4. Nov 21, 2008
  5. Nov 19, 2008
  6. Nov 18, 2008
    • Zhongxing Xu's avatar
      handle the case that the array element is of structure type when bind the... · f87a7abc
      Zhongxing Xu authored
      handle the case that the array element is of structure type when bind the whole array to a single value (for example, UnknownVal, UndefinedVal).
      
      llvm-svn: 59521
      f87a7abc
    • Chris Lattner's avatar
      This reworks some of the Diagnostic interfaces a bit to change how diagnostics · 8488c829
      Chris Lattner authored
      are formed.  In particular, a diagnostic with all its strings and ranges is now
      packaged up and sent to DiagnosticClients as a DiagnosticInfo instead of as a 
      ton of random stuff.  This has the benefit of simplifying the interface, making
      it more extensible, and allowing us to do more checking for things like access
      past the end of the various arrays passed in.
      
      In addition to introducing DiagnosticInfo, this also substantially changes how 
      Diagnostic::Report works.  Instead of being passed in all of the info required
      to issue a diagnostic, Report now takes only the required info (a location and 
      ID) and returns a fresh DiagnosticInfo *by value*.  The caller is then free to
      stuff strings and ranges into the DiagnosticInfo with the << operator.  When
      the dtor runs on the DiagnosticInfo object (which should happen at the end of
      the statement), the diagnostic is actually emitted with all of the accumulated
      information.  This is a somewhat tricky dance, but it means that the 
      accumulated DiagnosticInfo is allowed to keep pointers to other expression 
      temporaries without those pointers getting invalidated.
      
      This is just the minimal change to get this stuff working, but this will allow
      us to eliminate the zillions of variant "Diag" methods scattered throughout
      (e.g.) sema.  For example, instead of calling:
      
        Diag(BuiltinLoc, diag::err_overload_no_match, typeNames,
             SourceRange(BuiltinLoc, RParenLoc));
      
      We will soon be able to just do:
      
        Diag(BuiltinLoc, diag::err_overload_no_match)
            << typeNames << SourceRange(BuiltinLoc, RParenLoc));
      
      This scales better to support arbitrary types being passed in (not just 
      strings) in a type-safe way.  Go operator overloading?!
      
      llvm-svn: 59502
      8488c829
    • Chris Lattner's avatar
      eliminate dependence of strange "Diagnostic::Report" method, · 3de58149
      Chris Lattner authored
      delete huge trailing whitespace to fit in 80 cols.
      
      llvm-svn: 59497
      3de58149
    • Chris Lattner's avatar
      Change the diagnostics interface to take an array of pointers to · 16ba9139
      Chris Lattner authored
      strings instead of array of strings.  This reduces string copying
      in some not-very-important cases, but paves the way for future 
      improvements.
      
      llvm-svn: 59494
      16ba9139
    • Chris Lattner's avatar
      cleanups and simplifications. · 53f5d4c1
      Chris Lattner authored
      llvm-svn: 59491
      53f5d4c1
  7. Nov 17, 2008
  8. Nov 16, 2008
  9. Nov 15, 2008
  10. Nov 14, 2008
    • Ted Kremenek's avatar
      Minor tweaks to liveness analysis: · fc419a03
      Ted Kremenek authored
      - Block-expression for 'ObjCForCollectionStmt' is not alive before it occurs
      - Recursively visit 'element' expression for ObjCForCollectionStmt to get liveness for referenced block-level expressions and variables.
      
      llvm-svn: 59316
      fc419a03
    • Ted Kremenek's avatar
      Second attempt at implementation transfer function support for... · 537f6387
      Ted Kremenek authored
      Second attempt at implementation transfer function support for ObjCForCollectionStmt.  We now assume that the 'element' expression can be any lvalue.
      
      llvm-svn: 59313
      537f6387
    • Ted Kremenek's avatar
      Flow-sensitive uninitialized values analysis: properly handle the 'element'... · 8959a1a6
      Ted Kremenek authored
      Flow-sensitive uninitialized values analysis: properly handle the 'element' expression of ObjCForCollectionStmt (can be anything).
      
      llvm-svn: 59312
      8959a1a6
    • Douglas Gregor's avatar
      Add a new expression node, CXXOperatorCallExpr, which expresses a · 993603d8
      Douglas Gregor authored
      function call created in response to the use of operator syntax that
      resolves to an overloaded operator in C++, e.g., "str1 +
      str2" that resolves to std::operator+(str1, str2)". We now build a
      CXXOperatorCallExpr in C++ when we pick an overloaded operator. (But
      only for binary operators, where we actually implement overloading)
      
      I decided *not* to refactor the current CallExpr to make it abstract
      (with FunctionCallExpr and CXXOperatorCallExpr as derived
      classes). Doing so would allow us to make CXXOperatorCallExpr a little
      bit smaller, at the cost of making the argument and callee accessors
      virtual. We won't know if this is going to be a win until we can parse
      lots of C++ code to determine how much memory we'll save by making
      this change vs. the performance penalty due to the extra virtual
      calls.
      
      llvm-svn: 59306
      993603d8
Loading