mirror of git://gcc.gnu.org/git/gcc.git
functions.h (__gnu_debug::__check_string): Move...
2018-07-06 François Dumont <fdumont@gcc.gnu.org> * include/debug/functions.h (__gnu_debug::__check_string): Move... * include/debug/string (__gnu_debug::__check_string): ... here. (_GLIBCXX_DEBUG_VERIFY_STR_COND_AT): New. (__glibcxx_check_string_n_constructor): New. (__gnu_debug::basic_string<>(const _CharT*, size_type, const _Alloc&)): Use latter. (__glibcxx_check_string_constructor): New. (__gnu_debug::basic_string<>(const _CharT*, const _Alloc&)): Use latter. * testsuite/21_strings/basic_string/debug/1_neg.cc: New. * testsuite/21_strings/basic_string/debug/2_neg.cc: New. From-SVN: r262480
This commit is contained in:
parent
582d1f9049
commit
1e736a9531
|
|
@ -1,3 +1,17 @@
|
||||||
|
2018-07-06 François Dumont <fdumont@gcc.gnu.org>
|
||||||
|
|
||||||
|
* include/debug/functions.h (__gnu_debug::__check_string): Move...
|
||||||
|
* include/debug/string (__gnu_debug::__check_string): ... here.
|
||||||
|
(_GLIBCXX_DEBUG_VERIFY_STR_COND_AT): New.
|
||||||
|
(__glibcxx_check_string_n_constructor): New.
|
||||||
|
(__gnu_debug::basic_string<>(const _CharT*, size_type, const _Alloc&)):
|
||||||
|
Use latter.
|
||||||
|
(__glibcxx_check_string_constructor): New.
|
||||||
|
(__gnu_debug::basic_string<>(const _CharT*, const _Alloc&)):
|
||||||
|
Use latter.
|
||||||
|
* testsuite/21_strings/basic_string/debug/1_neg.cc: New.
|
||||||
|
* testsuite/21_strings/basic_string/debug/2_neg.cc: New.
|
||||||
|
|
||||||
2018-07-06 Jonathan Wakely <jwakely@redhat.com>
|
2018-07-06 Jonathan Wakely <jwakely@redhat.com>
|
||||||
|
|
||||||
PR libstdc++/84928 use std::move in <numeric> algorithms
|
PR libstdc++/84928 use std::move in <numeric> algorithms
|
||||||
|
|
|
||||||
|
|
@ -211,29 +211,6 @@ namespace __gnu_debug
|
||||||
return __foreign_iterator_aux(__it, __other, __other_end, _Integral());
|
return __foreign_iterator_aux(__it, __other, __other_end, _Integral());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Checks that __s is non-NULL or __n == 0, and then returns __s. */
|
|
||||||
template<typename _CharT, typename _Integer>
|
|
||||||
inline const _CharT*
|
|
||||||
__check_string(const _CharT* __s,
|
|
||||||
const _Integer& __n __attribute__((__unused__)))
|
|
||||||
{
|
|
||||||
#ifdef _GLIBCXX_DEBUG_PEDANTIC
|
|
||||||
__glibcxx_assert(__s != 0 || __n == 0);
|
|
||||||
#endif
|
|
||||||
return __s;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Checks that __s is non-NULL and then returns __s. */
|
|
||||||
template<typename _CharT>
|
|
||||||
inline const _CharT*
|
|
||||||
__check_string(const _CharT* __s)
|
|
||||||
{
|
|
||||||
#ifdef _GLIBCXX_DEBUG_PEDANTIC
|
|
||||||
__glibcxx_assert(__s != 0);
|
|
||||||
#endif
|
|
||||||
return __s;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Can't check if an input iterator sequence is sorted, because we
|
// Can't check if an input iterator sequence is sorted, because we
|
||||||
// can't step through the sequence.
|
// can't step through the sequence.
|
||||||
template<typename _InputIterator>
|
template<typename _InputIterator>
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,34 @@
|
||||||
|
// Copyright (C) 2018 Free Software Foundation, Inc.
|
||||||
|
//
|
||||||
|
// This file is part of the GNU ISO C++ Library. This library is free
|
||||||
|
// software; you can redistribute it and/or modify it under the
|
||||||
|
// terms of the GNU General Public License as published by the
|
||||||
|
// Free Software Foundation; either version 3, or (at your option)
|
||||||
|
// any later version.
|
||||||
|
//
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License along
|
||||||
|
// with this library; see the file COPYING3. If not see
|
||||||
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
// { dg-do run { xfail *-*-* } }
|
||||||
|
|
||||||
|
#define _GLIBCXX_DEBUG_PEDANTIC
|
||||||
|
|
||||||
|
#include <debug/string>
|
||||||
|
|
||||||
|
void test01()
|
||||||
|
{
|
||||||
|
const char* __null_str = 0;
|
||||||
|
__gnu_debug::string str(__null_str, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
test01();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
// Copyright (C) 2018 Free Software Foundation, Inc.
|
||||||
|
//
|
||||||
|
// This file is part of the GNU ISO C++ Library. This library is free
|
||||||
|
// software; you can redistribute it and/or modify it under the
|
||||||
|
// terms of the GNU General Public License as published by the
|
||||||
|
// Free Software Foundation; either version 3, or (at your option)
|
||||||
|
// any later version.
|
||||||
|
//
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License along
|
||||||
|
// with this library; see the file COPYING3. If not see
|
||||||
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
// { dg-do run { xfail *-*-* } }
|
||||||
|
|
||||||
|
#define _GLIBCXX_DEBUG_PEDANTIC
|
||||||
|
|
||||||
|
#include <debug/string>
|
||||||
|
|
||||||
|
void test01()
|
||||||
|
{
|
||||||
|
const char* __null_str = 0;
|
||||||
|
__gnu_debug::string str(__null_str);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
test01();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue