Skip to content
  1. Jan 11, 2010
    • Chris Lattner's avatar
      add a TODO for a perf improvement in LexIdentifier. · 21d9b9a9
      Chris Lattner authored
      llvm-svn: 93141
      21d9b9a9
    • Ted Kremenek's avatar
      Switch RegionStore over to using <BaseRegion+raw offset> to store · be909b5e
      Ted Kremenek authored
      value bindings.  Along with a small change to OSAtomicChecker, this
      resolves <rdar://problem/7527292> and resolves some long-standing
      issues with how values can be bound to the same physical address by
      not have the same "key".  This change is only a beginning; logically
      RegionStore needs to better handle loads from addresses where the
      stored value is larger/smaller/different type than the loaded value.
      We handle these cases in an approximate fashion now (via
      CastRetrievedVal and help in SimpleSValuator), but it could be made
      much smarter.
      
      llvm-svn: 93137
      be909b5e
    • Ted Kremenek's avatar
      Preliminary reworking of value-binding logic in RegionStore: · 8e994a28
      Ted Kremenek authored
      (1) Introduce a new 'BindingKey' class to match 'BindingValue'.  This
      gives us the flexibility to change the current key value from 'const
      MemRegion*' to something more interesting.
      
      (2) Rework additions/removals/lookups from the store to use new
      'Remove', 'Add', 'Lookup' utility methods.
      
      No "real" functionality change; just prep work and abstraction.
      
      llvm-svn: 93136
      8e994a28
    • Alexis Hunt's avatar
      Do not parse hexadecimal floating point literals in C++0x mode because they are · 91b78382
      Alexis Hunt authored
      incompatible with user-defined literals, specifically with the following form:
      
        0x1p+1
      
      The preprocessing-number token extends only as far as the 'p'; the '+' is not
      included. Previously we could get away with this extension as p was an invalid
      suffix, but now with user-defined literals, 'p' might well be a valid suffix
      and we are forced to consider it as such.
      
      This patch also adds a warning in non-0x C++ modes telling the user that
      this extension is incompatible with C++0x that is enabled by default
      (previously and with other languages, we warn only with a compliance
      option such as -pedantic).
      
      llvm-svn: 93135
      91b78382
    • Douglas Gregor's avatar
      Improve code completion by introducing patterns for the various C and · 504a6ae8
      Douglas Gregor authored
      C++ grammatical constructs that show up in top-level (namespace-level)
      declarations, member declarations, template declarations, statements,
      expressions, conditions, etc. For example, we now provide a pattern
      for
      
        static_cast<type>(expr)
      
      when we can have an expression, or
      
        using namespace identifier;
      
      when we can have a using directive.
      
      Also, improves the results of code completion at the beginning of a
      top-level declaration. Previously, we would see value names (function
      names, global variables, etc.); now we see types, namespace names,
      etc., but no values.
      
      llvm-svn: 93134
      504a6ae8
  2. Jan 10, 2010
Loading