summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-03-09 23:48:35 +0000
committerDouglas Gregor <dgregor@apple.com>2009-03-09 23:48:35 +0000
commitc40290e452d44e4814f870152d36649347df7b3c (patch)
treee72e4f1c1ddb3599377cb9e12b0593d492d83747 /clang/lib/CodeGen/CodeGenModule.cpp
parentd5b35ee21574b31c9a9555a1c99eb83742544769 (diff)
downloadbcm5719-llvm-c40290e452d44e4814f870152d36649347df7b3c.tar.gz
bcm5719-llvm-c40290e452d44e4814f870152d36649347df7b3c.zip
Implement template instantiation for ClassTemplateSpecializationTypes,
such as replacing 'T' in vector<T>. There are a few aspects to this: - Extend TemplateArgument to allow arbitrary expressions (an Expr*), and switch ClassTemplateSpecializationType to store TemplateArguments rather than it's own type-or-expression representation. - ClassTemplateSpecializationType can now store dependent types. In that case, the canonical type is another ClassTemplateSpecializationType (with default template arguments expanded) rather than a declaration (we don't build Decls for dependent types). - Split ActOnClassTemplateId into ActOnClassTemplateId (called from the parser) and CheckClassTemplateId (called from ActOnClassTemplateId and InstantiateType). They're smart enough to handle dependent types, now. llvm-svn: 66509
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud