Skip to content
  1. Feb 03, 2010
    • Chandler Carruth's avatar
      54a0f48e
    • Zhongxing Xu's avatar
      Add skeleton of flat store manager. · 5df3f536
      Zhongxing Xu authored
      llvm-svn: 95214
      5df3f536
    • Douglas Gregor's avatar
      Look through CXXExprWithTemporaries when digging out the original · 4a2f5464
      Douglas Gregor authored
      initializer. Grrr....
      
      llvm-svn: 95211
      4a2f5464
    • Chris Lattner's avatar
      update for llvm api change. · 78c8eaa4
      Chris Lattner authored
      llvm-svn: 95203
      78c8eaa4
    • Chris Lattner's avatar
      remove a big chunk of #if 0 code. · eb1e610d
      Chris Lattner authored
      llvm-svn: 95201
      eb1e610d
    • Ted Kremenek's avatar
      Fix regression in RegionStore due to recent changes in · d960564b
      Ted Kremenek authored
      RegionStoreManager::InvalidateRegions() by adjusting the worklist to
      iterate over BindingKeys instead of MemRegions.  We also only need to
      do the actual invalidation work on base regions, and for non-base
      regions just blow away their bindings.
      
      llvm-svn: 95200
      d960564b
    • Sam Weinig's avatar
      Implement Doug's suggestion. Eliminate the Stmts pointer from CXXTryStmt and... · a16b0dd1
      Sam Weinig authored
      Implement Doug's suggestion. Eliminate the Stmts pointer from CXXTryStmt and instead allocate the statements after the object.
      
      llvm-svn: 95199
      a16b0dd1
    • Daniel Dunbar's avatar
      Driver: Add -[no-]integrated-as for clang. · c434394d
      Daniel Dunbar authored
       - Requires backend support, which only exists for i386--darwin currently.
      
      No 'as' required:
      --
      ddunbar@ozzy:tmp$ cat t.c
      int main() { return 42; }
      ddunbar@ozzy:tmp$ clang -m32 -integrated-as t.c
      
      
      ddunbar@ozzy:tmp$ ./a.out; echo $?
      42
      ddunbar@ozzy:tmp$
      --
      
      The random extra whitespace is how you know its working! :)
      
      llvm-svn: 95194
      c434394d
    • Ted Kremenek's avatar
      Rework RegionStoreManager's implementation of InvalidateRegions() to · 64efd0d2
      Ted Kremenek authored
      not build a subregion map and instead do a single scan of the store.
      This is done by building "region clusters" that represent the
      collection of regions that have the same base region.  Invalidating
      any region in a cluster means that they all should get invalidated.
      
      This change brought out a point that Zhongxing mentioned to me
      offline: the flattened memory binding has issues distinguishing
      between direct and default bindings.  For example, setting the default
      value for an entire struct is the same as binding to the first
      element.  To address this problem, I moved the binding "tag" (Direct
      or Default) from BindingVal to BdingKey (and removed BindingVal
      entirely).  This requires us to do double lookups in some cases; and
      there is still much more cleanup that can be done.
      
      This change produced a noticeable speedup when analyzing sqlite3 (a
      reduction of 4% in running time).
      
      llvm-svn: 95193
      64efd0d2
    • Douglas Gregor's avatar
      Provide a real fix for PR6199, reverting the old workaround. Here, we · db56b919
      Douglas Gregor authored
      realize that CXXConstructExpr is always implicit, so we should just
      return its argument (if there is only one) rather than directly
      invoking the constructor.
      
      llvm-svn: 95192
      db56b919
    • Sam Weinig's avatar
      Remove the SmallVector from CXXTryStmt. · ebcea988
      Sam Weinig authored
      llvm-svn: 95190
      ebcea988
    • David Chisnall's avatar
      Numerous changes to selector handling: · 92b762e2
      David Chisnall authored
      - Don't use GlobalAliases with non-0 GEPs (GNU runtime) - this was unsupported and LLVM will be generating errors if you do it soon.  This also simplifies the code generated by the GNU runtime a bit.  
      
      - Make GetSelector() return a constant (GNU runtime), not a load of a store of a constant.
      
      - Recognise @selector() expressions as valid static initialisers (as GCC does).
      
      - Add methods to GCObjCRuntime to emit selectors as constants (needed for using @selector() expressions as constants.  These need implementing for the Mac runtimes - I couldn't figure out how to do this, they seem to require a load.
      
      - Store an ObjCMethodDecl in an ObjCSelectorExpr so that we can get at the type information for the selector.  This is needed for generating typed selectors from @selector() expressions (as GCC does).  Ideally, this information should be stored in the Selector, but that would be an invasive change.  We should eventually add checks for common uses of @selector() expressions.  Possibly adding an attribute that can be applied to method args providing the types of a selector so, for example, you'd do something like this:
      
      - (id)performSelector: __attribute__((selector_types(id, SEL, id)))(SEL)
                 withObject: (id)object;
      
      Then, any @selector() expressions passed to the method will be check to ensure that it conforms to this signature.  We do this at run time on the GNU runtime already, but it would be nice to do it at compile time on all runtimes.
      
      - Made @selector() expressions emit type info if available and the runtime supports it.
      
      Someone more familiar with the Mac runtime needs to implement the GetConstantSelector() function in CGObjCMac.  This currently just assert()s.
      
      llvm-svn: 95189
      92b762e2
    • Sebastian Redl's avatar
    • Chris Lattner's avatar
      fix PR6216 · 35af0ab3
      Chris Lattner authored
      llvm-svn: 95185
      35af0ab3
    • Daniel Dunbar's avatar
      clang -cc1: Wire up -emit-obj, for emitting object files. · 92db0fbe
      Daniel Dunbar authored
      llvm-svn: 95182
      92db0fbe
    • John McCall's avatar
      Remove abstract expression kinds from the StmtClass enum. Update a few users · 2adddcae
      John McCall authored
      appropriately.  Call out a few missing cases in the expression mangler.
      
      llvm-svn: 95176
      2adddcae
    • Fariborz Jahanian's avatar
      Simplify setting of DeclContext for @catch variable · e1651919
      Fariborz Jahanian authored
      (per Doug's comment).
      
      llvm-svn: 95169
      e1651919
    • Douglas Gregor's avatar
      Implement the lvalue-to-rvalue conversion where needed. The · b92a1565
      Douglas Gregor authored
      lvalue-to-rvalue conversion adjusts lvalues of qualified, non-class
      type to rvalue expressions of the unqualified variant of that
      type. For example, given:
      
        const int i;
        (void)(i + 17);
      
      the lvalue-to-rvalue conversion for the subexpression "i" will turn it
      from an lvalue expression (a DeclRefExpr) with type 'const int' into
      an rvalue expression with type 'int'. Both C and C++ mandate this
      conversion, and somehow we've slid through without implementing it. 
      
      We now have both DefaultFunctionArrayConversion and
      DefaultFunctionArrayLvalueConversion, and which gets used depends on
      whether we do the lvalue-to-rvalue conversion or not. Generally, we do
      the lvalue-to-rvalue conversion, but there are a few notable
      exceptions:
        - the left-hand side of a '.' operator
        - the left-hand side of an assignment
        - a C++ throw expression
        - a subscript expression that's subscripting a vector
      
      Making this change exposed two issues with blocks:
        - we were deducing const-qualified return types of non-class type
        from a block return, which doesn't fit well
        - we weren't always setting the known return type of a block when it
        was provided with the ^return-type syntax
      
      Fixes the current Clang-on-Clang compile failure and PR6076.
      
      llvm-svn: 95167
      b92a1565
    • Fariborz Jahanian's avatar
      Fix DeclContext of an objective-c @catch variable · 08d614d9
      Fariborz Jahanian authored
      declaration. Fixes radar 7590273.
      
      llvm-svn: 95164
      08d614d9
  2. Feb 02, 2010
Loading