diff options
author | Eric Fiselier <eric@efcs.ca> | 2016-01-26 20:24:30 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2016-01-26 20:24:30 +0000 |
commit | 060cc200d05f461ede7bb066d94f854e3481e6ea (patch) | |
tree | 6e711415c3a9c186056b0c3afe4df2ad79f47ee1 /libcxx/test/std | |
parent | 1a6c7608b1f47dadf7adae8dbc1fb8345f7ff15e (diff) | |
download | bcm5719-llvm-060cc200d05f461ede7bb066d94f854e3481e6ea.tar.gz bcm5719-llvm-060cc200d05f461ede7bb066d94f854e3481e6ea.zip |
Fix PR26103 - Error calling is_convertible with incomplete type. Patch from Michael Daniels.
llvm-svn: 258852
Diffstat (limited to 'libcxx/test/std')
-rw-r--r-- | libcxx/test/std/utilities/meta/meta.rel/is_convertible.pass.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libcxx/test/std/utilities/meta/meta.rel/is_convertible.pass.cpp b/libcxx/test/std/utilities/meta/meta.rel/is_convertible.pass.cpp index 1681c39972d..144c292b84c 100644 --- a/libcxx/test/std/utilities/meta/meta.rel/is_convertible.pass.cpp +++ b/libcxx/test/std/utilities/meta/meta.rel/is_convertible.pass.cpp @@ -52,6 +52,11 @@ class NonCopyable { NonCopyable(NonCopyable&); }; +template <typename T> +class CannotInstantiate { + enum { X = T::ThisExpressionWillBlowUp }; +}; + int main() { // void @@ -206,4 +211,7 @@ int main() test_is_not_convertible<NonCopyable&, NonCopyable>(); #endif + // Ensure that CannotInstantiate is not instantiated by is_convertible when it is not needed. + // For example CannotInstantiate is instatiated as a part of ADL lookup for arguments of type CannotInstantiate*. + static_assert((std::is_convertible<CannotInstantiate<int>*, CannotInstantiate<int>*>::value), ""); } |