зеркало из https://github.com/microsoft/clang-1.git
Top-level const changes do not make a qualification conversion. Fixes PR6089.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95239 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
b0f8eacfdc
Коммит
22c92406f4
|
@ -1421,7 +1421,7 @@ Sema::IsQualificationConversion(QualType FromType, QualType ToType) {
|
||||||
|
|
||||||
// If FromType and ToType are the same type, this is not a
|
// If FromType and ToType are the same type, this is not a
|
||||||
// qualification conversion.
|
// qualification conversion.
|
||||||
if (FromType == ToType)
|
if (FromType.getUnqualifiedType() == ToType.getUnqualifiedType())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// (C++ 4.4p4):
|
// (C++ 4.4p4):
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
// RUN: %clang_cc1 -fsyntax-only -verify %s
|
||||||
|
|
||||||
|
bool is_char_ptr( const char* );
|
||||||
|
|
||||||
|
template< class T >
|
||||||
|
long is_char_ptr( T /* r */ );
|
||||||
|
|
||||||
|
// Note: the const here does not lead to a qualification conversion
|
||||||
|
template< class T >
|
||||||
|
void make_range( T* const r, bool );
|
||||||
|
|
||||||
|
template< class T >
|
||||||
|
void make_range( T& r, long );
|
||||||
|
|
||||||
|
void first_finder( const char*& Search )
|
||||||
|
{
|
||||||
|
make_range( Search, is_char_ptr(Search) );
|
||||||
|
}
|
Загрузка…
Ссылка в новой задаче