Skip to content
  1. Dec 06, 2008
    • Douglas Gregor's avatar
      Add support for calls to dependent names within templates, e.g., · b0846b0f
      Douglas Gregor authored
        template<typename T> void f(T x) {
          g(x); // g is a dependent name, so don't even bother to look it up
          g(); // error: g is not a dependent name
        }
      
      Note that when we see "g(", we build a CXXDependentNameExpr. However,
      if none of the call arguments are type-dependent, we will force the
      resolution of the name "g" and replace the CXXDependentNameExpr with
      its result.
      
      GCC actually produces a nice error message when you make this
      mistake, and even offers to compile your code with -fpermissive. I'll
      do the former next, but I don't plan to do the latter.
      
      llvm-svn: 60618
      b0846b0f
    • Dan Gohman's avatar
      Don't use plain %x to print pointer values. I had changed it from %p · 35e2cfcc
      Dan Gohman authored
      since %p isn't formatted consistently, but obviously plain %x is wrong.
      PRIxPTR with a cast to uintptr_t would work here, but that requires
      inconvenient build-system changes. %lu works on all current and
      foreseable future hosts.
      
      llvm-svn: 60616
      35e2cfcc
    • Douglas Gregor's avatar
      Introduce basic support for dependent types, type-dependent · 4619e439
      Douglas Gregor authored
      expressions, and value-dependent expressions. This permits us to parse
      some template definitions.
      
      This is not a complete solution; we're missing type- and
      value-dependent computations for most of the expression types, and
      we're missing checks for dependent types and type-dependent
      expressions throughout Sema.
      
      llvm-svn: 60615
      4619e439
  2. Dec 05, 2008
Loading