// NOTE: Relaxed and acq/rel atomics (for increment and decrement respectively)
// should be sufficient for thread safety.
-// See https://bugs.llvm.org/show_bug.cgi?id=22803
+// See https://llvm.org/PR22803
#if defined(__clang__) && __has_builtin(__atomic_add_fetch) \
&& defined(__ATOMIC_RELAXED) \
&& defined(__ATOMIC_ACQ_REL)
// <map>
// Previously this code caused a segfault when compiled at -O2 due to undefined
-// behavior in __tree. See https://bugs.llvm.org/show_bug.cgi?id=28469
+// behavior in __tree. See https://llvm.org/PR28469
#include <functional>
#include <map>
// class Allocator = allocator<pair<const Key, T>>>
// class map
-// https://bugs.llvm.org/show_bug.cgi?id=16538
-// https://bugs.llvm.org/show_bug.cgi?id=16549
+// https://llvm.org/PR16538
+// https://llvm.org/PR16549
#include <map>
#include <utility>
// mapped_type& operator[](const key_type& k);
-// https://bugs.llvm.org/show_bug.cgi?id=16542
+// https://llvm.org/PR16542
#include <map>
// std::find with vector<bool>::iterator
-// https://bugs.llvm.org/show_bug.cgi?id=16816
+// https://llvm.org/PR16816
#include <vector>
#include <algorithm>
// class Alloc = allocator<pair<const Key, T>>>
// class unordered_map
-// https://bugs.llvm.org/show_bug.cgi?id=16538
-// https://bugs.llvm.org/show_bug.cgi?id=16549
+// https://llvm.org/PR16538
+// https://llvm.org/PR16549
#include <unordered_map>
#include <cassert>
// mapped_type& operator[](const key_type& k);
-// https://bugs.llvm.org/show_bug.cgi?id=16542
+// https://llvm.org/PR16542
#include <unordered_map>
#include <tuple>
// UNSUPPORTED: c++03, c++11
-// See https://bugs.llvm.org/show_bug.cgi?id=33271
+// See https://llvm.org/PR33271
// UNSUPPORTED: ubsan
#include <experimental/coroutine>
// UNSUPPORTED: c++03, c++11
-// See https://bugs.llvm.org/show_bug.cgi?id=33271
+// See https://llvm.org/PR33271
// UNSUPPORTED: ubsan
#include <experimental/coroutine>
// basic_istream<charT,traits>&
// ignore(streamsize n = 1, int_type delim = traits::eof());
-// https://bugs.llvm.org/show_bug.cgi?id=16427
+// https://llvm.org/PR16427
#include <sstream>
#include <cassert>
assert(seekpos_called == 2);
assert(os.fail());
}
- { // See https://bugs.llvm.org/show_bug.cgi?id=21361
+ { // See https://llvm.org/PR21361
seekpos_called = 0;
testbuf<char> sb;
std::ostream os(&sb);
assert(seekoff_called == 2);
assert(os.fail());
}
- { // See https://bugs.llvm.org/show_bug.cgi?id=21361
+ { // See https://llvm.org/PR21361
seekoff_called = 0;
testbuf<char> sb;
std::ostream os(&sb);
// streamsize xsputn(const char_type* s, streamsize n);
-// Test https://bugs.llvm.org/show_bug.cgi?id=14074. The bug is really inside
+// Test https://llvm.org/PR14074. The bug is really inside
// basic_streambuf, but I can't seem to reproduce without going through one
// of its derived classes.
ss << i << ' ' << 123;
assert(ss.str() == L"456 1236 ");
}
- { // This is https://bugs.llvm.org/show_bug.cgi?id=33727
+ { // This is https://llvm.org/PR33727
typedef std::basic_string <char, std::char_traits<char>, NoDefaultAllocator<char> > S;
typedef std::basic_stringbuf<char, std::char_traits<char>, NoDefaultAllocator<char> > SB;
// const basic_regex<charT, traits>& e,
// regex_constants::match_flag_type flags = regex_constants::match_default);
-// https://bugs.llvm.org/show_bug.cgi?id=16135
+// https://llvm.org/PR16135
#include <string>
#include <regex>
int main(int, char**)
{
// This regex_iterator uses regex_search(__wrap_iter<_Iter> __first, ...)
- // Test for https://bugs.llvm.org/show_bug.cgi?id=16240 fixed in r185273.
+ // Test for https://llvm.org/PR16240 fixed in r185273.
{
std::string s("aaaa a");
std::regex re("\\ba");
// const basic_regex<charT, traits>& e,
// regex_constants::match_flag_type flags = regex_constants::match_default);
-// https://bugs.llvm.org/show_bug.cgi?id=11118
+// https://llvm.org/PR11118
#include <regex>
#include <cassert>
assert(std::regex_constants::nosubs != 0);
assert(std::regex_constants::optimize != 0);
assert(std::regex_constants::collate != 0);
-#ifdef _LIBCPP_ABI_REGEX_CONSTANTS_NONZERO // https://bugs.llvm.org/show_bug.cgi?id=35967
+#ifdef _LIBCPP_ABI_REGEX_CONSTANTS_NONZERO // https://llvm.org/PR35967
assert(std::regex_constants::ECMAScript != 0);
#else
assert(std::regex_constants::ECMAScript == 0);
assert((*i2).position() == 0);
assert((*i2).str() == "555-1234");
}
- { // https://bugs.llvm.org/show_bug.cgi?id=33681
+ { // https://llvm.org/PR33681
std::regex rex(".*");
const char foo[] = "foo";
// The -1 is because we don't want the implicit null from the array.
assert(error_badbackref_thrown("\\800000000000000000000000000000", std::regex_constants::ECMAScript)); // overflows
// this should NOT throw, because we only should look at the '1'
-// See https://bugs.llvm.org/show_bug.cgi?id=31387
+// See https://llvm.org/PR31387
{
const char *pat1 = "a(b)c\\1234";
std::regex re(pat1, pat1 + 7); // extra chars after the end.
assert(error_badbackref_thrown("\\(cat\\)\\10", std::regex::grep) == false);
assert(error_badbackref_thrown("(cat)\\10", std::regex::egrep) == false);
-// https://bugs.llvm.org/show_bug.cgi?id=34297
+// https://llvm.org/PR34297
assert(error_badbackref_thrown("(cat)\\1", std::regex::basic));
assert(error_badbackref_thrown("\\(cat\\)\\1", std::regex::basic) == false);
assert(error_badbackref_thrown("(cat)\\1", std::regex::extended) == false);
int main(int, char**)
{
// if __regex_word is not distinct from all the classes, bad things happen
-// See https://bugs.llvm.org/show_bug.cgi?id=26476 for an example.
+// See https://llvm.org/PR26476 for an example.
LIBCPP_ASSERT((std::ctype_base::space & std::regex_traits<char>::__regex_word) == 0);
LIBCPP_ASSERT((std::ctype_base::print & std::regex_traits<char>::__regex_word) == 0);
LIBCPP_ASSERT((std::ctype_base::cntrl & std::regex_traits<char>::__regex_word) == 0);
#endif
{
-// https://bugs.llvm.org/show_bug.cgi?id=31454
+// https://llvm.org/PR31454
std::basic_string<veryLarge> s;
veryLarge vl = {};
s.push_back(vl);
// UNSUPPORTED: with_system_cxx_lib=macosx10.9
// This test is designed to cause and allow TSAN to detect a race condition
-// in std::async, as reported in https://bugs.llvm.org/show_bug.cgi?id=38682.
+// in std::async, as reported in https://llvm.org/PR38682.
#include <cassert>
#include <functional>
// async(launch policy, F&& f, Args&&... args);
// This test is designed to cause and allow TSAN to detect the race condition
-// reported in PR23293: https://bugs.llvm.org/show_bug.cgi?id=23293
+// reported in PR23293: https://llvm.org/PR23293
#include <future>
#include <chrono>
// template<Returnable R, CopyConstructible Fn, CopyConstructible... Types>
// unspecified bind(Fn, Types...);
-// https://bugs.llvm.org/show_bug.cgi?id=23141
+// https://llvm.org/PR23141
#include <functional>
#include <type_traits>
// template<Returnable R, CopyConstructible Fn, CopyConstructible... Types>
// unspecified bind(Fn, Types...);
-// https://bugs.llvm.org/show_bug.cgi?id=16385
+// https://llvm.org/PR16385
#include <functional>
#include <cmath>
// template<Returnable R, CopyConstructible Fn, CopyConstructible... Types>
// unspecified bind(Fn, Types...);
-// https://bugs.llvm.org/show_bug.cgi?id=22003
+// https://llvm.org/PR22003
#include <functional>
// template<Returnable R, CopyConstructible Fn, CopyConstructible... Types>
// unspecified bind(Fn, Types...);
-// https://bugs.llvm.org/show_bug.cgi?id=16343
+// https://llvm.org/PR16343
#include <cmath>
#include <functional>
// <functional>
-// See https://bugs.llvm.org/show_bug.cgi?id=20002
+// See https://llvm.org/PR20002
#include <functional>
#include <type_traits>
// function(Fp);
// Ensure that __not_null works for all function types.
-// See https://bugs.llvm.org/show_bug.cgi?id=23589
+// See https://llvm.org/PR23589
// This test runs in C++03, but we have deprecated using std::function in C++03.
// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS
int main(int, char**)
{
globalMemCounter.reset();
- { // https://bugs.llvm.org/show_bug.cgi?id=18843
+ { // https://llvm.org/PR18843
std::shared_ptr<T const> t1(new T);
std::shared_ptr<T const> t2(std::make_shared<T>());
}
- { // https://bugs.llvm.org/show_bug.cgi?id=27115
+ { // https://llvm.org/PR27115
int x = 42;
std::shared_ptr<Bar> t1(new Bar(42));
assert(t1->shared_from_this() == t1);
}
void test_pointer_to_function() {
- { // https://bugs.llvm.org/show_bug.cgi?id=27566
+ { // https://llvm.org/PR27566
std::shared_ptr<Result()> x(&theFunction, &resultDeletor);
std::shared_ptr<Result()> y(theFunction, resultDeletor);
}
assert(p->get_char() == 'e');
}
- { // https://bugs.llvm.org/show_bug.cgi?id=24137
+ { // https://llvm.org/PR24137
std::shared_ptr<Foo> p1 = std::make_shared<Foo>();
assert(p1.get());
std::shared_ptr<const Foo> p2 = std::make_shared<const Foo>();
using Fn = void(*)();
-// https://bugs.llvm.org/show_bug.cgi?id=38638
+// https://llvm.org/PR38638
template <class T>
constexpr T pr38638(T v)
{
// when both #1 and #2 participate in partial ordering #2 will always
// be chosen over #1.
// See PR22806 and LWG issue #2549 for more information.
- // (https://bugs.llvm.org/show_bug.cgi?id=22806)
+ // (https://llvm.org/PR22806)
using T = std::tuple<int>;
std::allocator<int> A;
{ // rvalue reference
// NOTE: this constructor does not currently support tags derived from
// allocator_arg_t because libc++ has to deduce the parameter as a template
-// argument. See PR27684 (https://bugs.llvm.org/show_bug.cgi?id=27684)
+// argument. See PR27684 (https://llvm.org/PR27684)
#include <tuple>
#include <cassert>
#endif
}
-// See https://bugs.llvm.org/show_bug.cgi?id=31916
+// See https://llvm.org/PR31916
void test_caller_accepts_nonconst() {
struct A {};
struct Visitor {
if llvm_symbolizer is not None:
self.exec_env['ASAN_SYMBOLIZER_PATH'] = llvm_symbolizer
# FIXME: Turn ODR violation back on after PR28391 is resolved
- # https://bugs.llvm.org/show_bug.cgi?id=28391
+ # https://llvm.org/PR28391
self.exec_env['ASAN_OPTIONS'] = 'detect_odr_violation=0'
self.config.available_features.add('asan')
self.config.available_features.add('sanitizer-new-delete')