diff options
author | Peter Collingbourne <peter@pcc.me.uk> | 2010-12-15 15:06:14 +0000 |
---|---|---|
committer | Peter Collingbourne <peter@pcc.me.uk> | 2010-12-15 15:06:14 +0000 |
commit | 03007d79fe9c2428a93c114c9f96e150dcb66f2d (patch) | |
tree | 131ad53a135633fb8431f7ccad79b1004c3dc2ea /clang/test/Coverage/cxx-language-features.inc | |
parent | 0a2c41689416f4814e89f52c5d1ba63d566baa76 (diff) | |
download | bcm5719-llvm-03007d79fe9c2428a93c114c9f96e150dcb66f2d.tar.gz bcm5719-llvm-03007d79fe9c2428a93c114c9f96e150dcb66f2d.zip |
Sema: have BuildExpressionFromIntegralTemplateArgument produce well-formed IntegerLiterals
BuildExpressionFromIntegralTemplateArgument can produce malformed
IntegerLiterals with an EnumType if the template parameter type
is an EnumType. This breaks the AST printer which expects all
IntegerLiterals to have a plain integer type. Instead, give the
IntegerLiteral the enum's promotion type and wrap in an implicit cast
to the EnumType.
llvm-svn: 121862
Diffstat (limited to 'clang/test/Coverage/cxx-language-features.inc')
-rw-r--r-- | clang/test/Coverage/cxx-language-features.inc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/test/Coverage/cxx-language-features.inc b/clang/test/Coverage/cxx-language-features.inc index 51c11046a84..31b50be3358 100644 --- a/clang/test/Coverage/cxx-language-features.inc +++ b/clang/test/Coverage/cxx-language-features.inc @@ -19,3 +19,9 @@ class Base1 { class Base2 { }; class Derived1 : Base1, virtual public Base2 { }; + +/* Template classes, template functions */ +enum E1 { EC1 }; +template <E1 v> class C1 {}; +template <E1 v> C1<v> f1() { return C1<v>(); } +void f2() { f1<EC1>(); } |