Go to file
Douglas Gregor 9167f8bbd5 Introduce a new representation for template template
parameters. Rather than storing them as either declarations (for the
non-dependent case) or expressions (for the dependent case), we now
(always) store them as TemplateNames. 

The primary change here is to add a new kind of TemplateArgument,
which stores a TemplateName. However, making that change ripples to
every switch on a TemplateArgument's kind, also affecting
TemplateArgumentLocInfo/TemplateArgumentLoc, default template
arguments for template template parameters, type-checking of template
template arguments, etc.

This change is light on testing. It should fix several pre-existing
problems with template template parameters, such as:
  - the inability to use dependent template names as template template
  arguments
  - template template parameter default arguments cannot be
  instantiation

However, there are enough pieces missing that more implementation is
required before we can adequately test template template parameters. 

llvm-svn: 86777
2009-11-11 01:00:40 +00:00
clang Introduce a new representation for template template 2009-11-11 01:00:40 +00:00
compiler-rt Use __USER_LABEL_PREFIX__ so that we don't add a _ prefix on ELF. 2009-11-09 14:27:04 +00:00
llvm Add Triple::str() which returns the contents of the Triple as a string, as a more readable alternative to getTriple(). 2009-11-11 00:43:14 +00:00