Skip to content
  1. May 30, 2009
  2. May 29, 2009
  3. May 28, 2009
    • Douglas Gregor's avatar
      Introduced DeclContext::isDependentContext, which determines whether a · 9e927abc
      Douglas Gregor authored
      given DeclContext is dependent on type parameters. Use this to
      properly determine whether a TagDecl is dependent; previously, we were
      missing the case where the TagDecl is a local class of a member
      function of a class template (phew!).
      
      Also, make sure that, when we instantiate declarations within a member
      function of a class template (or a function template, eventually),
      that we add those declarations to the "instantiated locals" map so
      that they can be found when instantiating declaration references.
      
      Unfortunately, I was not able to write a useful test for this change,
      although the assert() that fires when uncommenting the FIXME'd line in
      test/SemaTemplate/instantiate-declref.cpp tells the "experienced user"
      that we're now doing the right thing.
      
      llvm-svn: 72526
      9e927abc
    • Douglas Gregor's avatar
      Reimplement much of the way that we track nested classes in the · e44a2adf
      Douglas Gregor authored
      parser. Rather than placing all of the delayed member function
      declarations and inline definitions into a single bucket corresponding
      to the top-level class, we instead mirror the nesting structure of the
      nested classes and place the delayed member functions into their
      appropriate place. Then, when we actually parse the delayed member
      function declarations, set up the scope stack the same way as it was
      when we originally saw the declaration, so that we can find, e.g.,
      template parameters that are in scope.
      
      llvm-svn: 72502
      e44a2adf
    • Sebastian Redl's avatar
      Reintroduce the home for exception specs, and make Sema fill it. However, keep... · 5068f77a
      Sebastian Redl authored
      Reintroduce the home for exception specs, and make Sema fill it. However, keep the spec out of the canonical type this time. Net effect is currently nothing, because the spec isn't checked anywhere.
      
      llvm-svn: 72498
      5068f77a
  4. May 27, 2009
  5. May 26, 2009
  6. May 25, 2009
    • Chris Lattner's avatar
      tweak non-null check to put the caret on the function, but underline the · 23464b8f
      Chris Lattner authored
      argument.  This avoids the argument from being silenced when the argument is
      the NULL macro, which is defined in a system header.  This also makes the output
      a bit nicer, e.g.:
      
      t.c:8:3: warning: null passed to a callee which requires a non-null argument
        func1(NULL, cp2, i1);
        ^     ~~~~
      
      vs something like:
      
      t.c:8:10: warning: argument is null where non-null is required
        func1(NULL, cp2, i1);
              ^
      
      llvm-svn: 72393
      23464b8f
  7. May 23, 2009
    • Douglas Gregor's avatar
      Template instantiation for qualified declaration reference · 4a9f481d
      Douglas Gregor authored
      expressions. We are now missing template instantiation logic for only
      three classes of expressions:
        - Blocks-related expressions (BlockExpr, BlockDeclRefExpr)
        - C++ default argument expressions
        - Objective-C expressions
      
      Additionally, our handling of DeclRefExpr is still quite poor, since
      it cannot handle references to many kinds of declarations.
      
      As part of this change, converted the TemplateExprInstantiator to use
      iteration through all of the expressions via clang/AST/StmtNodes.def,
      ensuring that we don't forget to add template instantiation logic for
      any new expression node kinds.
      
      llvm-svn: 72303
      4a9f481d
    • Douglas Gregor's avatar
      Template instantiation for the GNU address-of-label extension. · 93fcf93b
      Douglas Gregor authored
      llvm-svn: 72301
      93fcf93b
Loading