diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2017-02-23 02:09:03 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2017-02-23 02:09:03 +0000 |
commit | 1a04b13fd8f7b63a60f34c0e64dd184559ba8c74 (patch) | |
tree | d85b65e0a5e825cd89c5ab35cc3c64b5f924deaa /test/SemaCXX/make_integer_seq.cpp | |
parent | cf0ea16a2daa40c51bc75d21f109d9667cc88177 (diff) | |
download | clang-1a04b13fd8f7b63a60f34c0e64dd184559ba8c74.tar.gz |
Fix tracking of whether the previous template instantiation stack matches the current one.
Rather than attempting to compare whether the previous and current top of
context stack are "equal" (which fails for a number of reasons, such as the
context stack entries containing pointers to objects on the stack, or reaching
the same "top of stack" entry through two different paths), track the depth of
context stack at which we last emitted a note and invalidate it when we pop the
context stack to less than that depth.
This causes us to emit some missing "in instantiation of" notes and to stop
emitting redundant "in instantiation of" stacks matching the previous stack in
rare cases.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@295921 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/SemaCXX/make_integer_seq.cpp')
-rw-r--r-- | test/SemaCXX/make_integer_seq.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/test/SemaCXX/make_integer_seq.cpp b/test/SemaCXX/make_integer_seq.cpp index a9b8d2b23c..8f72ce15ee 100644 --- a/test/SemaCXX/make_integer_seq.cpp +++ b/test/SemaCXX/make_integer_seq.cpp @@ -43,7 +43,7 @@ enum Color : int { Red, Blue }; using illformed1 = ErrorSeq<Color, Blue>; // expected-note{{in instantiation}} -using illformed2 = ErrorSeq<int, -5>; +using illformed2 = ErrorSeq<int, -5>; // expected-note{{in instantiation}} template <typename T, T N> void f() {} __make_integer_seq<f, int, 0> x; // expected-error{{template template parameter must be a class template or type alias template}} |