Skip to content
  1. Jun 16, 2011
    • John McCall's avatar
      Automatic Reference Counting. · 31168b07
      John McCall authored
      Language-design credit goes to a lot of people, but I particularly want
      to single out Blaine Garst and Patrick Beard for their contributions.
      
      Compiler implementation credit goes to Argyrios, Doug, Fariborz, and myself,
      in no particular order.
      
      llvm-svn: 133103
      31168b07
  2. Jun 15, 2011
    • Jordy Rose's avatar
      [analyzer] Revise CStringChecker's modelling of strcpy() and strcat(): · 634c12d2
      Jordy Rose authored
      - (bounded copies) Be more conservative about how much is being copied.
      - (str(n)cat) If we can't compute the exact final length of an append operation, we can still lower-bound it.
      - (stpcpy) Fix the conjured return value at the end to actually be returned.
      
      This requires these supporting changes:
      - C string metadata symbols are still live even when buried in a SymExpr.
      - "Hypothetical" C string lengths, to represent a value that /will/ be passed to setCStringLength() if all goes well. (The idea is to allow for temporary constrainable symbols that may end up becoming permanent.)
      - The 'checkAdditionOverflow' helper makes sure that the two strings being appended in a strcat don't overflow size_t. This should never *actually* happen; the real effect is to keep the final string length from "wrapping around" in the constraint manager.
      
      This doesn't actually test the "bounded" operations (strncpy and strncat) because they can leave strings unterminated. Next on the list!
      
      llvm-svn: 133046
      634c12d2
    • Jordy Rose's avatar
      [analyzer] If a C string length is UnknownVal, clear any existing length... · 0e9fb28e
      Jordy Rose authored
      [analyzer] If a C string length is UnknownVal, clear any existing length binding. No tests yet because the only thing that sets string length is strcpy(), and that needs some work anyway.
      
      llvm-svn: 133044
      0e9fb28e
  3. Jun 14, 2011
  4. Jun 04, 2011
  5. May 06, 2011
    • Alexis Hunt's avatar
      Modify some deleted function methods to better reflect reality: · 4a8ea109
      Alexis Hunt authored
       - New isDefined() function checks for deletedness
       - isThisDeclarationADefinition checks for deletedness
       - New doesThisDeclarationHaveABody() does what
         isThisDeclarationADefinition() used to do
       - The IsDeleted bit is not propagated across redeclarations
       - isDeleted() now checks the canoncial declaration
       - New isDeletedAsWritten() does what it says on the tin.
       - isUserProvided() now correct (thanks Richard!)
      
      This fixes the bug that we weren't catching
      
      void foo() = delete;
      void foo() {}
      
      as being a redefinition.
      
      llvm-svn: 131013
      4a8ea109
  6. May 03, 2011
  7. May 02, 2011
  8. Apr 30, 2011
  9. Apr 28, 2011
  10. Apr 27, 2011
  11. Apr 26, 2011
  12. Apr 23, 2011
  13. Apr 19, 2011
  14. Apr 15, 2011
  15. Apr 12, 2011
  16. Apr 09, 2011
    • Lenny Maiorani's avatar
      strcat() and strncat() model additions to CStringChecker. · 467dbd5f
      Lenny Maiorani authored
      Validates inputs are not NULL, checks for overlapping strings, concatenates the strings checking for buffer overflow, sets the length of the destination string to the sum of the s1 length and the s2 length, binds the return value to the s1 value.
      
      llvm-svn: 129215
      467dbd5f
  17. Apr 05, 2011
  18. Apr 03, 2011
    • Lenny Maiorani's avatar
      Refactoring the security checker a little bit so that each CallExpr check... · fca2e961
      Lenny Maiorani authored
      Refactoring the security checker a little bit so that each CallExpr check doesn't get called for each CallExpr. Instead it does a switch and only runs the check for the proper identifier. Slight speed improvement (probably significant on very large ASTs), and should make it easier and more clear to add more checks for other CallExpr's later.
      
      llvm-svn: 128785
      fca2e961
  19. Apr 02, 2011
  20. Apr 01, 2011
  21. Mar 31, 2011
Loading