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:
Sebastian Redl 2010-02-03 19:36:07 +00:00
Родитель b0f8eacfdc
Коммит 22c92406f4
2 изменённых файлов: 19 добавлений и 1 удалений

Просмотреть файл

@ -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) );
}