Skip to content
  1. Sep 09, 2009
  2. Sep 08, 2009
  3. Sep 07, 2009
  4. Sep 06, 2009
  5. Sep 05, 2009
  6. Sep 04, 2009
  7. Sep 03, 2009
    • Douglas Gregor's avatar
      Improve template instantiation for member access expressions that · 2b6ca46c
      Douglas Gregor authored
      involve qualified names, e.g., x->Base::f. We now maintain enough
      information in the AST to compare the results of the name lookup of
      "Base" in the scope of the postfix-expression (determined at template
      definition time) and in the type of the object expression.
      
      llvm-svn: 80953
      2b6ca46c
    • Fariborz Jahanian's avatar
      Mark constructors used in initialization of base(s) and fields · 59a1cd4a
      Fariborz Jahanian authored
      as referecned with location where they are used. Still
      need to look at destructor aspects of them.
      
      llvm-svn: 80950
      59a1cd4a
    • Fariborz Jahanian's avatar
      Issue diagnostics in variety of situations involving · 3501bcec
      Fariborz Jahanian authored
      reference/const data members when user has declared
      the constructor. This necessitated some non-minor
      refactoring.
      
      llvm-svn: 80934
      3501bcec
    • Douglas Gregor's avatar
      Improved handling for dependent, qualified member access expressions, e.g., · c26e0f62
      Douglas Gregor authored
        t->Base::f
      
      where t has a dependent type. We save the nested-name-specifier in the
      CXXUnresolvedMemberExpr then, during instantiation, substitute into
      the nested-name-specifier with the (transformed) object type of t, so
      that we get name lookup into the type of the object expression.
      
      Note that we do not yet retain information about name lookup into the
      lexical scope of the member access expression, so several regression
      tests are still disabled.
      
      llvm-svn: 80925
      c26e0f62
    • Fariborz Jahanian's avatar
      This patch does the following. · f15d4b60
      Fariborz Jahanian authored
      1) Issue digsnostics in non-fragile ABI, when an expression
         evaluates to an interface type (except when it is used to
         access a non-fragile ivar).
      2) Issue unsupported error in fragile ABI when an expression
         evaluates to an interface type (except when it is used to
         access a fragile ivar).
      
      llvm-svn: 80860
      f15d4b60
    • Douglas Gregor's avatar
      Add a wicked little test-case that illustrates what we have to deal · 64792e02
      Douglas Gregor authored
      with to properly support member access expressions in templates. This
      test is XFAIL'd, because we get it completely wrong, but I've made the
      minimal changes to the representation to at least avoid a crash.
      
      llvm-svn: 80856
      64792e02
    • Fariborz Jahanian's avatar
      Referenced instatiated default constructors · 3117e2b9
      Fariborz Jahanian authored
      must be defined. Fixed pr4853.
      
      llvm-svn: 80846
      3117e2b9
    • Douglas Gregor's avatar
      Rewrite of our handling of name lookup in C++ member access expressions, e.g., · b7bfe794
      Douglas Gregor authored
        x->Base::f
      
      We no longer try to "enter" the context of the type that "x" points
      to. Instead, we drag that object type through the parser and pass it
      into the Sema routines that need to know how to perform lookup within
      member access expressions.
      
      We now implement most of the crazy name lookup rules in C++
      [basic.lookup.classref] for non-templated code, including performing
      lookup both in the context of the type referred to by the member
      access and in the scope of the member access itself and then detecting
      ambiguities when the two lookups collide (p1 and p4; p3 and p7 are
      still TODO). This change also corrects our handling of name lookup
      within template arguments of template-ids inside the
      nested-name-specifier (p6; we used to look into the scope of the
      object expression for them) and fixes PR4703.
      
      I have disabled some tests that involve member access expressions
      where the object expression has dependent type, because we don't yet
      have the ability to describe dependent nested-name-specifiers starting
      with an identifier.
      
      llvm-svn: 80843
      b7bfe794
Loading