Go to file
Douglas Gregor 678d76c026 Introduce the notion of instantiation dependence into Clang's AST. A
type/expression/template argument/etc. is instantiation-dependent if
it somehow involves a template parameter, even if it doesn't meet the
requirements for the more common kinds of dependence (dependent type,
type-dependent expression, value-dependent expression).

When we see an instantiation-dependent type, we know we always need to
perform substitution into that instantiation-dependent type. This
keeps us from short-circuiting evaluation in places where we
shouldn't, and lets us properly implement C++0x [temp.type]p2.

In theory, this would also allow us to properly mangle
instantiation-dependent-but-not-dependent decltype types per the
Itanium C++ ABI, but we aren't quite there because we still mangle
based on the canonical type in cases like, e.g.,

  template<unsigned> struct A { };
  template<typename T>
    void f(A<sizeof(sizeof(decltype(T() + T())))>) { }
  template void f<int>(A<sizeof(sizeof(int))>);

and therefore get the wrong answer.

llvm-svn: 134225
2011-07-01 01:22:09 +00:00
clang Introduce the notion of instantiation dependence into Clang's AST. A 2011-07-01 01:22:09 +00:00
compiler-rt <rdar://problem/9624306> clean up darwin platform to use xcrun. Set up variables in darwin_bni.mk. Use GetCNAVar in AppleBI.mk 2011-06-21 00:07:55 +00:00
debuginfo-tests Testcase for r133065 2011-06-15 17:57:23 +00:00
libcxx _STD -> _VSTD to avoid macro clash on windows 2011-06-30 21:18:19 +00:00
libcxxabi In cxa_demangle.cpp, rewrite __parse_unresolved_name to reflect updated understanding and sync with updated clang mangling. Also fix think-o in __parse_encoding enabling the parsing of trailing .eh and .b. 2011-06-22 19:27:39 +00:00
lldb Add module docstring to the auto-generated lldb.py file. 2011-06-30 21:29:50 +00:00
llvm Improve Mips back-end's handling of DBG_VALUE. 2011-07-01 01:04:43 +00:00
polly ScheduleOpt: Prevectorize the innermost parallel loop 2011-06-30 20:29:20 +00:00