diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-03-01 19:00:07 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-03-01 19:00:07 +0000 |
commit | aff9c1a03353d09cf9ad97e98e1a952c48cba941 (patch) | |
tree | 8ef02ed5313c2607b491c139261eaa687cbd36c6 /clang/test/SemaTemplate/instantiate-enum.cpp | |
parent | 12b02282d923f8d8f04d60ae0b943fd263d28fdb (diff) | |
download | bcm5719-llvm-aff9c1a03353d09cf9ad97e98e1a952c48cba941.tar.gz bcm5719-llvm-aff9c1a03353d09cf9ad97e98e1a952c48cba941.zip |
When instantiating a function-scoped enum, make sure that it and its
enumeration constants get placed into the local instantiation hash
table. Fixes PR6375.
llvm-svn: 97471
Diffstat (limited to 'clang/test/SemaTemplate/instantiate-enum.cpp')
-rw-r--r-- | clang/test/SemaTemplate/instantiate-enum.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/clang/test/SemaTemplate/instantiate-enum.cpp b/clang/test/SemaTemplate/instantiate-enum.cpp index 6f9aa4b116d..5353a92a90b 100644 --- a/clang/test/SemaTemplate/instantiate-enum.cpp +++ b/clang/test/SemaTemplate/instantiate-enum.cpp @@ -9,3 +9,19 @@ struct adder { }; int array1[adder<long, 3, 4>::value == 7? 1 : -1]; + +namespace PR6375 { + template<typename T> + void f() { + enum Enum + { + enumerator1 = 0xFFFFFFF, + enumerator2 = enumerator1 - 1 + }; + + int xb1 = enumerator1; + int xe1 = enumerator2; + } + + template void f<int>(); +} |