Skip to content
  1. Mar 22, 2009
  2. Mar 21, 2009
  3. Mar 20, 2009
  4. Mar 19, 2009
    • Douglas Gregor's avatar
      Variables marked as "extern" can actually have internal linkage if · 3731162a
      Douglas Gregor authored
      there is a previous declaration marked "static". This fixes PR3645.
      
      llvm-svn: 67336
      3731162a
    • Ted Kremenek's avatar
      Add test cases for PR 3820. · 67a3bb7a
      Ted Kremenek authored
      llvm-svn: 67327
      67a3bb7a
    • Fariborz Jahanian's avatar
      When looking for property name (or getter method) in a · d302bbd0
      Fariborz Jahanian authored
      dot-syntax expression after earching the list of protocols
      in the qualified-id, must keep searching the protocol list
      of each of the protocols in the list.
      
      llvm-svn: 67314
      d302bbd0
    • Douglas Gregor's avatar
      If a function is declared as, e.g., · 3729f240
      Douglas Gregor authored
        F f;
      
      where F is a typedef of a function type, then the function "f" has a
      prototype. This is a slight tweak to Chris's suggested fix in
      PR3817. Fixes PR3817 and PR3840.
      
      llvm-svn: 67313
      3729f240
    • Douglas Gregor's avatar
      Introduce a new expression type, UnresolvedDeclRefExpr, that describes · 90a1a651
      Douglas Gregor authored
      dependent qualified-ids such as
      
        Fibonacci<N - 1>::value
      
      where N is a template parameter. These references are "unresolved"
      because the name is dependent and, therefore, cannot be resolved to a
      declaration node (as we would do for a DeclRefExpr or
      QualifiedDeclRefExpr). UnresolvedDeclRefExprs instantiate to
      DeclRefExprs, QualifiedDeclRefExprs, etc.
      
      Also, be a bit more careful about keeping only a single set of
      specializations for a class template, and instantiating from the
      definition of that template rather than a previous declaration. In
      general, we need a better solution for this for all TagDecls, because
      it's too easy to accidentally look at a declaration that isn't the
      definition.
      
      We can now process a simple Fibonacci computation described as a
      template metaprogram.
      
      llvm-svn: 67308
      90a1a651
    • Daniel Dunbar's avatar
      IRgen support for alias of global variable. · 4e004ed1
      Daniel Dunbar authored
       - PR3818.
      
      llvm-svn: 67297
      4e004ed1
    • Douglas Gregor's avatar
      Print the context of tag types as part of pretty-printing, e.g., · 975e6d0c
      Douglas Gregor authored
        struct N::M::foo
      
      llvm-svn: 67284
      975e6d0c
    • Douglas Gregor's avatar
      Generalize printing of nested-name-specifier sequences for use in both · 18353910
      Douglas Gregor authored
      QualifiedNameType and QualifiedDeclRefExpr. We now keep track of the
      exact nested-name-specifier spelling for a QualifiedDeclRefExpr, and
      use that spelling when printing ASTs. This fixes PR3493.
      
      llvm-svn: 67283
      18353910
    • Douglas Gregor's avatar
      Extend the use of QualifiedNameType to the creation of class template · e177b725
      Douglas Gregor authored
      specialization names. This way, we keep track of sugared types like
      
        std::vector<Real>
      
      I believe we are now using QualifiedNameTypes everywhere we can. Next
      step: QualifiedDeclRefExprs.
      
      llvm-svn: 67268
      e177b725
    • Douglas Gregor's avatar
      Introduce a representation for types that we referred to via a · 5253768a
      Douglas Gregor authored
      qualified name, e.g., 
      
        foo::x
      
      so that we retain the nested-name-specifier as written in the source
      code and can reproduce that qualified name when printing the types
      back (e.g., in diagnostics). This is PR3493, which won't be complete
      until finished the other tasks mentioned near the end of this commit.
      
      The parser's representation of nested-name-specifiers, CXXScopeSpec,
      is now a bit fatter, because it needs to contain the scopes that
      precede each '::' and keep track of whether the global scoping
      operator '::' was at the beginning. For example, we need to keep track
      of the leading '::', 'foo', and 'bar' in
       
        ::foo::bar::x
      
      The Action's CXXScopeTy * is no longer a DeclContext *. It's now the
      opaque version of the new NestedNameSpecifier, which contains a single
      component of a nested-name-specifier (either a DeclContext * or a Type
      *, bitmangled). 
      
      The new sugar type QualifiedNameType composes a sequence of
      NestedNameSpecifiers with a representation of the type we're actually
      referring to. At present, we only build QualifiedNameType nodes within
      Sema::getTypeName. This will be extended to other type-constructing
      actions (e.g., ActOnClassTemplateId).
      
      Also on the way: QualifiedDeclRefExprs will also store a sequence of
      NestedNameSpecifiers, so that we can print out the property
      nested-name-specifier. I expect to also use this for handling
      dependent names like Fibonacci<I - 1>::value.
      
      llvm-svn: 67265
      5253768a
    • Ted Kremenek's avatar
      891642e4
    • Daniel Dunbar's avatar
      Driver: Fix bug in translating -O to clang, add clang-translation test · 7ef5ed6c
      Daniel Dunbar authored
      case.
      
      llvm-svn: 67257
      7ef5ed6c
  5. Mar 18, 2009
Loading