Skip to content
  1. Oct 28, 2009
    • Douglas Gregor's avatar
      Implement proper linkage for explicit instantiation declarations of · b7e5c847
      Douglas Gregor authored
      inlined functions. For example, given
      
        template<typename T>
        class string {
          unsigned Len;
      
        public:
          unsigned size() const { return Len; }
        };
      
        extern template class string<char>;
      
      we now give the instantiation of string<char>::size
      available_externally linkage (if it is ever instantiated!), as
      permitted by the C++0x standard.
            
      
      llvm-svn: 85340
      b7e5c847
  2. Oct 27, 2009
  3. Oct 26, 2009
  4. Oct 25, 2009
  5. Oct 24, 2009
  6. Oct 23, 2009
    • Douglas Gregor's avatar
      Eliminate QualifiedDeclRefExpr, which captured the notion of a · 4bd90e53
      Douglas Gregor authored
      qualified reference to a declaration that is not a non-static data
      member or non-static member function, e.g., 
      
        namespace N { int i; }
        int j = N::i;
      
      Instead, extend DeclRefExpr to optionally store the qualifier. Most
      clients won't see or care about the difference (since
      QualifierDeclRefExpr inherited DeclRefExpr). However, this reduces the
      number of top-level expression types that clients need to cope with,
      brings the implementation of DeclRefExpr into line with MemberExpr,
      and simplifies and unifies our handling of declaration references.
      
      Extended DeclRefExpr to (optionally) store explicitly-specified
      template arguments. This occurs when naming a declaration via a
      template-id (which will be stored in a TemplateIdRefExpr) that,
      following template argument deduction and (possibly) overload
      resolution, is replaced with a DeclRefExpr that refers to a template
      specialization but maintains the template arguments as written.
      
      llvm-svn: 84962
      4bd90e53
    • John McCall's avatar
      Emit calls using the canonical prototype of the called function. · 6fd4c233
      John McCall authored
      llvm-svn: 84947
      6fd4c233
    • Mike Stump's avatar
      Fixup the return type of functions. · ae2559a2
      Mike Stump authored
      llvm-svn: 84922
      ae2559a2
    • Fariborz Jahanian's avatar
      Complete code gen for '.*' binary expression for · ffba662d
      Fariborz Jahanian authored
      both scalar and aggregates.
      
      llvm-svn: 84910
      ffba662d
    • John McCall's avatar
      When building types from declarators, instead of building two types (one for · fc93cf97
      John McCall authored
      the DeclaratorInfo, one for semantic analysis), just build a single type whose
      canonical type will reflect the semantic analysis (assuming the type is
      well-formed, of course).
      
      To make that work, make a few changes to the type system:
      * allow the nominal pointee type of a reference type to be a (possibly sugared)
        reference type.  Also, preserve the original spelling of the reference type.
        Both of these can be ignored on canonical reference types.
      * Remove ObjCProtocolListType and preserve the associated source information on
        the various ObjC TypeLocs.  Preserve the spelling of protocol lists except in
        the canonical form.
      * Preserve some level of source type structure on parameter types, but
        canonicalize on the canonical function type.  This is still a WIP.
      
      Drops code size, makes strides towards accurate source location representation,
      slight (~1.7%) progression on Cocoa.h because of complexity drop.
      
      llvm-svn: 84907
      fc93cf97
  7. Oct 22, 2009
  8. Oct 21, 2009
  9. Oct 20, 2009
Loading