diff options
Diffstat (limited to 'chromium/buildtools/third_party/libc++/trunk/www')
16 files changed, 4061 insertions, 0 deletions
diff --git a/chromium/buildtools/third_party/libc++/trunk/www/atomic_design.html b/chromium/buildtools/third_party/libc++/trunk/www/atomic_design.html new file mode 100644 index 00000000000..67021b8736e --- /dev/null +++ b/chromium/buildtools/third_party/libc++/trunk/www/atomic_design.html @@ -0,0 +1,92 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ --> +<html> +<head> + <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> + <title><atomic> design</title> + <link type="text/css" rel="stylesheet" href="menu.css"> + <link type="text/css" rel="stylesheet" href="content.css"> +</head> + +<body> +<div id="menu"> + <div> + <a href="http://llvm.org/">LLVM Home</a> + </div> + + <div class="submenu"> + <label>libc++ Info</label> + <a href="/index.html">About</a> + </div> + + <div class="submenu"> + <label>Quick Links</label> + <a href="http://lists.llvm.org/mailman/listinfo/cfe-dev">cfe-dev</a> + <a href="http://lists.llvm.org/mailman/listinfo/cfe-commits">cfe-commits</a> + <a href="http://llvm.org/bugs/">Bug Reports</a> + <a href="http://llvm.org/svn/llvm-project/libcxx/trunk/">Browse SVN</a> + <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/">Browse ViewVC</a> + </div> +</div> + +<div id="content"> + <!--*********************************************************************--> + <h1><atomic> design</h1> + <!--*********************************************************************--> + +<p> +There are currently 3 designs under consideration. They differ in where most +of the implementation work is done. The functionality exposed to the customer +should be identical (and conforming) for all three designs. +</p> + +<ol type="A"> +<li> +<a href="atomic_design_a.html">Minimal work for the library</a> +</li> +<li> +<a href="atomic_design_b.html">Something in between</a> +</li> +<li> +<a href="atomic_design_c.html">Minimal work for the front end</a> +</li> +</ol> + +<p> +With any design, the (back end) compiler writer should note: +</p> + +<blockquote> +<p> +The decision to implement lock-free operations on any given type (or not) is an +ABI-binding decision. One can not change from treating a type as not lock free, +to lock free (or vice-versa) without breaking your ABI. +</p> + +<p> +Example: +</p> + +<blockquote><pre> +TU1.cc +----------- +extern atomic<long long> A; +int foo() { return A.compare_exchange_strong(w, x); } + +TU2.cc +----------- +extern atomic<long long> A; +void bar() { return A.compare_exchange_strong(y, z); } +</pre></blockquote> +</blockquote> + +<p> +If only <em>one</em> of these calls to <tt>compare_exchange_strong</tt> is +implemented with mutex-locked code, then that mutex-locked code will not be +executed mutually exclusively of the one implemented in a lock-free manner. +</p> + +</div> +</body> +</html> diff --git a/chromium/buildtools/third_party/libc++/trunk/www/atomic_design_a.html b/chromium/buildtools/third_party/libc++/trunk/www/atomic_design_a.html new file mode 100644 index 00000000000..8e9fef23f7e --- /dev/null +++ b/chromium/buildtools/third_party/libc++/trunk/www/atomic_design_a.html @@ -0,0 +1,309 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ --> +<html> +<head> + <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> + <title><atomic> design</title> + <link type="text/css" rel="stylesheet" href="menu.css"> + <link type="text/css" rel="stylesheet" href="content.css"> +</head> + +<body> +<div id="menu"> + <div> + <a href="http://llvm.org/">LLVM Home</a> + </div> + + <div class="submenu"> + <label>libc++ Info</label> + <a href="/index.html">About</a> + </div> + + <div class="submenu"> + <label>Quick Links</label> + <a href="http://lists.llvm.org/mailman/listinfo/cfe-dev">cfe-dev</a> + <a href="http://lists.llvm.org/mailman/listinfo/cfe-commits">cfe-commits</a> + <a href="http://llvm.org/bugs/">Bug Reports</a> + <a href="http://llvm.org/svn/llvm-project/libcxx/trunk/">Browse SVN</a> + <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/">Browse ViewVC</a> + </div> +</div> + +<div id="content"> + <!--*********************************************************************--> + <h1><atomic> design</h1> + <!--*********************************************************************--> + +<p> +The compiler supplies all of the intrinsics as described below. This list of +intrinsics roughly parallels the requirements of the C and C++ atomics +proposals. The C and C++ library implementations simply drop through to these +intrinsics. Anything the platform does not support in hardware, the compiler +arranges for a (compiler-rt) library call to be made which will do the job with +a mutex, and in this case ignoring the memory ordering parameter (effectively +implementing <tt>memory_order_seq_cst</tt>). +</p> + +<p> +Ultimate efficiency is preferred over run time error checking. Undefined +behavior is acceptable when the inputs do not conform as defined below. +</p> + +<blockquote><pre> +<font color="#C80000">// In every intrinsic signature below, type* atomic_obj may be a pointer to a</font> +<font color="#C80000">// volatile-qualified type.</font> +<font color="#C80000">// Memory ordering values map to the following meanings:</font> +<font color="#C80000">// memory_order_relaxed == 0</font> +<font color="#C80000">// memory_order_consume == 1</font> +<font color="#C80000">// memory_order_acquire == 2</font> +<font color="#C80000">// memory_order_release == 3</font> +<font color="#C80000">// memory_order_acq_rel == 4</font> +<font color="#C80000">// memory_order_seq_cst == 5</font> + +<font color="#C80000">// type must be trivially copyable</font> +<font color="#C80000">// type represents a "type argument"</font> +bool __atomic_is_lock_free(type); + +<font color="#C80000">// type must be trivially copyable</font> +<font color="#C80000">// Behavior is defined for mem_ord = 0, 1, 2, 5</font> +type __atomic_load(const type* atomic_obj, int mem_ord); + +<font color="#C80000">// type must be trivially copyable</font> +<font color="#C80000">// Behavior is defined for mem_ord = 0, 3, 5</font> +void __atomic_store(type* atomic_obj, type desired, int mem_ord); + +<font color="#C80000">// type must be trivially copyable</font> +<font color="#C80000">// Behavior is defined for mem_ord = [0 ... 5]</font> +type __atomic_exchange(type* atomic_obj, type desired, int mem_ord); + +<font color="#C80000">// type must be trivially copyable</font> +<font color="#C80000">// Behavior is defined for mem_success = [0 ... 5],</font> +<font color="#C80000">// mem_failure <= mem_success</font> +<font color="#C80000">// mem_failure != 3</font> +<font color="#C80000">// mem_failure != 4</font> +bool __atomic_compare_exchange_strong(type* atomic_obj, + type* expected, type desired, + int mem_success, int mem_failure); + +<font color="#C80000">// type must be trivially copyable</font> +<font color="#C80000">// Behavior is defined for mem_success = [0 ... 5],</font> +<font color="#C80000">// mem_failure <= mem_success</font> +<font color="#C80000">// mem_failure != 3</font> +<font color="#C80000">// mem_failure != 4</font> +bool __atomic_compare_exchange_weak(type* atomic_obj, + type* expected, type desired, + int mem_success, int mem_failure); + +<font color="#C80000">// type is one of: char, signed char, unsigned char, short, unsigned short, int,</font> +<font color="#C80000">// unsigned int, long, unsigned long, long long, unsigned long long,</font> +<font color="#C80000">// char16_t, char32_t, wchar_t</font> +<font color="#C80000">// Behavior is defined for mem_ord = [0 ... 5]</font> +type __atomic_fetch_add(type* atomic_obj, type operand, int mem_ord); + +<font color="#C80000">// type is one of: char, signed char, unsigned char, short, unsigned short, int,</font> +<font color="#C80000">// unsigned int, long, unsigned long, long long, unsigned long long,</font> +<font color="#C80000">// char16_t, char32_t, wchar_t</font> +<font color="#C80000">// Behavior is defined for mem_ord = [0 ... 5]</font> +type __atomic_fetch_sub(type* atomic_obj, type operand, int mem_ord); + +<font color="#C80000">// type is one of: char, signed char, unsigned char, short, unsigned short, int,</font> +<font color="#C80000">// unsigned int, long, unsigned long, long long, unsigned long long,</font> +<font color="#C80000">// char16_t, char32_t, wchar_t</font> +<font color="#C80000">// Behavior is defined for mem_ord = [0 ... 5]</font> +type __atomic_fetch_and(type* atomic_obj, type operand, int mem_ord); + +<font color="#C80000">// type is one of: char, signed char, unsigned char, short, unsigned short, int,</font> +<font color="#C80000">// unsigned int, long, unsigned long, long long, unsigned long long,</font> +<font color="#C80000">// char16_t, char32_t, wchar_t</font> +<font color="#C80000">// Behavior is defined for mem_ord = [0 ... 5]</font> +type __atomic_fetch_or(type* atomic_obj, type operand, int mem_ord); + +<font color="#C80000">// type is one of: char, signed char, unsigned char, short, unsigned short, int,</font> +<font color="#C80000">// unsigned int, long, unsigned long, long long, unsigned long long,</font> +<font color="#C80000">// char16_t, char32_t, wchar_t</font> +<font color="#C80000">// Behavior is defined for mem_ord = [0 ... 5]</font> +type __atomic_fetch_xor(type* atomic_obj, type operand, int mem_ord); + +<font color="#C80000">// Behavior is defined for mem_ord = [0 ... 5]</font> +void* __atomic_fetch_add(void** atomic_obj, ptrdiff_t operand, int mem_ord); +void* __atomic_fetch_sub(void** atomic_obj, ptrdiff_t operand, int mem_ord); + +<font color="#C80000">// Behavior is defined for mem_ord = [0 ... 5]</font> +void __atomic_thread_fence(int mem_ord); +void __atomic_signal_fence(int mem_ord); +</pre></blockquote> + +<p> +If desired the intrinsics taking a single <tt>mem_ord</tt> parameter can default +this argument to 5. +</p> + +<p> +If desired the intrinsics taking two ordering parameters can default +<tt>mem_success</tt> to 5, and <tt>mem_failure</tt> to +<tt>translate_memory_order(mem_success)</tt> where +<tt>translate_memory_order(mem_success)</tt> is defined as: +</p> + +<blockquote><pre> +int +translate_memory_order(int o) +{ + switch (o) + { + case 4: + return 2; + case 3: + return 0; + } + return o; +} +</pre></blockquote> + +<p> +Below are representative C++ implementations of all of the operations. Their +purpose is to document the desired semantics of each operation, assuming +<tt>memory_order_seq_cst</tt>. This is essentially the code that will be called +if the front end calls out to compiler-rt. +</p> + +<blockquote><pre> +template <class T> +T +__atomic_load(T const volatile* obj) +{ + unique_lock<mutex> _(some_mutex); + return *obj; +} + +template <class T> +void +__atomic_store(T volatile* obj, T desr) +{ + unique_lock<mutex> _(some_mutex); + *obj = desr; +} + +template <class T> +T +__atomic_exchange(T volatile* obj, T desr) +{ + unique_lock<mutex> _(some_mutex); + T r = *obj; + *obj = desr; + return r; +} + +template <class T> +bool +__atomic_compare_exchange_strong(T volatile* obj, T* exp, T desr) +{ + unique_lock<mutex> _(some_mutex); + if (std::memcmp(const_cast<T*>(obj), exp, sizeof(T)) == 0) <font color="#C80000">// if (*obj == *exp)</font> + { + std::memcpy(const_cast<T*>(obj), &desr, sizeof(T)); <font color="#C80000">// *obj = desr;</font> + return true; + } + std::memcpy(exp, const_cast<T*>(obj), sizeof(T)); <font color="#C80000">// *exp = *obj;</font> + return false; +} + +<font color="#C80000">// May spuriously return false (even if *obj == *exp)</font> +template <class T> +bool +__atomic_compare_exchange_weak(T volatile* obj, T* exp, T desr) +{ + unique_lock<mutex> _(some_mutex); + if (std::memcmp(const_cast<T*>(obj), exp, sizeof(T)) == 0) <font color="#C80000">// if (*obj == *exp)</font> + { + std::memcpy(const_cast<T*>(obj), &desr, sizeof(T)); <font color="#C80000">// *obj = desr;</font> + return true; + } + std::memcpy(exp, const_cast<T*>(obj), sizeof(T)); <font color="#C80000">// *exp = *obj;</font> + return false; +} + +template <class T> +T +__atomic_fetch_add(T volatile* obj, T operand) +{ + unique_lock<mutex> _(some_mutex); + T r = *obj; + *obj += operand; + return r; +} + +template <class T> +T +__atomic_fetch_sub(T volatile* obj, T operand) +{ + unique_lock<mutex> _(some_mutex); + T r = *obj; + *obj -= operand; + return r; +} + +template <class T> +T +__atomic_fetch_and(T volatile* obj, T operand) +{ + unique_lock<mutex> _(some_mutex); + T r = *obj; + *obj &= operand; + return r; +} + +template <class T> +T +__atomic_fetch_or(T volatile* obj, T operand) +{ + unique_lock<mutex> _(some_mutex); + T r = *obj; + *obj |= operand; + return r; +} + +template <class T> +T +__atomic_fetch_xor(T volatile* obj, T operand) +{ + unique_lock<mutex> _(some_mutex); + T r = *obj; + *obj ^= operand; + return r; +} + +void* +__atomic_fetch_add(void* volatile* obj, ptrdiff_t operand) +{ + unique_lock<mutex> _(some_mutex); + void* r = *obj; + (char*&)(*obj) += operand; + return r; +} + +void* +__atomic_fetch_sub(void* volatile* obj, ptrdiff_t operand) +{ + unique_lock<mutex> _(some_mutex); + void* r = *obj; + (char*&)(*obj) -= operand; + return r; +} + +void __atomic_thread_fence() +{ + unique_lock<mutex> _(some_mutex); +} + +void __atomic_signal_fence() +{ + unique_lock<mutex> _(some_mutex); +} +</pre></blockquote> + + +</div> +</body> +</html> diff --git a/chromium/buildtools/third_party/libc++/trunk/www/atomic_design_b.html b/chromium/buildtools/third_party/libc++/trunk/www/atomic_design_b.html new file mode 100644 index 00000000000..17ba9b3c1e3 --- /dev/null +++ b/chromium/buildtools/third_party/libc++/trunk/www/atomic_design_b.html @@ -0,0 +1,250 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ --> +<html> +<head> + <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> + <title><atomic> design</title> + <link type="text/css" rel="stylesheet" href="menu.css"> + <link type="text/css" rel="stylesheet" href="content.css"> +</head> + +<body> +<div id="menu"> + <div> + <a href="http://llvm.org/">LLVM Home</a> + </div> + + <div class="submenu"> + <label>libc++ Info</label> + <a href="/index.html">About</a> + </div> + + <div class="submenu"> + <label>Quick Links</label> + <a href="http://lists.llvm.org/mailman/listinfo/cfe-dev">cfe-dev</a> + <a href="http://lists.llvm.org/mailman/listinfo/cfe-commits">cfe-commits</a> + <a href="http://llvm.org/bugs/">Bug Reports</a> + <a href="http://llvm.org/svn/llvm-project/libcxx/trunk/">Browse SVN</a> + <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/">Browse ViewVC</a> + </div> +</div> + +<div id="content"> + <!--*********************************************************************--> + <h1><atomic> design</h1> + <!--*********************************************************************--> + +<p> +This is a variation of design A which puts the burden on the library to arrange +for the correct manipulation of the run time memory ordering arguments, and only +calls the compiler for well-defined memory orderings. I think of this design as +the worst of A and C, instead of the best of A and C. But I offer it as an +option in the spirit of completeness. +</p> + +<blockquote><pre> +<font color="#C80000">// type must be trivially copyable</font> +bool __atomic_is_lock_free(const type* atomic_obj); + +<font color="#C80000">// type must be trivially copyable</font> +type __atomic_load_relaxed(const volatile type* atomic_obj); +type __atomic_load_consume(const volatile type* atomic_obj); +type __atomic_load_acquire(const volatile type* atomic_obj); +type __atomic_load_seq_cst(const volatile type* atomic_obj); + +<font color="#C80000">// type must be trivially copyable</font> +type __atomic_store_relaxed(volatile type* atomic_obj, type desired); +type __atomic_store_release(volatile type* atomic_obj, type desired); +type __atomic_store_seq_cst(volatile type* atomic_obj, type desired); + +<font color="#C80000">// type must be trivially copyable</font> +type __atomic_exchange_relaxed(volatile type* atomic_obj, type desired); +type __atomic_exchange_consume(volatile type* atomic_obj, type desired); +type __atomic_exchange_acquire(volatile type* atomic_obj, type desired); +type __atomic_exchange_release(volatile type* atomic_obj, type desired); +type __atomic_exchange_acq_rel(volatile type* atomic_obj, type desired); +type __atomic_exchange_seq_cst(volatile type* atomic_obj, type desired); + +<font color="#C80000">// type must be trivially copyable</font> +bool __atomic_compare_exchange_strong_relaxed_relaxed(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_strong_consume_relaxed(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_strong_consume_consume(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_strong_acquire_relaxed(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_strong_acquire_consume(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_strong_acquire_acquire(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_strong_release_relaxed(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_strong_release_consume(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_strong_release_acquire(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_strong_acq_rel_relaxed(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_strong_acq_rel_consume(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_strong_acq_rel_acquire(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_strong_seq_cst_relaxed(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_strong_seq_cst_consume(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_strong_seq_cst_acquire(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_strong_seq_cst_seq_cst(volatile type* atomic_obj, + type* expected, + type desired); + +<font color="#C80000">// type must be trivially copyable</font> +bool __atomic_compare_exchange_weak_relaxed_relaxed(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_weak_consume_relaxed(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_weak_consume_consume(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_weak_acquire_relaxed(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_weak_acquire_consume(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_weak_acquire_acquire(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_weak_release_relaxed(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_weak_release_consume(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_weak_release_acquire(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_weak_acq_rel_relaxed(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_weak_acq_rel_consume(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_weak_acq_rel_acquire(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_weak_seq_cst_relaxed(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_weak_seq_cst_consume(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_weak_seq_cst_acquire(volatile type* atomic_obj, + type* expected, + type desired); +bool __atomic_compare_exchange_weak_seq_cst_seq_cst(volatile type* atomic_obj, + type* expected, + type desired); + +<font color="#C80000">// type is one of: char, signed char, unsigned char, short, unsigned short, int,</font> +<font color="#C80000">// unsigned int, long, unsigned long, long long, unsigned long long,</font> +<font color="#C80000">// char16_t, char32_t, wchar_t</font> +type __atomic_fetch_add_relaxed(volatile type* atomic_obj, type operand); +type __atomic_fetch_add_consume(volatile type* atomic_obj, type operand); +type __atomic_fetch_add_acquire(volatile type* atomic_obj, type operand); +type __atomic_fetch_add_release(volatile type* atomic_obj, type operand); +type __atomic_fetch_add_acq_rel(volatile type* atomic_obj, type operand); +type __atomic_fetch_add_seq_cst(volatile type* atomic_obj, type operand); + +<font color="#C80000">// type is one of: char, signed char, unsigned char, short, unsigned short, int,</font> +<font color="#C80000">// unsigned int, long, unsigned long, long long, unsigned long long,</font> +<font color="#C80000">// char16_t, char32_t, wchar_t</font> +type __atomic_fetch_sub_relaxed(volatile type* atomic_obj, type operand); +type __atomic_fetch_sub_consume(volatile type* atomic_obj, type operand); +type __atomic_fetch_sub_acquire(volatile type* atomic_obj, type operand); +type __atomic_fetch_sub_release(volatile type* atomic_obj, type operand); +type __atomic_fetch_sub_acq_rel(volatile type* atomic_obj, type operand); +type __atomic_fetch_sub_seq_cst(volatile type* atomic_obj, type operand); + +<font color="#C80000">// type is one of: char, signed char, unsigned char, short, unsigned short, int,</font> +<font color="#C80000">// unsigned int, long, unsigned long, long long, unsigned long long,</font> +<font color="#C80000">// char16_t, char32_t, wchar_t</font> +type __atomic_fetch_and_relaxed(volatile type* atomic_obj, type operand); +type __atomic_fetch_and_consume(volatile type* atomic_obj, type operand); +type __atomic_fetch_and_acquire(volatile type* atomic_obj, type operand); +type __atomic_fetch_and_release(volatile type* atomic_obj, type operand); +type __atomic_fetch_and_acq_rel(volatile type* atomic_obj, type operand); +type __atomic_fetch_and_seq_cst(volatile type* atomic_obj, type operand); + +<font color="#C80000">// type is one of: char, signed char, unsigned char, short, unsigned short, int,</font> +<font color="#C80000">// unsigned int, long, unsigned long, long long, unsigned long long,</font> +<font color="#C80000">// char16_t, char32_t, wchar_t</font> +type __atomic_fetch_or_relaxed(volatile type* atomic_obj, type operand); +type __atomic_fetch_or_consume(volatile type* atomic_obj, type operand); +type __atomic_fetch_or_acquire(volatile type* atomic_obj, type operand); +type __atomic_fetch_or_release(volatile type* atomic_obj, type operand); +type __atomic_fetch_or_acq_rel(volatile type* atomic_obj, type operand); +type __atomic_fetch_or_seq_cst(volatile type* atomic_obj, type operand); + +<font color="#C80000">// type is one of: char, signed char, unsigned char, short, unsigned short, int,</font> +<font color="#C80000">// unsigned int, long, unsigned long, long long, unsigned long long,</font> +<font color="#C80000">// char16_t, char32_t, wchar_t</font> +type __atomic_fetch_xor_relaxed(volatile type* atomic_obj, type operand); +type __atomic_fetch_xor_consume(volatile type* atomic_obj, type operand); +type __atomic_fetch_xor_acquire(volatile type* atomic_obj, type operand); +type __atomic_fetch_xor_release(volatile type* atomic_obj, type operand); +type __atomic_fetch_xor_acq_rel(volatile type* atomic_obj, type operand); +type __atomic_fetch_xor_seq_cst(volatile type* atomic_obj, type operand); + +void* __atomic_fetch_add_relaxed(void* volatile* atomic_obj, ptrdiff_t operand); +void* __atomic_fetch_add_consume(void* volatile* atomic_obj, ptrdiff_t operand); +void* __atomic_fetch_add_acquire(void* volatile* atomic_obj, ptrdiff_t operand); +void* __atomic_fetch_add_release(void* volatile* atomic_obj, ptrdiff_t operand); +void* __atomic_fetch_add_acq_rel(void* volatile* atomic_obj, ptrdiff_t operand); +void* __atomic_fetch_add_seq_cst(void* volatile* atomic_obj, ptrdiff_t operand); + +void* __atomic_fetch_sub_relaxed(void* volatile* atomic_obj, ptrdiff_t operand); +void* __atomic_fetch_sub_consume(void* volatile* atomic_obj, ptrdiff_t operand); +void* __atomic_fetch_sub_acquire(void* volatile* atomic_obj, ptrdiff_t operand); +void* __atomic_fetch_sub_release(void* volatile* atomic_obj, ptrdiff_t operand); +void* __atomic_fetch_sub_acq_rel(void* volatile* atomic_obj, ptrdiff_t operand); +void* __atomic_fetch_sub_seq_cst(void* volatile* atomic_obj, ptrdiff_t operand); + +void __atomic_thread_fence_relaxed(); +void __atomic_thread_fence_consume(); +void __atomic_thread_fence_acquire(); +void __atomic_thread_fence_release(); +void __atomic_thread_fence_acq_rel(); +void __atomic_thread_fence_seq_cst(); + +void __atomic_signal_fence_relaxed(); +void __atomic_signal_fence_consume(); +void __atomic_signal_fence_acquire(); +void __atomic_signal_fence_release(); +void __atomic_signal_fence_acq_rel(); +void __atomic_signal_fence_seq_cst(); +</pre></blockquote> + +</div> +</body> +</html> diff --git a/chromium/buildtools/third_party/libc++/trunk/www/atomic_design_c.html b/chromium/buildtools/third_party/libc++/trunk/www/atomic_design_c.html new file mode 100644 index 00000000000..9c92b884704 --- /dev/null +++ b/chromium/buildtools/third_party/libc++/trunk/www/atomic_design_c.html @@ -0,0 +1,458 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ --> +<html> +<head> + <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> + <title><atomic> design</title> + <link type="text/css" rel="stylesheet" href="menu.css"> + <link type="text/css" rel="stylesheet" href="content.css"> +</head> + +<body> +<div id="menu"> + <div> + <a href="http://llvm.org/">LLVM Home</a> + </div> + + <div class="submenu"> + <label>libc++ Info</label> + <a href="/index.html">About</a> + </div> + + <div class="submenu"> + <label>Quick Links</label> + <a href="http://lists.llvm.org/mailman/listinfo/cfe-dev">cfe-dev</a> + <a href="http://lists.llvm.org/mailman/listinfo/cfe-commits">cfe-commits</a> + <a href="http://llvm.org/bugs/">Bug Reports</a> + <a href="http://llvm.org/svn/llvm-project/libcxx/trunk/">Browse SVN</a> + <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/">Browse ViewVC</a> + </div> +</div> + +<div id="content"> + <!--*********************************************************************--> + <h1><atomic> design</h1> + <!--*********************************************************************--> + +<p> +The <tt><atomic></tt> header is one of the most closely coupled headers to +the compiler. Ideally when you invoke any function from +<tt><atomic></tt>, it should result in highly optimized assembly being +inserted directly into your application ... assembly that is not otherwise +representable by higher level C or C++ expressions. The design of the libc++ +<tt><atomic></tt> header started with this goal in mind. A secondary, but +still very important goal is that the compiler should have to do minimal work to +facilitate the implementation of <tt><atomic></tt>. Without this second +goal, then practically speaking, the libc++ <tt><atomic></tt> header would +be doomed to be a barely supported, second class citizen on almost every +platform. +</p> + +<p>Goals:</p> + +<blockquote><ul> +<li>Optimal code generation for atomic operations</li> +<li>Minimal effort for the compiler to achieve goal 1 on any given platform</li> +<li>Conformance to the C++0X draft standard</li> +</ul></blockquote> + +<p> +The purpose of this document is to inform compiler writers what they need to do +to enable a high performance libc++ <tt><atomic></tt> with minimal effort. +</p> + +<h2>The minimal work that must be done for a conforming <tt><atomic></tt></h2> + +<p> +The only "atomic" operations that must actually be lock free in +<tt><atomic></tt> are represented by the following compiler intrinsics: +</p> + +<blockquote><pre> +__atomic_flag__ +__atomic_exchange_seq_cst(__atomic_flag__ volatile* obj, __atomic_flag__ desr) +{ + unique_lock<mutex> _(some_mutex); + __atomic_flag__ result = *obj; + *obj = desr; + return result; +} + +void +__atomic_store_seq_cst(__atomic_flag__ volatile* obj, __atomic_flag__ desr) +{ + unique_lock<mutex> _(some_mutex); + *obj = desr; +} +</pre></blockquote> + +<p> +Where: +</p> + +<blockquote><ul> +<li> +If <tt>__has_feature(__atomic_flag)</tt> evaluates to 1 in the preprocessor then +the compiler must define <tt>__atomic_flag__</tt> (e.g. as a typedef to +<tt>int</tt>). +</li> +<li> +If <tt>__has_feature(__atomic_flag)</tt> evaluates to 0 in the preprocessor then +the library defines <tt>__atomic_flag__</tt> as a typedef to <tt>bool</tt>. +</li> +<li> +<p> +To communicate that the above intrinsics are available, the compiler must +arrange for <tt>__has_feature</tt> to return 1 when fed the intrinsic name +appended with an '_' and the mangled type name of <tt>__atomic_flag__</tt>. +</p> +<p> +For example if <tt>__atomic_flag__</tt> is <tt>unsigned int</tt>: +</p> +<blockquote><pre> +__has_feature(__atomic_flag) == 1 +__has_feature(__atomic_exchange_seq_cst_j) == 1 +__has_feature(__atomic_store_seq_cst_j) == 1 + +typedef unsigned int __atomic_flag__; + +unsigned int __atomic_exchange_seq_cst(unsigned int volatile*, unsigned int) +{ + // ... +} + +void __atomic_store_seq_cst(unsigned int volatile*, unsigned int) +{ + // ... +} +</pre></blockquote> +</li> +</ul></blockquote> + +<p> +That's it! Compiler writers do the above and you've got a fully conforming +(though sub-par performance) <tt><atomic></tt> header! +</p> + +<h2>Recommended work for a higher performance <tt><atomic></tt></h2> + +<p> +It would be good if the above intrinsics worked with all integral types plus +<tt>void*</tt>. Because this may not be possible to do in a lock-free manner for +all integral types on all platforms, a compiler must communicate each type that +an intrinsic works with. For example if <tt>__atomic_exchange_seq_cst</tt> works +for all types except for <tt>long long</tt> and <tt>unsigned long long</tt> +then: +</p> + +<blockquote><pre> +__has_feature(__atomic_exchange_seq_cst_b) == 1 // bool +__has_feature(__atomic_exchange_seq_cst_c) == 1 // char +__has_feature(__atomic_exchange_seq_cst_a) == 1 // signed char +__has_feature(__atomic_exchange_seq_cst_h) == 1 // unsigned char +__has_feature(__atomic_exchange_seq_cst_Ds) == 1 // char16_t +__has_feature(__atomic_exchange_seq_cst_Di) == 1 // char32_t +__has_feature(__atomic_exchange_seq_cst_w) == 1 // wchar_t +__has_feature(__atomic_exchange_seq_cst_s) == 1 // short +__has_feature(__atomic_exchange_seq_cst_t) == 1 // unsigned short +__has_feature(__atomic_exchange_seq_cst_i) == 1 // int +__has_feature(__atomic_exchange_seq_cst_j) == 1 // unsigned int +__has_feature(__atomic_exchange_seq_cst_l) == 1 // long +__has_feature(__atomic_exchange_seq_cst_m) == 1 // unsigned long +__has_feature(__atomic_exchange_seq_cst_Pv) == 1 // void* +</pre></blockquote> + +<p> +Note that only the <tt>__has_feature</tt> flag is decorated with the argument +type. The name of the compiler intrinsic is not decorated, but instead works +like a C++ overloaded function. +</p> + +<p> +Additionally there are other intrinsics besides +<tt>__atomic_exchange_seq_cst</tt> and <tt>__atomic_store_seq_cst</tt>. They +are optional. But if the compiler can generate faster code than provided by the +library, then clients will benefit from the compiler writer's expertise and +knowledge of the targeted platform. +</p> + +<p> +Below is the complete list of <i>sequentially consistent</i> intrinsics, and +their library implementations. Template syntax is used to indicate the desired +overloading for integral and void* types. The template does not represent a +requirement that the intrinsic operate on <em>any</em> type! +</p> + +<blockquote><pre> +T is one of: bool, char, signed char, unsigned char, short, unsigned short, + int, unsigned int, long, unsigned long, + long long, unsigned long long, char16_t, char32_t, wchar_t, void* + +template <class T> +T +__atomic_load_seq_cst(T const volatile* obj) +{ + unique_lock<mutex> _(some_mutex); + return *obj; +} + +template <class T> +void +__atomic_store_seq_cst(T volatile* obj, T desr) +{ + unique_lock<mutex> _(some_mutex); + *obj = desr; +} + +template <class T> +T +__atomic_exchange_seq_cst(T volatile* obj, T desr) +{ + unique_lock<mutex> _(some_mutex); + T r = *obj; + *obj = desr; + return r; +} + +template <class T> +bool +__atomic_compare_exchange_strong_seq_cst_seq_cst(T volatile* obj, T* exp, T desr) +{ + unique_lock<mutex> _(some_mutex); + if (std::memcmp(const_cast<T*>(obj), exp, sizeof(T)) == 0) + { + std::memcpy(const_cast<T*>(obj), &desr, sizeof(T)); + return true; + } + std::memcpy(exp, const_cast<T*>(obj), sizeof(T)); + return false; +} + +template <class T> +bool +__atomic_compare_exchange_weak_seq_cst_seq_cst(T volatile* obj, T* exp, T desr) +{ + unique_lock<mutex> _(some_mutex); + if (std::memcmp(const_cast<T*>(obj), exp, sizeof(T)) == 0) + { + std::memcpy(const_cast<T*>(obj), &desr, sizeof(T)); + return true; + } + std::memcpy(exp, const_cast<T*>(obj), sizeof(T)); + return false; +} + +T is one of: char, signed char, unsigned char, short, unsigned short, + int, unsigned int, long, unsigned long, + long long, unsigned long long, char16_t, char32_t, wchar_t + +template <class T> +T +__atomic_fetch_add_seq_cst(T volatile* obj, T operand) +{ + unique_lock<mutex> _(some_mutex); + T r = *obj; + *obj += operand; + return r; +} + +template <class T> +T +__atomic_fetch_sub_seq_cst(T volatile* obj, T operand) +{ + unique_lock<mutex> _(some_mutex); + T r = *obj; + *obj -= operand; + return r; +} + +template <class T> +T +__atomic_fetch_and_seq_cst(T volatile* obj, T operand) +{ + unique_lock<mutex> _(some_mutex); + T r = *obj; + *obj &= operand; + return r; +} + +template <class T> +T +__atomic_fetch_or_seq_cst(T volatile* obj, T operand) +{ + unique_lock<mutex> _(some_mutex); + T r = *obj; + *obj |= operand; + return r; +} + +template <class T> +T +__atomic_fetch_xor_seq_cst(T volatile* obj, T operand) +{ + unique_lock<mutex> _(some_mutex); + T r = *obj; + *obj ^= operand; + return r; +} + +void* +__atomic_fetch_add_seq_cst(void* volatile* obj, ptrdiff_t operand) +{ + unique_lock<mutex> _(some_mutex); + void* r = *obj; + (char*&)(*obj) += operand; + return r; +} + +void* +__atomic_fetch_sub_seq_cst(void* volatile* obj, ptrdiff_t operand) +{ + unique_lock<mutex> _(some_mutex); + void* r = *obj; + (char*&)(*obj) -= operand; + return r; +} + +void __atomic_thread_fence_seq_cst() +{ + unique_lock<mutex> _(some_mutex); +} + +void __atomic_signal_fence_seq_cst() +{ + unique_lock<mutex> _(some_mutex); +} +</pre></blockquote> + +<p> +One should consult the (currently draft) +<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3126.pdf">C++ standard</a> +for the details of the definitions for these operations. For example +<tt>__atomic_compare_exchange_weak_seq_cst_seq_cst</tt> is allowed to fail +spuriously while <tt>__atomic_compare_exchange_strong_seq_cst_seq_cst</tt> is +not. +</p> + +<p> +If on your platform the lock-free definition of +<tt>__atomic_compare_exchange_weak_seq_cst_seq_cst</tt> would be the same as +<tt>__atomic_compare_exchange_strong_seq_cst_seq_cst</tt>, you may omit the +<tt>__atomic_compare_exchange_weak_seq_cst_seq_cst</tt> intrinsic without a +performance cost. The library will prefer your implementation of +<tt>__atomic_compare_exchange_strong_seq_cst_seq_cst</tt> over its own +definition for implementing +<tt>__atomic_compare_exchange_weak_seq_cst_seq_cst</tt>. That is, the library +will arrange for <tt>__atomic_compare_exchange_weak_seq_cst_seq_cst</tt> to call +<tt>__atomic_compare_exchange_strong_seq_cst_seq_cst</tt> if you supply an +intrinsic for the strong version but not the weak. +</p> + +<h2>Taking advantage of weaker memory synchronization</h2> + +<p> +So far all of the intrinsics presented require a <em>sequentially +consistent</em> memory ordering. That is, no loads or stores can move across +the operation (just as if the library had locked that internal mutex). But +<tt><atomic></tt> supports weaker memory ordering operations. In all, +there are six memory orderings (listed here from strongest to weakest): +</p> + +<blockquote><pre> +memory_order_seq_cst +memory_order_acq_rel +memory_order_release +memory_order_acquire +memory_order_consume +memory_order_relaxed +</pre></blockquote> + +<p> +(See the +<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3126.pdf">C++ standard</a> +for the detailed definitions of each of these orderings). +</p> + +<p> +On some platforms, the compiler vendor can offer some or even all of the above +intrinsics at one or more weaker levels of memory synchronization. This might +lead for example to not issuing an <tt>mfence</tt> instruction on the x86. +</p> + +<p> +If the compiler does not offer any given operation, at any given memory ordering +level, the library will automatically attempt to call the next highest memory +ordering operation. This continues up to <tt>seq_cst</tt>, and if that doesn't +exist, then the library takes over and does the job with a <tt>mutex</tt>. This +is a compile-time search & selection operation. At run time, the +application will only see the few inlined assembly instructions for the selected +intrinsic. +</p> + +<p> +Each intrinsic is appended with the 7-letter name of the memory ordering it +addresses. For example a <tt>load</tt> with <tt>relaxed</tt> ordering is +defined by: +</p> + +<blockquote><pre> +T __atomic_load_relaxed(const volatile T* obj); +</pre></blockquote> + +<p> +And announced with: +</p> + +<blockquote><pre> +__has_feature(__atomic_load_relaxed_b) == 1 // bool +__has_feature(__atomic_load_relaxed_c) == 1 // char +__has_feature(__atomic_load_relaxed_a) == 1 // signed char +... +</pre></blockquote> + +<p> +The <tt>__atomic_compare_exchange_strong(weak)</tt> intrinsics are parameterized +on two memory orderings. The first ordering applies when the operation returns +<tt>true</tt> and the second ordering applies when the operation returns +<tt>false</tt>. +</p> + +<p> +Not every memory ordering is appropriate for every operation. <tt>exchange</tt> +and the <tt>fetch_<i>op</i></tt> operations support all 6. But <tt>load</tt> +only supports <tt>relaxed</tt>, <tt>consume</tt>, <tt>acquire</tt> and <tt>seq_cst</tt>. +<tt>store</tt> +only supports <tt>relaxed</tt>, <tt>release</tt>, and <tt>seq_cst</tt>. The +<tt>compare_exchange</tt> operations support the following 16 combinations out +of the possible 36: +</p> + +<blockquote><pre> +relaxed_relaxed +consume_relaxed +consume_consume +acquire_relaxed +acquire_consume +acquire_acquire +release_relaxed +release_consume +release_acquire +acq_rel_relaxed +acq_rel_consume +acq_rel_acquire +seq_cst_relaxed +seq_cst_consume +seq_cst_acquire +seq_cst_seq_cst +</pre></blockquote> + +<p> +Again, the compiler supplies intrinsics only for the strongest orderings where +it can make a difference. The library takes care of calling the weakest +supplied intrinsic that is as strong or stronger than the customer asked for. +</p> + +</div> +</body> +</html> diff --git a/chromium/buildtools/third_party/libc++/trunk/www/content.css b/chromium/buildtools/third_party/libc++/trunk/www/content.css new file mode 100644 index 00000000000..dca6a329143 --- /dev/null +++ b/chromium/buildtools/third_party/libc++/trunk/www/content.css @@ -0,0 +1,27 @@ +html { margin: 0px; } body { margin: 8px; } + +html, body { + padding:0px; + font-size:small; font-family:"Lucida Grande", "Lucida Sans Unicode", Arial, Verdana, Helvetica, sans-serif; background-color: #fff; color: #222; + line-height:1.5; +} + +h1, h2, h3, tt { color: #000 } + +h1 { padding-top:0px; margin-top:0px;} +h2 { color:#333333; padding-top:0.5em; } +h3 { padding-top: 0.5em; margin-bottom: -0.25em; color:#2d58b7} +li { padding-bottom: 0.5em; } +ul { padding-left:1.5em; } + +/* Slides */ +IMG.img_slide { + display: block; + margin-left: auto; + margin-right: auto +} + +.itemTitle { color:#2d58b7 } + +/* Tables */ +tr { vertical-align:top } diff --git a/chromium/buildtools/third_party/libc++/trunk/www/cxx1y_status.html b/chromium/buildtools/third_party/libc++/trunk/www/cxx1y_status.html new file mode 100644 index 00000000000..f28d67a7dd3 --- /dev/null +++ b/chromium/buildtools/third_party/libc++/trunk/www/cxx1y_status.html @@ -0,0 +1,277 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ --> +<html> +<head> + <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> + <title>libc++ C++1Y Status</title> + <link type="text/css" rel="stylesheet" href="menu.css"> + <link type="text/css" rel="stylesheet" href="content.css"> +</head> + +<body> +<div id="menu"> + <div> + <a href="http://llvm.org/">LLVM Home</a> + </div> + + <div class="submenu"> + <label>libc++ Info</label> + <a href="/index.html">About</a> + </div> + + <div class="submenu"> + <label>Quick Links</label> + <a href="http://lists.llvm.org/mailman/listinfo/cfe-dev">cfe-dev</a> + <a href="http://lists.llvm.org/mailman/listinfo/cfe-commits">cfe-commits</a> + <a href="http://llvm.org/bugs/">Bug Reports</a> + <a href="http://llvm.org/svn/llvm-project/libcxx/trunk/">Browse SVN</a> + <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/">Browse ViewVC</a> + </div> +</div> + +<div id="content"> + <!--*********************************************************************--> + <h1>libc++ C++1Y Status</h1> + <!--*********************************************************************--> + + <p>In April 2013, the C++ standard committee approved the draft for the next version of the C++ standard, known as "C++1Y" (probably to be C++14)</p> + <p>The draft standard includes papers and issues that were voted on at the previous three meetings (Kona, Portland, and Bristol)</p> + <p>This page shows the status of libc++; the status of clang's support of the language features is <a href="http://clang.llvm.org/cxx_status.html">here</a>.</p> + + <p>The groups that have contributed papers: + <ul> + <li>CWG - Core Language Working group</li> + <li>LWG - Library working group</li> + <li>SG1 - Study group #1 (Concurrency working group)</li> + </ul> + </p> + + <h3>Paper Status</h3> + <table id="papers" border="1"> + <tr><th>Paper #</th><th>Group</th><th>Paper Name</th><th>Meeting</th><th>Status</th><th>First released version</th></tr> + + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3346.pdf">3346</a></td><td>LWG</td><td>Terminology for Container Element Requirements - Rev 1</td><td>Kona</td><td>Complete</td><td>3.4</td></tr> + <tr><td></td><td></td><td></td><td></td><td></td><td></td></tr> + +<!-- <tr><td>3323</td><td>CWG</td><td>A Proposal to Tweak Certain C++ Contextual Conversions, v3</td><td>Portland</td><td></td><td></td></tr> --> + + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3421.htm">3421</a></td><td>LWG</td><td>Making Operator Functors greater<></td><td>Portland</td><td>Complete</td><td>3.4</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3462.html">3462</a></td><td>LWG</td><td>std::result_of and SFINAE</td><td>Portland</td><td>Complete</td><td>3.4</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3469.html">3469</a></td><td>LWG</td><td>Constexpr Library Additions: chrono, v3</td><td>Portland</td><td>Complete</td><td>3.4</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3470.html">3470</a></td><td>LWG</td><td>Constexpr Library Additions: containers, v2</td><td>Portland</td><td>Complete</td><td>3.4</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3471.html">3471</a></td><td>LWG</td><td>Constexpr Library Additions: utilities, v3</td><td>Portland</td><td>Complete</td><td>3.4</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3302.html">3302</a></td><td>LWG</td><td>Constexpr Library Additions: complex, v2</td><td>Portland</td><td>Complete</td><td>3.4</td></tr> + <tr><td></td><td></td><td></td><td></td><td></td><td></td></tr> + +<!-- <tr><td>3472</td><td>CWG</td><td>Binary Literals in the C++ Core Language</td><td>Bristol</td><td></td><td></td></tr> --> +<!-- <tr><td>3624</td><td>CWG</td><td>Core Issue 1512: Pointer comparison vs qualification conversions (revision 3)</td><td>Bristol</td><td></td><td></td></tr> --> +<!-- <tr><td>3639</td><td>CWG</td><td>Runtime-sized arrays with automatic storage duration (revision 5)</td><td>Bristol</td><td></td><td></td></tr> --> +<!-- <tr><td>3638</td><td>CWG</td><td>Return type deduction for normal functions</td><td>Bristol</td><td></td><td></td></tr> --> +<!-- <tr><td>3648</td><td>CWG</td><td>Wording Changes for Generalized Lambda-capture</td><td>Bristol</td><td></td><td></td></tr> --> +<!-- <tr><td>3653</td><td>CWG</td><td>Member initializers and aggregates</td><td>Bristol</td><td></td><td></td></tr> --> +<!-- <tr><td>3667</td><td>CWG</td><td>Drafting for Core 1402</td><td>Bristol</td><td></td><td></td></tr> --> +<!-- <tr><td>3652</td><td>CWG</td><td>Relaxing constraints on constexpr functions" and "constexpr member functions and implicit const</td><td>Bristol</td><td></td><td></td></tr> --> +<!-- <tr><td>3664</td><td>CWG</td><td>Clarifying Memory Allocation</td><td>Bristol</td><td></td><td></td></tr> --> +<!-- <tr><td>3651</td><td>CWG</td><td>Variable Templates (Revision 1)</td><td>Bristol</td><td></td><td></td></tr> --> +<!-- <tr><td>3649</td><td>CWG</td><td>Generic (Polymorphic) Lambda Expressions (Revision 3)</td><td>Bristol</td><td></td><td></td></tr> --> + + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3545.pdf">3545</a></td><td>LWG</td><td>An Incremental Improvement to integral_constant</td><td>Bristol</td><td>Complete</td><td>3.4</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3644.pdf">3644</a></td><td>LWG</td><td>Null Forward Iterators</td><td>Bristol</td><td>Complete</td><td>3.4</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3668.html">3668</a></td><td>LWG</td><td>std::exchange()</td><td>Bristol</td><td>Complete</td><td>3.4</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3658.html">3658</a></td><td>LWG</td><td>Compile-time integer sequences</td><td>Bristol</td><td>Complete</td><td>3.4</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3670.html">3670</a></td><td>LWG</td><td>Addressing Tuples by Type</td><td>Bristol</td><td>Complete</td><td>3.4</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3671.html">3671</a></td><td>LWG</td><td>Making non-modifying sequence operations more robust</td><td>Bristol</td><td>Complete</td><td>3.4</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3656.htm">3656</a></td><td>LWG</td><td>make_unique</td><td>Bristol</td><td>Complete</td><td>3.4</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3654.html">3654</a></td><td>LWG</td><td>Quoted Strings</td><td>Bristol</td><td>Complete</td><td>3.4</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3642.pdf">3642</a></td><td>LWG</td><td>User-defined Literals</td><td>Bristol</td><td>Complete</td><td>3.4</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3655.pdf">3655</a></td><td>LWG</td><td>TransformationTraits Redux (excluding part 4)</td><td>Bristol</td><td>Complete</td><td>3.4</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3657.htm">3657</a></td><td>LWG</td><td>Adding heterogeneous comparison lookup to associative containers</td><td>Bristol</td><td>Complete</td><td>3.4</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3672.html">3672</a></td><td>LWG</td><td>A proposal to add a utility class to represent optional objects</td><td>Bristol</td><td><I>Removed from Draft Standard</I></td><td>n/a</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3669.pdf">3669</a></td><td>LWG</td><td>Fixing constexpr member functions without const</td><td>Bristol</td><td>Complete</td><td>3.4</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3662.html">3662</a></td><td>LWG</td><td>C++ Dynamic Arrays (dynarray)</td><td>Bristol</td><td><I>Removed from Draft Standard</I></td><td>n/a</td></tr> + + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3659.html">3659</a></td><td>SG1</td><td>Shared Locking in C++</td><td>Bristol</td><td>Complete</td><td>3.4</td></tr> + + <tr><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3779.pdf">3779</a></td><td>LWG</td><td>User-defined Literals for std::complex</td><td>Chicago</td><td>Complete</td><td>3.4</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3789.htm">3789</a></td><td>LWG</td><td>Constexpr Library Additions: functional</td><td>Chicago</td><td>Complete</td><td>3.4</td></tr> + <tr><td></td><td></td><td></td><td></td><td></td><td></td></tr> + + <tr><td><a href="http://isocpp.org/files/papers/N3924.pdf">3924</a></td><td>LWG</td><td>Discouraging rand() in C++14</td><td>Issaquah</td><td>Complete</td><td>3.5</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3887">3887</a></td><td>LWG</td><td>Consistent Metafunction Aliases</td><td>Issaquah</td><td>Complete</td><td>3.5</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3891">3891</a></td><td>SG1</td><td>A proposal to rename shared_mutex to shared_timed_mutex</td><td>Issaquah</td><td>Complete</td><td>3.5</td></tr> + +<!-- <tr><td></td><td></td><td></td><td></td><td></td><td></td></tr> --> + </table> + + <h3>Library Working group Issues Status</h3> +<!-- <I>Note: "NAD" means that the issue was deemed "Not a defect"</I> --> + <table id="issues" border="1"> + <tr><th>Issue #</th><th>Issue Name</th><th>Meeting</th><th>Status</th></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#1214">1214</a></td><td>Insufficient/inconsistent key immutability requirements for associative containers</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2009">2009</a></td><td>Reporting out-of-bound values on numeric string conversions</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2010">2010</a></td><td>is_* traits for binding operations can't be meaningfully specialized</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2015">2015</a></td><td>Incorrect pre-conditions for some type traits</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2021">2021</a></td><td>Further incorrect usages of result_of</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2028">2028</a></td><td>messages_base::catalog overspecified</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2033">2033</a></td><td>Preconditions of reserve, shrink_to_fit, and resize functions</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2039">2039</a></td><td>Issues with std::reverse and std::copy_if</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2044">2044</a></td><td>No definition of "Stable" for copy algorithms</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2045">2045</a></td><td>forward_list::merge and forward_list::splice_after with unequal allocators</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2047">2047</a></td><td>Incorrect "mixed" move-assignment semantics of unique_ptr</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2050">2050</a></td><td>Unordered associative containers do not use allocator_traits to define member types</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2053">2053</a></td><td>Errors in regex bitmask types</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2061">2061</a></td><td>make_move_iterator and arrays</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2064">2064</a></td><td>More noexcept issues in basic_string</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2065">2065</a></td><td>Minimal allocator interface</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2067">2067</a></td><td>packaged_task should have deleted copy c'tor with const parameter</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2069">2069</a></td><td>Inconsistent exception spec for basic_string move constructor</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2096">2096</a></td><td>Incorrect constraints of future::get in regard to MoveAssignable</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2102">2102</a></td><td>Why is std::launch an implementation-defined type?</td><td>Kona</td><td>Complete</td></tr> + <tr><td></td><td></td><td></td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2071">2071</a></td><td>std::valarray move-assignment</td><td>Portland</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2074">2074</a></td><td>Off by one error in std::reverse_copy</td><td>Portland</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2081">2081</a></td><td>Allocator requirements should include CopyConstructible</td><td>Portland</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2083">2083</a></td><td>const-qualification on weak_ptr::owner_before</td><td>Portland</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2086">2086</a></td><td>Overly generic type support for math functions</td><td>Portland</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2099">2099</a></td><td>Unnecessary constraints of va_start() usage</td><td>Portland</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2103">2103</a></td><td>std::allocator_traits<std::allocator<T>>::propagate_on_container_move_assignment</td><td>Portland</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2105">2105</a></td><td>Inconsistent requirements on const_iterator's value_type</td><td>Portland</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2110">2110</a></td><td>remove can't swap but note says it might</td><td>Portland</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2123">2123</a></td><td>merge() allocator requirements for lists versus forward lists</td><td>Portland</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2005">2005</a></td><td>unordered_map::insert(T&&) protection should apply to map too</td><td>Portland</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2011">2011</a></td><td>Unexpected output required of strings</td><td>Portland</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2048">2048</a></td><td>Unnecessary mem_fn overloads</td><td>Portland</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2049">2049</a></td><td>is_destructible is underspecified</td><td>Portland</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2056">2056</a></td><td>future_errc enums start with value 0 (invalid value for broken_promise)</td><td>Portland</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2058">2058</a></td><td>valarray and begin/end</td><td>Portland</td><td>Complete</td></tr> + <tr><td></td><td></td><td></td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2091">2091</a></td><td>Misplaced effect in m.try_lock_for()</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2092">2092</a></td><td>Vague Wording for condition_variable_any</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2093">2093</a></td><td>Throws clause of condition_variable::wait with predicate</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2094">2094</a></td><td>duration conversion overflow shouldn't participate in overload resolution</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2122">2122</a></td><td>merge() stability for lists versus forward lists</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2128">2128</a></td><td>Absence of global functions cbegin/cend</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2145">2145</a></td><td>error_category default constructor</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2147">2147</a></td><td>Unclear hint type in Allocator's allocate function</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2148">2148</a></td><td>Hashing enums should be supported directly by std::hash</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2149">2149</a></td><td>Concerns about 20.8/5</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2162">2162</a></td><td>allocator_traits::max_size missing noexcept</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2163">2163</a></td><td>nth_element requires inconsistent post-conditions</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2169">2169</a></td><td>Missing reset() requirements in unique_ptr specialization</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2172">2172</a></td><td>Does atomic_compare_exchange_* accept v == nullptr arguments?</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2080">2080</a></td><td>Specify when once_flag becomes invalid</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2098">2098</a></td><td>promise throws clauses</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2109">2109</a></td><td>Incorrect requirements for hash specializations</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2130">2130</a></td><td>missing ordering constraints for fences</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2138">2138</a></td><td>atomic_flag::clear ordering constraints</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2140">2140</a></td><td>notify_all_at_thread_exit synchronization</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2144">2144</a></td><td>Missing noexcept specification in type_index</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2174">2174</a></td><td>wstring_convert::converted() should be noexcept</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2175">2175</a></td><td>string_convert and wbuffer_convert validity</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2176">2176</a></td><td>Special members for wstring_convert and wbuffer_convert</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2177">2177</a></td><td>Requirements on Copy/MoveInsertable</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2185">2185</a></td><td>Missing throws clause for future/shared_future::wait_for/wait_until</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2187">2187</a></td><td>vector<bool> is missing emplace and emplace_back member functions</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2190">2190</a></td><td>ordering of condition variable operations, reflects Posix discussion</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2196">2196</a></td><td>Specification of is_*[copy/move]_[constructible/assignable] unclear for non-referencable types</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2197">2197</a></td><td>Specification of is_[un]signed unclear for non-arithmetic types</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2200">2200</a></td><td>Data race avoidance for all containers, not only for sequences</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2203">2203</a></td><td>scoped_allocator_adaptor uses wrong argument types for piecewise construction</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2207">2207</a></td><td>basic_string::at should not have a Requires clause</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2209">2209</a></td><td>assign() overspecified for sequence containers</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2210">2210</a></td><td>Missing allocator-extended constructor for allocator-aware containers</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2211">2211</a></td><td>Replace ambiguous use of "Allocator" in container requirements</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2222">2222</a></td><td>Inconsistency in description of forward_list::splice_after single-element overload</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2225">2225</a></td><td>Unrealistic header inclusion checks required</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2229">2229</a></td><td>Standard code conversion facets underspecified</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2231">2231</a></td><td>DR 704 removes complexity guarantee for clear()</td><td>Bristol</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2235">2235</a></td><td>Undefined behavior without proper requirements on basic_string constructors</td><td>Bristol</td><td>Complete</td></tr> + <tr><td></td><td></td><td></td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2141">2141</a></td><td>common_type trait produces reference types</td><td>Chicago</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2246">2246</a></td><td>unique_ptr assignment effects w.r.t. deleter</td><td>Chicago</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2247">2247</a></td><td>Type traits and std::nullptr_t</td><td>Chicago</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2085">2085</a></td><td>Wrong description of effect 1 of basic_istream::ignore</td><td>Chicago</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2087">2087</a></td><td>iostream_category() and noexcept</td><td>Chicago</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2143">2143</a></td><td>ios_base::xalloc should be thread-safe</td><td>Chicago</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2150">2150</a></td><td>Unclear specification of find_end</td><td>Chicago</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2180">2180</a></td><td>Exceptions from std::seed_seq operations</td><td>Chicago</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2194">2194</a></td><td>Impossible container requirements for adaptor types</td><td>Chicago</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2013">2013</a></td><td>Do library implementers have the freedom to add constexpr?</td><td>Chicago</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2018">2018</a></td><td>regex_traits::isctype Returns clause is wrong</td><td>Chicago</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2078">2078</a></td><td>Throw specification of async() incomplete</td><td>Chicago</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2097">2097</a></td><td>packaged_task constructors should be constrained</td><td>Chicago</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2100">2100</a></td><td>Timed waiting functions cannot timeout if launch::async policy used</td><td>Chicago</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2120">2120</a></td><td>What should async do if neither 'async' nor 'deferred' is set in policy?</td><td>Chicago</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2159">2159</a></td><td>atomic_flag initialization</td><td>Chicago</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2275">2275</a></td><td>Why is forward_as_tuple not constexpr?</td><td>Chicago</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2284">2284</a></td><td>Inconsistency in allocator_traits::max_size</td><td>Chicago</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2298">2298</a></td><td>is_nothrow_constructible is always false because of create<></td><td>Chicago</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2300">2300</a></td><td>Redundant sections for map and multimap members should be removed</td><td>Chicago</td><td>Complete</td></tr> + <tr><td>NB comment: GB9</td> <td>Remove gets from C++14</td><td>Chicago</td><td>Complete</td></tr> + <tr><td></td><td></td><td></td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2135">2135</a></td><td>Unclear requirement for exceptions thrown in condition_variable::wait()</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2291">2291</a></td><td>std::hash is vulnerable to collision DoS attack</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2142">2142</a></td><td>packaged_task::operator() synchronization too broad?</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2240">2240</a></td><td>Probable misuse of term "function scope" in [thread.condition]</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2252">2252</a></td><td>Strong guarantee on vector::push_back() still broken with C++11?</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2257">2257</a></td><td>Simplify container requirements with the new algorithms</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2268">2268</a></td><td>Setting a default argument in the declaration of a member function assign of std::basic_string</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2271">2271</a></td><td>regex_traits::lookup_classname specification unclear</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2272">2272</a></td><td>quoted should use char_traits::eq for character comparison</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2278">2278</a></td><td>User-defined literals for Standard Library types</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2280">2280</a></td><td>begin / end for arrays should be constexpr and noexcept</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2285">2285</a></td><td>make_reverse_iterator</td><td>Issaquah</td><td>Complete</td></tr> + + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2299">2299</a></td><td>Effects of inaccessible key_compare::is_transparent type are not clear</td><td>Issaquah</td><td>Complete</td></tr> + + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#1450">1450</a></td><td>Contradiction in regex_constants</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2003">2003</a></td><td>String exception inconsistency in erase.</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2112">2112</a></td><td>User-defined classes that cannot be derived from</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2132">2132</a></td><td>std::function ambiguity</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2182">2182</a></td><td>Container::[const_]reference types are misleadingly specified</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2188">2188</a></td><td>Reverse iterator does not fully support targets that overload operator&</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2193">2193</a></td><td>Default constructors for standard library containers are explicit</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2205">2205</a></td><td>Problematic postconditions of regex_match and regex_search</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2213">2213</a></td><td>Return value of std::regex_replace</td><td>Issaquah</td><td>Complete</td></tr> + + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2258">2258</a></td><td>a.erase(q1, q2) unable to directly return q2</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2263">2263</a></td><td>Comparing iterators and allocator pointers with different const-character</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2293">2293</a></td><td>Wrong facet used by num_put::do_put</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2301">2301</a></td><td>Why is std::tie not constexpr?</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2304">2304</a></td><td>Complexity of count in unordered associative containers</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2306">2306</a></td><td>match_results::reference should be value_type&, not const value_type&</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2308">2308</a></td><td>Clarify container destructor requirements w.r.t. std::array</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2313">2313</a></td><td>tuple_size should always derive from integral_constant<size_t, N></td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2314">2314</a></td><td>apply() should return decltype(auto) and use decay_t before tuple_size</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2315">2315</a></td><td>weak_ptr should be movable</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2316">2316</a></td><td>weak_ptr::lock() should be atomic</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2317">2317</a></td><td>The type property queries should be UnaryTypeTraits returning size_t</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2320">2320</a></td><td>select_on_container_copy_construction() takes allocators, not containers</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2322">2322</a></td><td>Associative(initializer_list, stuff) constructors are underspecified</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2323">2323</a></td><td>vector::resize(n, t)'s specification should be simplified</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2324">2324</a></td><td>Insert iterator constructors should use addressof()</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2329">2329</a></td><td>regex_match()/regex_search() with match_results should forbid temporary strings</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2330">2330</a></td><td>regex("meow", regex::icase) is technically forbidden but should be permitted</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2332">2332</a></td><td>regex_iterator/regex_token_iterator should forbid temporary regexes</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2339">2339</a></td><td>Wording issue in nth_element</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2341">2341</a></td><td>Inconsistency between basic_ostream::seekp(pos) and basic_ostream::seekp(off, dir)</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2344">2344</a></td><td>quoted()'s interaction with padding is unclear</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2346">2346</a></td><td>integral_constant's member functions should be marked noexcept</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2350">2350</a></td><td>min, max, and minmax should be constexpr</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2356">2356</a></td><td>Stability of erasure in unordered associative containers</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2357">2357</a></td><td>Remaining "Assignable" requirement</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2359">2359</a></td><td>How does regex_constants::nosubs affect basic_regex::mark_count()?</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2360">2360</a></td><td>reverse_iterator::operator*() is unimplementable</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2104">2104</a></td><td>unique_lock move-assignment should not be noexcept</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2186">2186</a></td><td>Incomplete action on async/launch::deferred</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2075">2075</a></td><td>Progress guarantees, lock-free property, and scheduling assumptions</td><td>Issaquah</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2288">2288</a></td><td>Inconsistent requirements for shared mutexes</td><td>Issaquah</td><td>Complete</td></tr> +<!-- <tr><td></td><td></td><td></td><td></td></tr> --> + </table> + + <p>Last Updated: 25-Mar-2014</p> +</div> +</body> +</html> diff --git a/chromium/buildtools/third_party/libc++/trunk/www/cxx1z_status.html b/chromium/buildtools/third_party/libc++/trunk/www/cxx1z_status.html new file mode 100644 index 00000000000..42bc3d76032 --- /dev/null +++ b/chromium/buildtools/third_party/libc++/trunk/www/cxx1z_status.html @@ -0,0 +1,198 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ --> +<html> +<head> + <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> + <title>libc++ C++1Z Status</title> + <link type="text/css" rel="stylesheet" href="menu.css"> + <link type="text/css" rel="stylesheet" href="content.css"> +</head> + +<body> +<div id="menu"> + <div> + <a href="http://llvm.org/">LLVM Home</a> + </div> + + <div class="submenu"> + <label>libc++ Info</label> + <a href="/index.html">About</a> + </div> + + <div class="submenu"> + <label>Quick Links</label> + <a href="http://lists.llvm.org/mailman/listinfo/cfe-dev">cfe-dev</a> + <a href="http://lists.llvm.org/mailman/listinfo/cfe-commits">cfe-commits</a> + <a href="http://llvm.org/bugs/">Bug Reports</a> + <a href="http://llvm.org/svn/llvm-project/libcxx/trunk/">Browse SVN</a> + <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/">Browse ViewVC</a> + </div> +</div> + +<div id="content"> + <!--*********************************************************************--> + <h1>libc++ C++1z Status</h1> + <!--*********************************************************************--> + + <p>In November 2014, the C++ standard committee created a draft for the next version of the C++ standard, known here as "C++1z" (probably to be C++17)</p> + <p>This page shows the status of libc++; the status of clang's support of the language features is <a href="http://clang.llvm.org/cxx_status.html#cxx17">here</a>.</p> + + <p>The groups that have contributed papers: + <ul> + <li>LWG - Library working group</li> + <li>CWG - Core Language Working group</li> + <li>SG1 - Study group #1 (Concurrency working group)</li> + </ul> + </p> + + <h3>Paper Status</h3> + <table id="papers" border="1"> + <tr><th>Paper #</th><th>Group</th><th>Paper Name</th><th>Meeting</th><th>Status</th><th>First released version</th></tr> +<!-- + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3346.pdf">3346</a></td><td>LWG</td><td>Terminology for Container Element Requirements - Rev 1</td><td>Kona</td><td>Complete</td><td>3.4</td></tr> +--> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3911">N3911</a></td><td>LWG</td></td><td>TransformationTrait Alias <code>void_t</code>.</td><td>Urbana</td><td>Complete</td><td>3.6</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4089">N4089</a></td><td>LWG</td></td><td>Safe conversions in <code>unique_ptr<T[]></code>.</td><td>Urbana</td><td></td><td></td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4169">N4169</a></td><td>LWG</td></td><td>A proposal to add invoke function template</td><td>Urbana</td><td>Complete</td><td>3.7</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4190">N4190</a></td></td><td>LWG</td><td>Removing auto_ptr, random_shuffle(), And Old <functional> Stuff.</td><td>Urbana</td><td></td><td></td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4258">N4258</a></td><td>LWG</td></td><td>Cleaning-up noexcept in the Library.</td><td>Urbana</td><td>In progress</td><td>3.7</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4259">N4259</a></td><td>CWG</td></td><td>Wording for std::uncaught_exceptions</td><td>Urbana</td><td>Complete</td><td>3.7</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4277">N4277</a></td><td>LWG</td></td><td>TriviallyCopyable <code>reference_wrapper</code>.</td><td>Urbana</td><td>Complete</td><td>3.2</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4279">N4279</a></td><td>LWG</td></td><td>Improved insertion interface for unique-key maps.</td><td>Urbana</td><td>Complete</td><td>3.7</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4280">N4280</a></td><td>LWG</td></td><td>Non-member size() and more</td><td>Urbana</td><td>Complete</td><td>3.6</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4284">N4284</a></td><td>LWG</td></td><td>Contiguous Iterators.</td><td>Urbana</td><td>Complete</td><td>3.6</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4285">N4285</a></td><td>CWG</td></td><td>Cleanup for exception-specification and throw-expression.</td><td>Urbana</td><td></td><td></td></tr> + <tr><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4387">N4387</a></td><td>LWG</td></td><td>improving pair and tuple</td><td>Lenexa</td><td></td><td></td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4389">N4389</a></td><td>LWG</td></td><td>bool_constant</td><td>Lenexa</td><td>Complete</td><td>3.7</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4508">N4508</a></td><td>LWG</td></td><td>shared_mutex for C++17</td><td>Lenexa</td><td>Complete</td><td>3.7</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4366">N4366</a></td><td>LWG</td></td><td>LWG 2228 missing SFINAE rule</td><td>Lenexa</td><td>Complete</td><td>3.1</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4510">N4510</a></td><td>LWG</td></td><td>Minimal incomplete type support for standard containers, revision 4</td><td>Lenexa</td><td>Complete</td><td>3.6</td></tr> + <tr><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/P0004R1.html">P0004R1</a></td><td>LWG</td><td>Remove Deprecated iostreams aliases.</td><td>Kona</td><td>Complete</td><td>3.8</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/P0006R0.html">P0006R0</a></td><td>LWG</td><td>Adopt Type Traits Variable Templates for C++17.</td><td>Kona</td><td>Complete</td><td>3.8</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/P0092R1.html">P0092R1</a></td><td>LWG</td><td>Polishing <chrono></td><td>Kona</td><td>Complete</td><td>3.8</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/P0007R1.html">P0007R1</a></td><td>LWG</td><td>Constant View: A proposal for a <tt>std::as_const</tt> helper function template.</td><td>Kona</td><td>Complete</td><td>3.8</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/P0156R0.htm" >P0156R0</a></td><td>LWG</td><td>Variadic lock_guard(rev 3).</td><td>Kona</td><td></td><td></td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/P0074R0.html">P0074R0</a></td><td>LWG</td><td>Making <tt>std::owner_less</tt> more flexible</td><td>Kona</td><td>Complete</td><td>3.8</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/P0013R1.html">P0013R1</a></td><td>LWG</td><td>Logical type traits rev 2</td><td>Kona</td><td>Complete</td><td>3.8</td></tr> +<!-- <tr><td></td><td></td><td></td><td></td><td></td><td></td></tr> --> + </table> + + <h3>Library Working group Issues Status</h3> +<!-- <I>Note: "NAD" means that the issue was deemed "Not a defect"</I> --> + <table id="issues" border="1"> + <tr><th>Issue #</th><th>Issue Name</th><th>Meeting</th><th>Status</th></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2016">2016</a></td><td>Allocators must be no-throw swappable</td><td>Urbana</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2376">2118</td><td><code>unique_ptr</code> for array does not support cv qualification conversion of actual argument</td><td>Urbana</td><td>Will be resolved by N4089</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2170">2170</a></td><td>Aggregates cannot be <code>DefaultConstructible</code></td><td>Urbana</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2308">2308</td><td>Clarify container destructor requirements w.r.t. <code>std::array</code></td><td>Urbana</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2340">2340</a></td><td>Replacement allocation functions declared as inline</td><td>Urbana</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2354">2354</a></td><td>Unnecessary copying when inserting into maps with braced-init syntax</td><td>Urbana</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2377">2377</a></td><td><code>std::align</code> requirements overly strict</td><td>Urbana</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2396">2396</a></td><td><code>underlying_type</code> doesn't say what to do for an incomplete enumeration type</td><td>Urbana</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2399">2399</a></td><td><code>shared_ptr</code>'s constructor from <code>unique_ptr</code> should be constrained</td><td>Urbana</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2400">2400</a></td><td><code>shared_ptr</code>'s <code>get_deleter()</code> should use <code>addressof()</code></td><td>Urbana</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2401">2401</a></td><td><code>std::function</code> needs more noexcept</td><td>Urbana</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2404">2404</a></td><td><code>mismatch()</code>'s complexity needs to be updated</td><td>Urbana</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2408">2408</a></td><td>SFINAE-friendly <code>common_type</code> / <code>iterator_traits</code> is missing in C++14</td><td>Urbana</td><td><code>common_type</code> is waiting on <a href="http://cplusplus.github.io/LWG/lwg-defects.html#2465">LWG#2465</a></td></tr> + <tr><td></td><td></td><td></td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2106">2106</td><td><code>move_iterator</code> wrapping iterators returning prvalues</td><td>Urbana</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2129">2129</td><td>User specializations of <code>std::initializer_list</code></td><td>Urbana</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2212">2212</td><td><code>tuple_size</code> for <code>const pair</code> request <tuple> header</td><td>Urbana</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2217">2217</td><td><code>operator==(sub_match, string)</code> slices on embedded '\0's</td><td>Urbana</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2230">2230</td><td>"see below" for <code>initializer_list</code> constructors of unordered containers</td><td>Urbana</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2233">2233</td><td><code>bad_function_call::what()</code> unhelpful</td><td>Urbana</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2266">2266</td><td><code>vector</code> and <code>deque</code> have incorrect insert requirements</td><td>Urbana</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2325">2325</td><td><code>minmax_element()</code>'s behavior differing from <code>max_element()</code>'s should be noted</td><td>Urbana</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2361">2361</td><td>Apply 2299 resolution throughout library</td><td>Urbana</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2365">2365</td><td>Missing noexcept in <code>shared_ptr::shared_ptr(nullptr_t)</code></td><td>Urbana</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2376">2376</td><td><code>bad_weak_ptr::what()</code> overspecified</td><td>Urbana</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2387">2387</td><td>More nested types that must be accessible and unambiguous</td><td>Urbana</td><td>Complete</td></tr> + <tr><td></td><td></td><td></td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2059">2059</td><td>C++0x ambiguity problem with map::erase</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2063">2063</td><td>Contradictory requirements for string move assignment</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2076">2076</td><td>Bad CopyConstructible requirement in set constructors</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2160">2160</td><td>Unintended destruction ordering-specification of resize</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2168">2168</td><td>Inconsistent specification of uniform_real_distribution constructor</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2239">2239</td><td>min/max/minmax requirements</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2364">2364</td><td>deque and vector pop_back don't specify iterator invalidation requirements</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2369">2369</td><td>constexpr max(initializer_list) vs max_element</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2378">2378</td><td>Behaviour of standard exception types</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2403">2403</td><td>stof() should call strtof() and wcstof()</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2406">2406</td><td>negative_binomial_distribution should reject p == 1</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2407">2407</td><td>packaged_task(allocator_arg_t, const Allocator&, F&&) should neither be constrained nor explicit</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2411">2411</td><td>shared_ptr is only contextually convertible to bool</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2415">2415</td><td>Inconsistency between unique_ptr and shared_ptr</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2420">2420</td><td>function<void(ArgTypes...)> does not discard the return value of the target object</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2425">2425</td><td>operator delete(void*, size_t) doesn't invalidate pointers sufficiently</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2427">2427</td><td>Container adaptors as sequence containers, redux</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2428">2428</td><td>"External declaration" used without being defined</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2433">2433</td><td>uninitialized_copy()/etc. should tolerate overloaded operator&</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2434">2434</td><td>shared_ptr::use_count() is efficient</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2437">2437</td><td>iterator_traits::reference can and can't be void</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2438">2438</td><td>std::iterator inheritance shouldn't be mandated</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2439">2439</td><td>unique_copy() sometimes can't fall back to reading its output</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2440">2440</td><td>seed_seq::size() should be noexcept</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2442">2442</td><td>call_once() shouldn't DECAY_COPY()</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2448">2448</td><td>Non-normative Container destructor specification</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2454">2454</td><td>Add raw_storage_iterator::base() member</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2455">2455</td><td>Allocator default construction should be allowed to throw</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2458">2458</td><td>N3778 and new library deallocation signatures</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2459">2459</td><td>std::polar should require a non-negative rho</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2464">2464</td><td>try_emplace and insert_or_assign misspecified</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2467">2467</td><td>is_always_equal has slightly inconsistent default</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2470">2470</td><td>Allocator's destroy function should be allowed to fail to instantiate</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2482">2482</td><td>[c.strings] Table 73 mentions nonexistent functions</td><td>Lenexa</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2488">2488</td><td>Placeholders should be allowed and encouraged to be constexpr</td><td>Lenexa</td><td></td></tr> + <tr><td></td><td></td><td></td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#1169">1169</a></td><td><tt>num_get</tt> not fully compatible with <tt>strto*</tt></td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2072">2072</a></td><td>Unclear wording about capacity of temporary buffers</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2101">2101</a></td><td>Some transformation types can produce impossible types</td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2111">2111</a></td><td>Which <tt>unexpected</tt>/<tt>terminate</tt> handler is called from the exception handling runtime?</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2119">2119</a></td><td>Missing <tt>hash</tt> specializations for extended integer types</td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2127">2127</a></td><td>Move-construction with <tt>raw_storage_iterator</tt></td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2133">2133</a></td><td>Attitude to overloaded comma for iterators</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2156">2156</a></td><td>Unordered containers' <tt>reserve(n)</tt> reserves for <tt>n-1</tt> elements</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2218">2218</a></td><td>Unclear how containers use <tt>allocator_traits::construct()</tt></td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2219">2219</a></td><td><tt><i>INVOKE</i></tt>-ing a pointer to member with a <tt>reference_wrapper</tt> as the object expression</td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2224">2224</a></td><td>Ambiguous status of access to non-live objects</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2234">2234</a></td><td><tt>assert()</tt> should allow usage in constant expressions</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2244">2244</a></td><td>Issue on <tt>basic_istream::seekg</tt></td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2250">2250</a></td><td>Follow-up On Library Issue 2207</td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2259">2259</a></td><td>Issues in 17.6.5.5 rules for member functions</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2273">2273</a></td><td><tt>regex_match</tt> ambiguity</td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2336">2336</a></td><td><tt>is_trivially_constructible/is_trivially_assignable</tt> traits are always false</td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2353">2353</a></td><td><tt>std::next</tt> is over-constrained</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2367">2367</a></td><td><tt>pair</tt> and <tt>tuple</tt> are not correctly implemented for <tt>is_constructible</tt> with no args</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2380">2380</a></td><td>May <tt><cstdlib></tt> provide <tt>long ::abs(long)</tt> and <tt>long long ::abs(long long)</tt>?</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2384">2384</a></td><td>Allocator's <tt>deallocate</tt> function needs better specification</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2385">2385</a></td><td><tt>function::assign</tt> allocator argument doesn't make sense</td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2435">2435</a></td><td><tt>reference_wrapper::operator()</tt>'s Remark should be deleted</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2447">2447</a></td><td>Allocators and <tt>volatile</tt>-qualified value types</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2462">2462</a></td><td><tt>std::ios_base::failure</tt> is overspecified</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2466">2466</a></td><td><tt>allocator_traits::max_size()</tt> default behavior is incorrect</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2469">2469</a></td><td>Wrong specification of Requires clause of <tt>operator[]</tt> for <tt>map</tt> and <tt>unordered_map</tt></td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2473">2473</a></td><td><tt>basic_filebuf</tt>'s relation to C <tt>FILE</tt> semantics</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2476">2476</a></td><td><tt>scoped_allocator_adaptor</tt> is not assignable</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2477">2477</a></td><td>Inconsistency of wordings in <tt>std::vector::erase()</tt> and <tt>std::deque::erase()</tt></td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2483">2483</a></td><td><tt>throw_with_nested()</tt> should use <tt>is_final</tt></td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2484">2484</a></td><td><tt>rethrow_if_nested()</tt> is doubly unimplementable</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2485">2485</a></td><td><tt>get()</tt> should be overloaded for <tt>const tuple&&</tt></td><td>Kona</td><td>Completed</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2486">2486</a></td><td><tt>mem_fn()</tt> should be required to use perfect forwarding</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2487">2487</a></td><td><tt>bind()</tt> should be <tt>const</tt>-overloaded, not <i>cv</i>-overloaded</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2489">2489</a></td><td><tt>mem_fn()</tt> should be <tt>noexcept</tt></td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2492">2492</a></td><td>Clarify requirements for <tt>comp</tt></td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2495">2495</a></td><td>There is no such thing as an Exception Safety element</td><td>Kona</td><td>Complete</td></tr> + +<!-- + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#1214">1214</a></td><td>Insufficient/inconsistent key immutability requirements for associative containers</td><td>Urbana</td><td></td></tr> +--> +<!-- <tr><td></td><td></td><td></td><td></td></tr> --> + </table> + + <p>Last Updated: 5-Oct-2015</p> +</div> +</body> +</html> diff --git a/chromium/buildtools/third_party/libc++/trunk/www/debug_mode.html b/chromium/buildtools/third_party/libc++/trunk/www/debug_mode.html new file mode 100644 index 00000000000..943c47db011 --- /dev/null +++ b/chromium/buildtools/third_party/libc++/trunk/www/debug_mode.html @@ -0,0 +1,162 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html> +<head> + <title>libc++ debug mode status</title> +</head> +<body> + +<p> +Work is beginning on a libc++ debug mode. The purpose of this table is to +record which parts of libc++ have debug mode support. +</p> + +<p> +Note: Debug mode is currently not functional. Defining _LIBCPP_DEBUG will result +in fairly nasty compile errors. +</p> + +<table border=1> +<tr> +<th>Section</th> +<th>Completed ?</th> +</tr> + +<tr> +<td> +<p> +<code>vector<T>, T != bool</code> +</p> +</td> +<td align="center"> ✓ </td> +</tr> + +<tr> +<td> +<p> +<code><list></code> +</p> +</td> +<td align="center"> ✓ </td> +</tr> + +<tr> +<td> +<p> +<code><unordered_set></code> +</p> +</td> +<td align="center"> ✓ </td> +</tr> + +<tr> +<td> +<p> +<code><unordered_map></code> +</p> +</td> +<td align="center"> ✓ </td> +</tr> + +<tr> +<td> +<p> +<code><string></code> +</p> +</td> +<td align="center"> ✓ </td> +</tr> + +<tr> +<td> +<p> +<code><set></code> +</p> +</td> +<td align="center"><!-- ✓ --></td> +</tr> + +<tr> +<td> +<p> +<code><map></code> +</p> +</td> +<td align="center"><!-- ✓ --></td> +</tr> + +<tr> +<td> +<p> +<code>vector<bool></code> +</p> +</td> +<td align="center"><!-- ✓ --></td> +</tr> + +<tr> +<td> +<p> +<code><deque></code> +</p> +</td> +<td align="center"><!-- ✓ --></td> +</tr> + +<tr> +<td> +<p> +<code><forward_list></code> +</p> +</td> +<td align="center"><!-- ✓ --></td> +</tr> + +<tr> +<td> +<p> +<code><array></code> +</p> +</td> +<td align="center"><!-- ✓ --></td> +</tr> + +<tr> +<td> +<p> +<code><stack></code> +</p> +</td> +<td align="center"><!-- ✓ --></td> +</tr> + +<tr> +<td> +<p> +<code><queue></code> +</p> +</td> +<td align="center"><!-- ✓ --></td> +</tr> + +<tr> +<td> +<p> +<code><algorithm></code> +</p> +</td> +<td align="center"><!-- ✓ --></td> +</tr> + + +</table> + +<p> +At present the table is known to not be a complete list. It is currently ordered +in approximate priority order. +</p> + +<p>Last Updated: 3-June-2014</p> + +</body> +</html> diff --git a/chromium/buildtools/third_party/libc++/trunk/www/index.html b/chromium/buildtools/third_party/libc++/trunk/www/index.html new file mode 100644 index 00000000000..821f25d7e04 --- /dev/null +++ b/chromium/buildtools/third_party/libc++/trunk/www/index.html @@ -0,0 +1,501 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ --> +<html> +<head> + <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> + <title>"libc++" C++ Standard Library</title> + <link type="text/css" rel="stylesheet" href="menu.css"> + <link type="text/css" rel="stylesheet" href="content.css"> +</head> + +<body> +<div id="menu"> + <div> + <a href="http://llvm.org/">LLVM Home</a> + </div> + + <div class="submenu"> + <label>libc++ Info</label> + <a href="/index.html">About</a> + </div> + + <div class="submenu"> + <label>Quick Links</label> + <a href="http://lists.llvm.org/mailman/listinfo/cfe-dev">cfe-dev</a> + <a href="http://lists.llvm.org/mailman/listinfo/cfe-commits">cfe-commits</a> + <a href="http://llvm.org/bugs/">Bug Reports</a> + <a href="http://llvm.org/svn/llvm-project/libcxx/trunk/">Browse SVN</a> + <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/">Browse ViewVC</a> + </div> +</div> + +<div id="content"> + <!--*********************************************************************--> + <h1>"libc++" C++ Standard Library</h1> + <!--*********************************************************************--> + + <p>libc++ is a new implementation of the C++ standard library, targeting + C++11.</p> + + <p>All of the code in libc++ is <a + href="http://llvm.org/docs/DeveloperPolicy.html#license">dual licensed</a> + under the MIT license and the UIUC License (a BSD-like license).</p> + + <!--=====================================================================--> + <h2>New Documentation Coming Soon!</h2> + <!--=====================================================================--> + + <p> Looking for documentation on how to use, build and test libc++? If so + checkout the new libc++ documentation.</p> + + <p><a href="http://libcxx.llvm.org/docs/"> + Click here for the new libc++ documentation.</a></p> + + <!--=====================================================================--> + <h2 id="goals">Features and Goals</h2> + <!--=====================================================================--> + + <ul> + <li>Correctness as defined by the C++11 standard.</li> + <li>Fast execution.</li> + <li>Minimal memory use.</li> + <li>Fast compile times.</li> + <li>ABI compatibility with gcc's libstdc++ for some low-level features + such as exception objects, rtti and memory allocation.</li> + <li>Extensive unit tests.</li> + </ul> + + <!--=====================================================================--> + <h2 id="why">Why a new C++ Standard Library for C++11?</h2> + <!--=====================================================================--> + + <p>After its initial introduction, many people have asked "why start a new + library instead of contributing to an existing library?" (like Apache's + libstdcxx, GNU's libstdc++, STLport, etc). There are many contributing + reasons, but some of the major ones are:</p> + + <ul> + <li><p>From years of experience (including having implemented the standard + library before), we've learned many things about implementing + the standard containers which require ABI breakage and fundamental changes + to how they are implemented. For example, it is generally accepted that + building std::string using the "short string optimization" instead of + using Copy On Write (COW) is a superior approach for multicore + machines (particularly in C++11, which has rvalue references). Breaking + ABI compatibility with old versions of the library was + determined to be critical to achieving the performance goals of + libc++.</p></li> + + <li><p>Mainline libstdc++ has switched to GPL3, a license which the developers + of libc++ cannot use. libstdc++ 4.2 (the last GPL2 version) could be + independently extended to support C++11, but this would be a fork of the + codebase (which is often seen as worse for a project than starting a new + independent one). Another problem with libstdc++ is that it is tightly + integrated with G++ development, tending to be tied fairly closely to the + matching version of G++.</p> + </li> + + <li><p>STLport and the Apache libstdcxx library are two other popular + candidates, but both lack C++11 support. Our experience (and the + experience of libstdc++ developers) is that adding support for C++11 (in + particular rvalue references and move-only types) requires changes to + almost every class and function, essentially amounting to a rewrite. + Faced with a rewrite, we decided to start from scratch and evaluate every + design decision from first principles based on experience.</p> + + <p>Further, both projects are apparently abandoned: STLport 5.2.1 was + released in Oct'08, and STDCXX 4.2.1 in May'08.</p> + + </ul> + + <!--=====================================================================--> + <h2 id="requirements">Platform Support</h2> + <!--=====================================================================--> + + <p> + libc++ is known to work on the following platforms, using g++-4.2 and + clang (lack of C++11 language support disables some functionality). Note + that functionality provided by <atomic> is only functional with + clang. + </p> + + <ul> + <li>Mac OS X i386</li> + <li>Mac OS X x86_64</li> + <li>FreeBSD 10+ i386</li> + <li>FreeBSD 10+ x86_64</li> + <li>FreeBSD 10+ ARM</li> + </ul> + + <!--=====================================================================--> + <h2 id="dir-structure">Current Status</h2> + <!--=====================================================================--> + + <p>libc++ is a 100% complete C++11 implementation on Apple's OS X. </p> + <p>LLVM and Clang can self host in C++ and C++11 mode with libc++ on Linux.</p> + <p>libc++ is also a 100% complete C++14 implementation. A list of new features and changes for + C++14 can be found <a href="cxx1y_status.html">here</a>.</p> + <p>A list of features and changes for the next C++ standard, known here as + "C++1z" (probably to be C++17) can be found <a href="cxx1z_status.html">here</a>.</p> + <p>Implementation of the post-c++14 Technical Specifications is in progress. A list of features and + the current status of these features can be found <a href="ts1z_status.html">here</a>.</p> + <p> + Ports to other platforms are underway. Here are recent test + results for <a href="results.Windows.html">Windows</a> + and <a href="results.Linux.html">Linux</a>. + </p> + + <!--======================================================================--> + <h2 id="buildbots">Build Bots</h2> + <!--======================================================================--> + <p>The latest libc++ build results can be found at the following locations.</p> + <ul> + <li><a href="http://lab.llvm.org:8011/console"> + Buildbot libc++ builders + </a></li> + <li><a href="http://lab.llvm.org:8080/green/view/Libcxx/"> + Jenkins libc++ builders + </a></li> + </ul> + + <!--=====================================================================--> + <h2>Get it and get involved!</h2> + <!--=====================================================================--> + + <p>First please review our + <a href="http://llvm.org/docs/DeveloperPolicy.html">Developer's Policy</a>. + + <p> + On Mac OS 10.7 (Lion) and later, the easiest way to get this library is to install + Xcode 4.2 or later. However if you want to install tip-of-trunk from here + (getting the bleeding edge), read on. However, be warned that Mac OS + 10.7 will not boot without a valid copy of <code>libc++.1.dylib</code> in + <code>/usr/lib</code>. + </p> + + <p>To check out the code, use:</p> + + <ul> + <li><code>svn co http://llvm.org/svn/llvm-project/libcxx/trunk libcxx</code></li> + </ul> + + <p> + Note that for an in-tree build, you should check out libcxx to + llvm/projects. + </p> + + <p> + The following instructions are for building libc++ on FreeBSD, Linux, or Mac + using <a href="http://libcxxabi.llvm.org/">libc++abi</a> as the C++ ABI + library. On Linux, it is also possible to use + <a href="#libsupcxx">libsupc++</a> or <a href="#libcxxrt">libcxxrt</a>. + </p> + + <p>In-tree build:</p> + <ul> + <li><code>cd where-you-want-to-live</code></li> + <li>Check out libcxx and <a href="http://libcxxabi.llvm.org/">libcxxabi</a> + into llvm/projects</li> + <li><code>cd where-you-want-to-build</code></li> + <li><code>mkdir build && cd build</code></li> + <li><code>cmake path/to/llvm # Linux may require -DCMAKE_C_COMPILER=clang + -DCMAKE_CXX_COMPILER=clang++</code></li> + <li><code>make cxx</code></li> + </ul> + + <p>Out-of-tree buildc:</p> + <ul> + <li><code>cd where-you-want-to-live</code></li> + <li>Check out libcxx and llvm</li> + <li>If not on a Mac, also check out + <a href="http://libcxxabi.llvm.org/">libcxxabi</a></li> + <li><code>cd where-you-want-to-build</code></li> + <li><code>mkdir build && cd build</code></li> + <li><code>cmake -DLLVM_PATH=path/to/llvm + -DLIBCXX_CXX_ABI=libcxxabi + -DLIBCXX_CXX_ABI_INCLUDE_PATHS=path/to/libcxxabi/include + -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ + path/to/libcxx + </code></li> + <li><code>make</code></li> + </ul> + + <p>To run the tests:</p> + <ul> + <li><code>make check-libcxx</code></li> + </ul> + + <p>If you wish to run a subset of the test suite:</p> + <ul> + <li><code>cd path/to/libcxx/libcxx</code></li> + <li><code>alias lit='python path/to/llvm/utils/lit/lit.py'</code></li> + <li><code>export + LIBCXX_SITE_CONFIG=path/to/build/dir/projects/libcxx/test/lit.site.cfg + </code></li> + <li><code>lit -sv test/re/ # or whichever subset of tests you're interested + in</code></li> + </ul> + <p>The above is currently quite inconvenient. Sorry! We're working on it!</p> + + <p>More information on using LIT can be found + <a href="http://llvm.org/docs/CommandGuide/lit.html">here</a>. For more + general information about the LLVM testing infrastructure, see the + <a href="http://llvm.org/docs/TestingGuide.html">LLVM Testing Infrastructure + Guide</a> + </p> + + <p> + Shared libraries for libc++ should now be present in llvm/build/lib. Note + that it is safest to use this from its current location rather than + replacing your system's libc++ (if it has one, if not, go right ahead). + </p> + + <p> + Mac users, remember to be careful when replacing the system's libc++. + <strong>Your system will not be able to boot without a functioning + libc++.</strong> + </p> + + <!--=====================================================================--> + <h3>Notes and Known Issues</h3> + <!--=====================================================================--> + + <p> + <ul> + <li> + Building libc++ with <code>-fno-rtti</code> is not supported. However + linking against it with <code>-fno-rtti</code> is supported. + </li> + <li> + On OS X v10.8 and older the CMake option + <code>-DLIBCXX_LIBCPPABI_VERSION=""</code> must be used during + configuration. + </li> + </ul> + </p> + + <p>Send discussions to the + <a href="http://lists.llvm.org/mailman/listinfo/cfe-dev">clang mailing list</a>.</p> + + <!--=====================================================================--> + <h2>Using libc++ in your programs</h2> + <!--=====================================================================--> + + <!--=====================================================================--> + <h3>FreeBSD and Mac OS X</h3> + <!--=====================================================================--> + + <p> + To use your system-installed libc++ with clang you can: + </p> + + <ul> + <li><code>clang++ -stdlib=libc++ test.cpp</code></li> + <li><code>clang++ -std=c++11 -stdlib=libc++ test.cpp</code></li> + </ul> + + <p> + To use your tip-of-trunk libc++ on Mac OS with clang you can: + </p> + + <ul> + <li><code>export DYLD_LIBRARY_PATH=path/to/build/lib</code> + <li><code>clang++ -std=c++11 -stdlib=libc++ -nostdinc++ + -I<path-to-libcxx>/include -L<path-to-libcxx>/lib + test.cpp</code></li> + </ul> + + <!--=====================================================================--> + <h3>Linux</h3> + <!--=====================================================================--> + + <p> + You will need to keep the source tree of + <a href="http://libcxxabi.llvm.org">libc++abi</a> available on your build + machine and your copy of the libc++abi shared library must be placed where + your linker will find it. + </p> + + <p> + Unfortunately you can't simply run clang with "-stdlib=libc++" at this + point, as clang is set up to link for libc++ linked to libsupc++. To get + around this you'll have to set up your linker yourself (or patch clang). + For example: + </p> + + <ul> + <li><code>clang++ -stdlib=libc++ helloworld.cpp -nodefaultlibs -lc++ -lc++abi -lm -lc -lgcc_s -lgcc</code></li> + </ul> + + <p> + Alternately, you could just add libc++abi to your libraries list, which in + most situations will give the same result: + </p> + + <ul> + <li><code>clang++ -stdlib=libc++ helloworld.cpp -lc++abi</code></li> + </ul> + + <!--=====================================================================--> + <h2>Bug reports and patches</h2> + <!--=====================================================================--> + + <p> + If you think you've found a bug in libc++, please report it using + the <a href="http://llvm.org/bugs">LLVM Bugzilla</a>. If you're not sure, you + can post a message to the <a href="http://lists.llvm.org/mailman/listinfo/cfe-dev">cfe-dev</a> + mailing list or on IRC. Please include "libc++" in your subject. + </p> + + <p> + If you want to contribute a patch to libc++, the best place for that is + <a href="http://llvm.org/docs/Phabricator.html">Phabricator</a>. Please + include [libc++] in the subject and add cfe-commits as a subscriber. + </p> + + <!--=====================================================================--> + <h2 id="libsupcxx">Build on Linux using CMake and libsupc++.</h2> + <!--=====================================================================--> + + <p> + You will need libstdc++ in order to provide libsupc++. + </p> + + <p> + Figure out where the libsupc++ headers are on your system. On Ubuntu this + is <code>/usr/include/c++/<version></code> and + <code>/usr/include/c++/<version>/<target-triple></code> + </p> + + <p> + You can also figure this out by running + <pre> +$ echo | g++ -Wp,-v -x c++ - -fsyntax-only +ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" +ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../x86_64-linux-gnu/include" +#include "..." search starts here: +#include <...> search starts here: + /usr/include/c++/4.7 + /usr/include/c++/4.7/x86_64-linux-gnu + /usr/include/c++/4.7/backward + /usr/lib/gcc/x86_64-linux-gnu/4.7/include + /usr/local/include + /usr/lib/gcc/x86_64-linux-gnu/4.7/include-fixed + /usr/include/x86_64-linux-gnu + /usr/include +End of search list. + </pre> + + Note the first two entries happen to be what we are looking for. This + may not be correct on other platforms. + </p> + + <p> + We can now run CMake: + <ul> + <li><code>CC=clang CXX=clang++ cmake -G "Unix Makefiles" + -DLIBCXX_CXX_ABI=libstdc++ + -DLIBCXX_CXX_ABI_INCLUDE_PATHS="/usr/include/c++/4.7/;/usr/include/c++/4.7/x86_64-linux-gnu/" + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_INSTALL_PREFIX=/usr + <libc++-source-dir></code></li> + <li>You can also substitute <code>-DLIBCXX_CXX_ABI=libsupc++</code> + above, which will cause the library to be linked to libsupc++ instead + of libstdc++, but this is only recommended if you know that you will + never need to link against libstdc++ in the same executable as libc++. + GCC ships libsupc++ separately but only as a static library. If a + program also needs to link against libstdc++, it will provide its + own copy of libsupc++ and this can lead to subtle problems. + <li><code>make</code></li> + <li><code>sudo make install</code></li> + </ul> + <p> + You can now run clang with -stdlib=libc++. + </p> + </p> + + <!--=====================================================================--> + <h2 id="libcxxrt">Build on Linux using CMake and libcxxrt.</h2> + <!--=====================================================================--> + + <p> + You will need to keep the source tree of + <a href="https://github.com/pathscale/libcxxrt/">libcxxrt</a> available + on your build machine and your copy of the libcxxrt shared library must + be placed where your linker will find it. + </p> + + <p> + We can now run CMake: + <ul> + <li><code>CC=clang CXX=clang++ cmake -G "Unix Makefiles" + -DLIBCXX_CXX_ABI=libcxxrt + -DLIBCXX_CXX_ABI_INCLUDE_PATHS="<libcxxrt-source-dir>/src" + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_INSTALL_PREFIX=/usr + <libc++-source-dir></code></li> + <li><code>make</code></li> + <li><code>sudo make install</code></li> + </ul> + <p> + Unfortunately you can't simply run clang with "-stdlib=libc++" at this point, as + clang is set up to link for libc++ linked to libsupc++. To get around this + you'll have to set up your linker yourself (or patch clang). For example, + <ul> + <li><code>clang++ -stdlib=libc++ helloworld.cpp -nodefaultlibs -lc++ -lcxxrt -lm -lc -lgcc_s -lgcc</code></li> + </ul> + Alternately, you could just add libcxxrt to your libraries list, which in most + situations will give the same result: + <ul> + <li><code>clang++ -stdlib=libc++ helloworld.cpp -lcxxrt</code></li> + </ul> + </p> + </p> + + <!--=====================================================================--> + <h2 id="local-abi">Using a local ABI library</h2> + <!--=====================================================================--> + <p> + <strong>Note: This is not recommended in almost all cases.</strong><br> + Generally these instructions should only be used when you can't install + your ABI library. + </p> + <p> + Normally you must link libc++ against a ABI shared library that the + linker can find. If you want to build and test libc++ against an ABI + library not in the linker's path you need to set + <code>-DLIBCXX_CXX_ABI_LIBRARY_PATH=/path/to/abi/lib</code> when + configuring CMake. + </p> + <p> + An example build using libc++abi would look like: + <ul> + <li><code>CC=clang CXX=clang++ cmake + -DLIBCXX_CXX_ABI=libc++abi + -DLIBCXX_CXX_ABI_INCLUDE_PATHS="/path/to/libcxxabi/include" + -DLIBCXX_CXX_ABI_LIBRARY_PATH="/path/to/libcxxabi-build/lib" + path/to/libcxx</code></li> + <li><code>make</code></li> + </ul> + </p> + <p> + When testing libc++ LIT will automatically link against the proper ABI + library. + </p> + + <!--=====================================================================--> + <h2>Design Documents</h2> + <!--=====================================================================--> + +<ul> +<li><a href="atomic_design.html"><tt><atomic></tt></a></li> +<li><a href="type_traits_design.html"><tt><type_traits></tt></a></li> +<li><a href="http://cplusplusmusings.wordpress.com/2012/07/05/clang-and-standard-libraries-on-mac-os-x/">Excellent notes by Marshall Clow</a></li> +<li><a href="debug_mode.html">Status of debug mode</a></li> +<li><a href="lit_usage.html">LIT usage guide</a></li> +</ul> + +</div> +</body> +</html> diff --git a/chromium/buildtools/third_party/libc++/trunk/www/kona.html b/chromium/buildtools/third_party/libc++/trunk/www/kona.html new file mode 100644 index 00000000000..8fdfba163e4 --- /dev/null +++ b/chromium/buildtools/third_party/libc++/trunk/www/kona.html @@ -0,0 +1,154 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ --> +<html> +<head> + <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> + <title>libc++ Kona Status</title> + <link type="text/css" rel="stylesheet" href="menu.css"> + <link type="text/css" rel="stylesheet" href="content.css"> +</head> + +<body> +<div id="menu"> + <div> + <a href="http://llvm.org/">LLVM Home</a> + </div> + + <div class="submenu"> + <label>libc++ Info</label> + <a href="/index.html">About</a> + </div> + + <div class="submenu"> + <label>Quick Links</label> + <a href="http://lists.llvm.org/mailman/listinfo/cfe-dev">cfe-dev</a> + <a href="http://lists.llvm.org/mailman/listinfo/cfe-commits">cfe-commits</a> + <a href="http://llvm.org/bugs/">Bug Reports</a> + <a href="http://llvm.org/svn/llvm-project/libcxx/trunk/">Browse SVN</a> + <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/">Browse ViewVC</a> + </div> +</div> + +<div id="content"> + <!--*********************************************************************--> + <h1>libc++ Kona Status</h1> + <!--*********************************************************************--> + + <p>This is a temporary page; please check the c++1z status <a href="http://libcxx.llvm.org/cxx1z_status.html">here</a></p> + <p>This page shows the status of the papers and issues that are expected to be adopted in Kona.</p> + + <p>The groups that have contributed papers: + <ul> + <li>LWG - Library working group</li> + <li>CWG - Core Language Working group</li> + <li>SG1 - Study group #1 (Concurrency working group)</li> + </ul> + </p> + + <h3>Paper Status</h3> + <table id="papers" border="1"> + <tr><th>Paper #</th><th>Group</th><th>Paper Name</th><th>Meeting</th><th>Status</th><th>First released version</th></tr> +<!-- + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3346.pdf">3346</a></td><td>LWG</td><td>Terminology for Container Element Requirements - Rev 1</td><td>Kona</td><td>Complete</td><td>3.4</td></tr> +--> +<!-- <tr><td></td><td></td><td></td><td></td><td></td><td></td></tr> --> + </table> + + <h3>Library Working group Issues Status</h3> + <table id="issues" border="1"> + <tr><th>Issue #</th><th>Issue Name</th><th>Meeting</th><th>Status</th></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#1169">1169</a></td><td><tt>num_get</tt> not fully compatible with <tt>strto*</tt></td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2072">2072</a></td><td>Unclear wording about capacity of temporary buffers</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2101">2101</a></td><td>Some transformation types can produce impossible types</td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2111">2111</a></td><td>Which <tt>unexpected</tt>/<tt>terminate</tt> handler is called from the exception handling runtime?</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2119">2119</a></td><td>Missing <tt>hash</tt> specializations for extended integer types</td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2127">2127</a></td><td>Move-construction with <tt>raw_storage_iterator</tt></td><td>Kona</td><td>Patch Ready</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2133">2133</a></td><td>Attitude to overloaded comma for iterators</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2156">2156</a></td><td>Unordered containers' <tt>reserve(n)</tt> reserves for <tt>n-1</tt> elements</td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2218">2218</a></td><td>Unclear how containers use <tt>allocator_traits::construct()</tt></td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2219">2219</a></td><td><tt><i>INVOKE</i></tt>-ing a pointer to member with a <tt>reference_wrapper</tt> as the object expression</td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2224">2224</a></td><td>Ambiguous status of access to non-live objects</td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2234">2234</a></td><td><tt>assert()</tt> should allow usage in constant expressions</td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2244">2244</a></td><td>Issue on <tt>basic_istream::seekg</tt></td><td>Kona</td><td>Patch Ready</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2250">2250</a></td><td>Follow-up On Library Issue 2207</td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2259">2259</a></td><td>Issues in 17.6.5.5 rules for member functions</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2273">2273</a></td><td><tt>regex_match</tt> ambiguity</td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2336">2336</a></td><td><tt>is_trivially_constructible/is_trivially_assignable</tt> traits are always false</td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2353">2353</a></td><td><tt>std::next</tt> is over-constrained</td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2367">2367</a></td><td><tt>pair</tt> and <tt>tuple</tt> are not correctly implemented for <tt>is_constructible</tt> with no args</td><td>Kona</td><td>Patch Ready</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2380">2380</a></td><td>May <tt><cstdlib></tt> provide <tt>long ::abs(long)</tt> and <tt>long long ::abs(long long)</tt>?</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2384">2384</a></td><td>Allocator's <tt>deallocate</tt> function needs better specification</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2385">2385</a></td><td><tt>function::assign</tt> allocator argument doesn't make sense</td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2435">2435</a></td><td><tt>reference_wrapper::operator()</tt>'s Remark should be deleted</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2447">2447</a></td><td>Allocators and <tt>volatile</tt>-qualified value types</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2462">2462</a></td><td><tt>std::ios_base::failure</tt> is overspecified</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2466">2466</a></td><td><tt>allocator_traits::max_size()</tt> default behavior is incorrect</td><td>Kona</td><td>Patch Ready</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2469">2469</a></td><td>Wrong specification of Requires clause of <tt>operator[]</tt> for <tt>map</tt> and <tt>unordered_map</tt></td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2473">2473</a></td><td><tt>basic_filebuf</tt>'s relation to C <tt>FILE</tt> semantics</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2476">2476</a></td><td><tt>scoped_allocator_adaptor</tt> is not assignable</td><td>Kona</td><td>Patch Ready</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2477">2477</a></td><td>Inconsistency of wordings in <tt>std::vector::erase()</tt> and <tt>std::deque::erase()</tt></td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2483">2483</a></td><td><tt>throw_with_nested()</tt> should use <tt>is_final</tt></td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2484">2484</a></td><td><tt>rethrow_if_nested()</tt> is doubly unimplementable</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2485">2485</a></td><td><tt>get()</tt> should be overloaded for <tt>const tuple&&</tt></td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2486">2486</a></td><td><tt>mem_fn()</tt> should be required to use perfect forwarding</td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2487">2487</a></td><td><tt>bind()</tt> should be <tt>const</tt>-overloaded, not <i>cv</i>-overloaded</td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2489">2489</a></td><td><tt>mem_fn()</tt> should be <tt>noexcept</tt></td><td>Kona</td><td>Patch Ready</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2492">2492</a></td><td>Clarify requirements for <tt>comp</tt></td><td>Kona</td><td>Complete</td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2494">2494</a></td><td>[fund.ts.v2] <tt>ostream_joiner</tt> needs <tt>noexcept</tt></td><td>Kona</td><td></td></tr> + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#2495">2495</a></td><td>There is no such thing as an Exception Safety element</td><td>Kona</td><td></td></tr> + +<!-- + <tr><td><a href="http://cplusplus.github.io/LWG/lwg-defects.html#1214">1214</a></td><td>Insufficient/inconsistent key immutability requirements for associative containers</td><td>Urbana</td><td></td></tr> +--> +<!-- <tr><td></td><td></td><td></td><td></td></tr> --> + </table> + +<h3>Comments about the issues</h3> +<ul> +<li>1169 - We currently have a single function __num_get_float that calls strtold_l, and then casts down to the appropriate floating point type. That will have to change.</li> +<li><i>2072 - We already do this; this is just making the wording better.</i></li> +<li>2101 - Need to write some careful test cases. In particular, need to check function types with/without const/ref qualifiers. Currently we get this wrong. Installing metashell to play with these.</li> +<li><i>2111 - Resolved an ambiguity by calling it out. No code change required.</i></li> +<li>2119 - Hashes for all integral and enumeration types. Research needed</li> +<li><i>2127 - Add a new member to raw_storage_iterator. Looks simple.</i> <b>Patch Available</b></li> +<li><i>2133 - We do this already; thanks Eric.</i></li> +<li>2156 - check and make sure that we already do this. Write a test.</li> +<li>2181 - I suspect that this will not require any code changes, but will need to be read carefully.</li> +<li>2218 - Shouldn't require any code changes.</li> +<li>2219 - Sizable changes required. INVOKE needs 2 additional overloads and plenty of tests. I'm not going to back port this to C++03. (Eric)</li> +<li>2224 - </li> +<li>2234 - </li> +<li><i>2244 - We don't do this; easy fix. <b>Patch Available</b></i></li> +<li>2250 - Looks like wording cleanup. Need to check more closely, but I think there's no code changes here.</li> +<li><i>2259 - No code changes needed here.</i></li> +<li>2273 - </li> +<li>2336 - <b>Check later</b></li> +<li>2353 - Simple change, needs a test. (test probably used to exist)</li> +<li><i>2367 - <b>Patch Available as D13750</b> (Eric)</i></li> +<li><i>2380 - No code changes here; we already do this.</i></li> +<li><i>2384 - Wording cleanup; no code change required</i></li> +<li>2385 - Removing broken signatures. Only question is "how far back"?</li> +<li><i>2435 - Wording cleanup; no code change required</i></li> +<li><i>2447 - This is a relaxation of a requirement that we satisfy. No changes needed.</i>.</li> +<li><i>2462 - Added a simple test. No code change needed</i> <b>Patch Available</b></li> +<li><i>2466 - Simple change; need a test.</i> <b>Patch Available</b></li> +<li>2469 - This is a follow on to 2464, which we're done. This restates a bunch of operations in terms of newer ops. Probably refactoring to do here, but tests shouldn't change.</li> +<li><i>2473 - There are two changes here; one to <tt>filebuf::seekpos</tt> and the other to <tt>filebuf::sync</tt>. We do both of these already.</i></li> +<li><i>2476 - Just needed tests.</i> <b>Patch Available</b></li> +<li><i>2477 - Wording cleanup.</i></li> +<li><i>2483 - We already do this.</i></li> +<li><i>2484 - We already do this.</i></li> +<li>2485 - Ask Eric to do it. </li> +<li>2486 - Lots of code changes, all mechanical. Tests will be sizable.</li> +<li><i>2487 - This is removing a requirement on bind(), which we don't currently satisfy. So, nothing to do.</i></li> +<li><i>2489 - Looks easy. Just add some NOEXCEPT, and tests.</i> <b>Patch Available</b></li> +<li><i>2492 - Wording cleanup; no code changes needed.</i></li> +<li>2494 - My implementation of this (not checked in) already has these.</li> +<li>2494 - </li> +</ul> + +<p>Last Updated: 5-Oct-2015</p> +</div> +</body> +</html> diff --git a/chromium/buildtools/third_party/libc++/trunk/www/lit_usage.html b/chromium/buildtools/third_party/libc++/trunk/www/lit_usage.html new file mode 100644 index 00000000000..2fcb2d0a5f9 --- /dev/null +++ b/chromium/buildtools/third_party/libc++/trunk/www/lit_usage.html @@ -0,0 +1,207 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ --> +<html> +<head> + <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> + <title>Testing libc++ using LIT</title> + <link type="text/css" rel="stylesheet" href="menu.css"> + <link type="text/css" rel="stylesheet" href="content.css"> + <style> + .lit-option { + padding-top: 0.5em; + margin-bottom: 0.0em; + font-size: medium; + color: #2d58b7 + } + .lit-option-desc { + display: block; + margin-top: 0em; + margin-bottom: 0em; + margin-left: 20px; + margin-right: 20px; + } + </style> +</head> + +<body> +<div id="menu"> + <div> + <a href="http://llvm.org/">LLVM Home</a> + </div> + + <div class="submenu"> + <label>libc++ Info</label> + <a href="/index.html">About</a> + </div> + + <div class="submenu"> + <label>Quick Links</label> + <a href="http://lists.llvm.org/mailman/listinfo/cfe-dev">cfe-dev</a> + <a href="http://lists.llvm.org/mailman/listinfo/cfe-commits">cfe-commits</a> + <a href="http://llvm.org/bugs/">Bug Reports</a> + <a href="http://llvm.org/svn/llvm-project/libcxx/trunk/">Browse SVN</a> + <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/">Browse ViewVC</a> + </div> +</div> + +<div id="content"> +<!--*********************************************************************--> + <h1>Testing libc++ using LIT</h1> +<!--*********************************************************************--> +<p> +libc++ uses LIT to configure and run its tests. The primary way to run the +libc++ tests is by using <code>make check-libcxx</code>. However since libc++ +can be used in any number of possible configurations it is important to +customize the way LIT builds and runs the tests. This guide provides +information on how to use LIT directly to test libc++. +</p> +<p> +Documentation for LIT can be found +<a href="http://llvm.org/docs/CommandGuide/lit.html">here</a>. +</p> + +<!--*********************************************************************--> + <h2>Getting Started</h2> +<!--*********************************************************************--> +<p> +After building libc++ use the following commands before you start using LIT to +test. +</p> +<ul> + <li><code>alias lit='python path/to/llvm/utils/lit/lit.py'</code></li> + <li><code>export LIBCXX_SITE_CONFIG=path/to/build-libcxx/test/lit.site.cfg</code></li> +</ul> +<p> +You can now run the libc++ tests by running: +</p> +<ul> + <li><code>cd path/to/libcxx</code></li> + <li><code>lit -sv ./test</code></li> +</ul> +<p> +To only run a subsection of the tests use: +<ul> + <li><code>lit -sv test/std/numerics # Run only the numeric tests</code></li> +</ul> + +<!--*********************************************************************--> + <h2>Customization Options</h2> +<!--*********************************************************************--> +<p> +libc++'s testsuite provides multiple options to configure the way the tests +are build and run. To use these options you pass them on the LIT command line +as <code>--param NAME</code> or <code>--param NAME=VALUE</code>. Some options +have default values specified during CMake's configuration. Passing the option +on the command line will override the default. +</p> + + +<p> +<h3 class="lit-option">libcxx_site_config=<path/to/lit.site.cfg></h3> +<blockquote class="lit-option-desc"> +Specify the site configuration to use when running the tests. This option +overrides the enviroment variable <code>LIBCXX_SITE_CONFIG</code> +</blockquote> +</p> + +<p> +<h3 class="lit-option">libcxx_headers=<path/to/headers></h3> +<blockquote class="lit-option-desc"> +Specify the libc++ headers that are tested. By default the headers in the source +tree are used. +</blockquote> +</p> + +<p> +<h3 class="lit-option">libcxx_library=<path/to/libc++.so></h3> +<blockquote class="lit-option-desc"> +Specify the libc++ library that is tested. By default the library in the build +directory is used. This option cannot be used when <code>use_system_lib</code> +is provided. +</blockquote> +</p> + +<p> +<h3 class="lit-option">use_system_lib=<bool></h3> +<blockquote class="lit-option-desc"> +<b>Default: </b><code>False</code></br> +Enable or disable testing against the installed version of libc++ library. +Note: This does not use the installed headers. +</blockquote> +</p> + +<p> +<h3 class="lit-option">use_lit_shell=<bool></h3> +<blockquote class="lit-option-desc"> +Enable or disable the use of LIT's internal shell in ShTests. If the enviroment +variable <code>LIT_USE_INTERNAL_SHELL</code> is present then that is used as the +default value. Otherwise the default value is <code>True</code> on Windows and +<code>False</code> on every other platform. +</blockquote> +</p> + +<p> +<h3 class="lit-option">no_default_flags=<bool></h3> +<blockquote class="lit-option-desc"> +<b>Default: </b><code>False</code></br> +Disable all default compile and link flags from being added. When this option is +used only flags specified using the <code>compile_flags</code> and +<code>link_flags</code> will be used. +</blockquote> +</p> + +<p> +<h3 class="lit-option">compile_flags="<list-of-args>"</h3> +<blockquote class="lit-option-desc"> +Specify additional compile flags as a space delimited string. +Note: This options should not be used to change the standard version used. +</blockquote> +</p> + +<p> +<h3 class="lit-option">link_flags="<list-of-args>"</h3> +<blockquote class="lit-option-desc"> +Specify additional link flags as a space delimited string. +</blockquote> +</p> + +<p> +<h3 class="lit-option">std=<standard version></h3> +<blockquote class="lit-option-desc"> +<b>Values: </b><code>c++98, c++03, c++11, c++14, c++1z</code></br> +Change the standard version used when building the tests. +</blockquote> +</p> + +<p> +<h3 class="lit-option">debug_level=<level></h3> +<blockquote class="lit-option-desc"> +<b>Values: </b><code>0, 1</code></br> +Enable the use of debug mode. Level 0 enables assertions and level 1 enables +assertions and debugging of iterator misuse. +</blockquote> +</p> + +<p> +<h3 class="lit-option">use_sanitizer=<sanitizer name></h3> +<blockquote class="lit-option-desc"> +<b>Values: </b><code>Memory, MemoryWithOrigins, Address, Undefined</code></br> +Run the tests using the given sanitizer. If <code>LLVM_USE_SANITIZER</code> +was given when building libc++ then that sanitizer will be used by default. +</blockquote> +</p> + +<p> +<h3 class="lit-option">color_diagnostics</h3> +<blockquote class="lit-option-desc"> +Enable the use of colorized compile diagnostics. If the +<code>color_diagnostics</code> option is specified or the enviroment variable +<code>LIBCXX_COLOR_DIAGNOSTICS</code> is present then color diagnostics will be +enabled. +</blockquote> +</p> + +</div> +</body> +</html> diff --git a/chromium/buildtools/third_party/libc++/trunk/www/menu.css b/chromium/buildtools/third_party/libc++/trunk/www/menu.css new file mode 100644 index 00000000000..4a887b1907a --- /dev/null +++ b/chromium/buildtools/third_party/libc++/trunk/www/menu.css @@ -0,0 +1,39 @@ +/***************/ +/* page layout */ +/***************/ + +[id=menu] { + position:fixed; + width:25ex; +} +[id=content] { + /* ***** EDIT THIS VALUE IF CONTENT OVERLAPS MENU ***** */ + position:absolute; + left:29ex; + padding-right:4ex; +} + +/**************/ +/* menu style */ +/**************/ + +#menu .submenu { + padding-top:1em; + display:block; +} + +#menu label { + display:block; + font-weight: bold; + text-align: center; + background-color: rgb(192,192,192); +} +#menu a { + padding:0 .2em; + display:block; + text-align: center; + background-color: rgb(235,235,235); +} +#menu a:visited { + color:rgb(100,50,100); +} diff --git a/chromium/buildtools/third_party/libc++/trunk/www/results.Linux.html b/chromium/buildtools/third_party/libc++/trunk/www/results.Linux.html new file mode 100644 index 00000000000..82416a36e13 --- /dev/null +++ b/chromium/buildtools/third_party/libc++/trunk/www/results.Linux.html @@ -0,0 +1,513 @@ +<!DOCTYPE html> +<html> +<head> + <title>results.Linux</title> +</head> +<body> +<pre> +All failures in the libc++ test suite will be documented here. +Note: glibc >= 2.16 is required for full C11 compatibility. + +Test Suite Run Information: +Date: 8/18/2014 +Compiler: Clang Tip-of-Tree (r215809) +ABI: libc++abi +C Library: eglibc 2.19 +Platform: x86_64-linux-gnu +Kernel: 3.13.0-32-generic +Distribution: Ubuntu 14.04 +Run By: Eric Fiselier (eric at efcs dot ca) + + +Testing Time: 1187.82s +******************** +Failing Tests (33): + libc++ :: localization/locale.categories/category.collate/locale.collate.byname/compare.pass.cpp + - GLIBC's locales collate strings differently. Needs investigation. + libc++ :: localization/locale.categories/category.ctype/locale.ctype.byname/tolower_1.pass.cpp + - Needs Investigation. + libc++ :: localization/locale.categories/category.ctype/locale.ctype.byname/tolower_many.pass.cpp + - Idem. + libc++ :: localization/locale.categories/category.ctype/locale.ctype.byname/toupper_1.pass.cpp + - Idem. + libc++ :: localization/locale.categories/category.ctype/locale.ctype.byname/toupper_many.pass.cpp + - Idem. + libc++ :: localization/locale.categories/category.ctype/locale.ctype.byname/widen_1.pass.cpp + - Idem + libc++ :: localization/locale.categories/category.ctype/locale.ctype.byname/widen_many.pass.cpp + - Idem + libc++ :: localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_ru_RU.pass.cpp + - Differences in GLIBC locales. Needs investigation. + libc++ :: localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_zh_CN.pass.cpp + - Differences in GLIBC locales. Puts '-' before 'CNY' as opposed to after. + libc++ :: localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_ru_RU.pass.cpp + - Differences in GLIBC locales. Needs investigation. + libc++ :: localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_zh_CN.pass.cpp + - Differences in GLIBC locales. Puts '-' before 'CNY' as opposed to after. + libc++ :: localization/locale.categories/category.monetary/locale.moneypunct.byname/decimal_point.pass.cpp + - Expects ',' for ru_RU but gets '.'. + libc++ :: localization/locale.categories/category.monetary/locale.moneypunct.byname/thousands_sep.pass.cpp + - Expects ',' for ru_RU but gets '.'. + libc++ :: localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp + - GLIBC puts "+nan" where "nan" is expected. + libc++ :: localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp + - GLIBC has different locale data for fr_FR, ru_RU and zh_CN. + The is also a possible bug in zh_CN tests. Needs investigation. + libc++ :: localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp + - Idem. + libc++ :: localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp + - Some test cases are non-portible with GLIBC (include time zone). + Other failures related to GLIBC locale data. Needs investigation. + libc++ :: localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp + - Idem. + libc++ :: localization/locale.categories/category.time/locale.time.get.byname/get_weekday.pass.cpp + - GLIBC starts weekdays with lowercase letters. Test case expectes upper case. + libc++ :: localization/locale.categories/category.time/locale.time.get.byname/get_weekday_wide.pass.cpp + - Idem. + libc++ :: localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp + - GLIBC abbreviated days end with '.'. Test case expects no '.'. + libc++ :: localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put2.pass.cpp + - Needs investigation. + libc++ :: localization/locale.categories/facet.numpunct/locale.numpunct.byname/grouping.pass.cpp + - Fails due to differences in GLIBC locales + libc++ :: localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp + - Fails due to differences in GLIBC locales + libc++ :: re/re.alg/re.alg.match/basic.pass.cpp + - Needs investigation. + libc++ :: re/re.alg/re.alg.match/ecma.pass.cpp + - Idem. + libc++ :: re/re.alg/re.alg.match/extended.pass.cpp + - Idem. + libc++ :: re/re.alg/re.alg.search/awk.pass.cpp + - Idem. + libc++ :: re/re.alg/re.alg.search/basic.pass.cpp + - Idem. + libc++ :: re/re.alg/re.alg.search/ecma.pass.cpp + - Idem. + libc++ :: re/re.alg/re.alg.search/extended.pass.cpp + - Idem. + libc++ :: re/re.traits/lookup_collatename.pass.cpp + - Idem. + libc++ :: re/re.traits/translate_nocase.pass.cpp + - Idem. + +******************** +Expected Failing Tests (5): + libc++ :: depr/depr.c.headers/math_h.pass.cpp + - Fails a static assert that the return type of + isnan(double) and isinf(double) is a bool. see PR18382. + libc++ :: numerics/c.math/cmath_isinf.pass.cpp + - Idem. + libc++ :: numerics/c.math/cmath_isnan.pass.cpp + - Idem. + libc++ :: strings/c.strings/cuchar.pass.cpp + - <cuchar> is not implemented. + libc++ :: strings/c.strings/version_cuchar.pass.cpp + - Idem. + + Expected Passes : 4716 + Expected Failures : 5 + Unexpected Failures: 33 + +******************************************************************************** + +-- Testing: 4754 tests, 2 threads -- +FAIL: libc++ :: localization/locale.categories/category.collate/locale.collate.byname/compare.pass.cpp (2073 of 4754) +******************** TEST 'libc++ :: localization/locale.categories/category.collate/locale.collate.byname/compare.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmp4DtKocexe' '/home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.collate/locale.collate.byname/compare.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmp4DtKocexe' +Exit Code: -6 +Standard Error: +-- +tmp4DtKocexe: /home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.collate/locale.collate.byname/compare.pass.cpp:38: int main(): Assertion `f.compare(s2.data(), s2.data() + s2.size(), s3.data(), s3.data() + s3.size()) == 1' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: localization/locale.categories/category.ctype/locale.ctype.byname/tolower_1.pass.cpp (2152 of 4754) +******************** TEST 'libc++ :: localization/locale.categories/category.ctype/locale.ctype.byname/tolower_1.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmpAfkClkexe' '/home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.ctype/locale.ctype.byname/tolower_1.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmpAfkClkexe' +Exit Code: -6 +Standard Error: +-- +tmpAfkClkexe: /home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.ctype/locale.ctype.byname/tolower_1.pass.cpp:38: int main(): Assertion `f.tolower('\xDA') == '\xFA'' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: localization/locale.categories/category.ctype/locale.ctype.byname/tolower_many.pass.cpp (2153 of 4754) +******************** TEST 'libc++ :: localization/locale.categories/category.ctype/locale.ctype.byname/tolower_many.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmpGjakKeexe' '/home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.ctype/locale.ctype.byname/tolower_many.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmpGjakKeexe' +Exit Code: -6 +Standard Error: +-- +tmpGjakKeexe: /home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.ctype/locale.ctype.byname/tolower_many.pass.cpp:35: int main(): Assertion `in[0] == '\xFA'' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: localization/locale.categories/category.ctype/locale.ctype.byname/toupper_1.pass.cpp (2154 of 4754) +******************** TEST 'libc++ :: localization/locale.categories/category.ctype/locale.ctype.byname/toupper_1.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmp0gK3Y6exe' '/home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.ctype/locale.ctype.byname/toupper_1.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmp0gK3Y6exe' +Exit Code: -6 +Standard Error: +-- +tmp0gK3Y6exe: /home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.ctype/locale.ctype.byname/toupper_1.pass.cpp:39: int main(): Assertion `f.toupper('\xFA') == '\xDA'' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: localization/locale.categories/category.ctype/locale.ctype.byname/toupper_many.pass.cpp (2155 of 4754) +******************** TEST 'libc++ :: localization/locale.categories/category.ctype/locale.ctype.byname/toupper_many.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmpCoF624exe' '/home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.ctype/locale.ctype.byname/toupper_many.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmpCoF624exe' +Exit Code: -6 +Standard Error: +-- +tmpCoF624exe: /home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.ctype/locale.ctype.byname/toupper_many.pass.cpp:35: int main(): Assertion `in[0] == '\xDA'' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: localization/locale.categories/category.ctype/locale.ctype.byname/widen_1.pass.cpp (2157 of 4754) +******************** TEST 'libc++ :: localization/locale.categories/category.ctype/locale.ctype.byname/widen_1.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmpjOo8fnexe' '/home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.ctype/locale.ctype.byname/widen_1.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmpjOo8fnexe' +Exit Code: -6 +Standard Error: +-- +tmpjOo8fnexe: /home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.ctype/locale.ctype.byname/widen_1.pass.cpp:53: int main(): Assertion `f.widen(char(-5)) == wchar_t(251)' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: localization/locale.categories/category.ctype/locale.ctype.byname/widen_many.pass.cpp (2158 of 4754) +******************** TEST 'libc++ :: localization/locale.categories/category.ctype/locale.ctype.byname/widen_many.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmpDWZ5aNexe' '/home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.ctype/locale.ctype.byname/widen_many.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmpDWZ5aNexe' +Exit Code: -6 +Standard Error: +-- +tmpDWZ5aNexe: /home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.ctype/locale.ctype.byname/widen_many.pass.cpp:60: int main(): Assertion `v[6] == wchar_t(133)' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_ru_RU.pass.cpp (2184 of 4754) +******************** TEST 'libc++ :: localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_ru_RU.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmpfA5HOrexe' '/home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_ru_RU.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmpfA5HOrexe' +Exit Code: -6 +Standard Error: +-- +tmpfA5HOrexe: /home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_ru_RU.pass.cpp:71: int main(): Assertion `iter.base() == v.data() + v.size()' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_zh_CN.pass.cpp (2185 of 4754) +******************** TEST 'libc++ :: localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_zh_CN.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmpTI59qtexe' '/home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_zh_CN.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmpTI59qtexe' +Exit Code: -6 +Standard Error: +-- +tmpTI59qtexe: /home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_zh_CN.pass.cpp:314: int main(): Assertion `iter.base() == v.data() + v.size()' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_ru_RU.pass.cpp (2192 of 4754) +******************** TEST 'libc++ :: localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_ru_RU.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmp1psSk2exe' '/home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_ru_RU.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmp1psSk2exe' +Exit Code: -6 +Standard Error: +-- +tmp1psSk2exe: /home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_ru_RU.pass.cpp:70: int main(): Assertion `ex == "0,00 "' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_zh_CN.pass.cpp (2193 of 4754) +******************** TEST 'libc++ :: localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_zh_CN.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmpKwjbrPexe' '/home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_zh_CN.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmpKwjbrPexe' +Exit Code: -6 +Standard Error: +-- +tmpKwjbrPexe: /home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_zh_CN.pass.cpp:218: int main(): Assertion `ex == "CNY -0.01"' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: localization/locale.categories/category.monetary/locale.moneypunct.byname/decimal_point.pass.cpp (2198 of 4754) +******************** TEST 'libc++ :: localization/locale.categories/category.monetary/locale.moneypunct.byname/decimal_point.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmp4UnNQ2exe' '/home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/decimal_point.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmp4UnNQ2exe' +Exit Code: -6 +Standard Error: +-- +tmp4UnNQ2exe: /home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/decimal_point.pass.cpp:114: int main(): Assertion `f.decimal_point() == ','' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: localization/locale.categories/category.monetary/locale.moneypunct.byname/thousands_sep.pass.cpp (2205 of 4754) +******************** TEST 'libc++ :: localization/locale.categories/category.monetary/locale.moneypunct.byname/thousands_sep.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmp6MGZAmexe' '/home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/thousands_sep.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmp6MGZAmexe' +Exit Code: -6 +Standard Error: +-- +tmp6MGZAmexe: /home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/thousands_sep.pass.cpp:114: int main(): Assertion `f.thousands_sep() == ' '' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp (2229 of 4754) +******************** TEST 'libc++ :: localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmp7AME77exe' '/home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmp7AME77exe' +Exit Code: -6 +Standard Error: +-- +tmp7AME77exe: /home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp:10886: void test5(): Assertion `ex == "nan"' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp (2249 of 4754) +******************** TEST 'libc++ :: localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmpooRjFgexe' '/home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmpooRjFgexe' +Exit Code: -6 +Standard Error: +-- +tmpooRjFgexe: /home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp:64: int main(): Assertion `i.base() == in+sizeof(in)/sizeof(in[0])-1' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp (2250 of 4754) +******************** TEST 'libc++ :: localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmpcm_vb9exe' '/home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmpcm_vb9exe' +Exit Code: -6 +Standard Error: +-- +tmpcm_vb9exe: /home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp:64: int main(): Assertion `i.base() == in+sizeof(in)/sizeof(in[0])-1' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp (2253 of 4754) +******************** TEST 'libc++ :: localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmpLKJQXHexe' '/home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmpLKJQXHexe' +Exit Code: -6 +Standard Error: +-- +tmpLKJQXHexe: /home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp:51: int main(): Assertion `i.base() == in+sizeof(in)/sizeof(in[0])-1' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp (2254 of 4754) +******************** TEST 'libc++ :: localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmpiDgYiqexe' '/home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmpiDgYiqexe' +Exit Code: -6 +Standard Error: +-- +tmpiDgYiqexe: /home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp:51: int main(): Assertion `i.base() == in+sizeof(in)/sizeof(in[0])-1' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: localization/locale.categories/category.time/locale.time.get.byname/get_weekday.pass.cpp (2257 of 4754) +******************** TEST 'libc++ :: localization/locale.categories/category.time/locale.time.get.byname/get_weekday.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmpAUaH78exe' '/home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_weekday.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmpAUaH78exe' +Exit Code: -6 +Standard Error: +-- +tmpAUaH78exe: /home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_weekday.pass.cpp:74: int main(): Assertion `i.base() == in+sizeof(in)/sizeof(in[0])-1' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: localization/locale.categories/category.time/locale.time.get.byname/get_weekday_wide.pass.cpp (2258 of 4754) +******************** TEST 'libc++ :: localization/locale.categories/category.time/locale.time.get.byname/get_weekday_wide.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmp7iGNTDexe' '/home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_weekday_wide.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmp7iGNTDexe' +Exit Code: -6 +Standard Error: +-- +tmp7iGNTDexe: /home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_weekday_wide.pass.cpp:72: int main(): Assertion `i.base() == in+sizeof(in)/sizeof(in[0])-1' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp (2277 of 4754) +******************** TEST 'libc++ :: localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmpnT0vVFexe' '/home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmpnT0vVFexe' +Exit Code: -6 +Standard Error: +-- +tmpnT0vVFexe: /home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp:73: int main(): Assertion `(ex == "Today is Samedi which is abbreviated Sam.")|| (ex == "Today is samedi which is abbreviated sam." )' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put2.pass.cpp (2281 of 4754) +******************** TEST 'libc++ :: localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put2.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmp47THCHexe' '/home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put2.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmp47THCHexe' +Exit Code: -6 +Standard Error: +-- +tmp47THCHexe: /home/eric/workspace/staging-libcxx/test/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put2.pass.cpp:185: int main(): Assertion `ex == "May"' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: localization/locale.categories/facet.numpunct/locale.numpunct.byname/grouping.pass.cpp (2285 of 4754) +******************** TEST 'libc++ :: localization/locale.categories/facet.numpunct/locale.numpunct.byname/grouping.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmpn6fLHJexe' '/home/eric/workspace/staging-libcxx/test/localization/locale.categories/facet.numpunct/locale.numpunct.byname/grouping.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmpn6fLHJexe' +Exit Code: -6 +Standard Error: +-- +tmpn6fLHJexe: /home/eric/workspace/staging-libcxx/test/localization/locale.categories/facet.numpunct/locale.numpunct.byname/grouping.pass.cpp:57: int main(): Assertion `np.grouping() == "\x7F"' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp (2286 of 4754) +******************** TEST 'libc++ :: localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmpkna8llexe' '/home/eric/workspace/staging-libcxx/test/localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmpkna8llexe' +Exit Code: -6 +Standard Error: +-- +tmpkna8llexe: /home/eric/workspace/staging-libcxx/test/localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp:57: int main(): Assertion `np.thousands_sep() == ','' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: re/re.alg/re.alg.match/basic.pass.cpp (3203 of 4754) +******************** TEST 'libc++ :: re/re.alg/re.alg.match/basic.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmp0wkTrlexe' '/home/eric/workspace/staging-libcxx/test/re/re.alg/re.alg.match/basic.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmp0wkTrlexe' +Exit Code: -6 +Standard Error: +-- +tmp0wkTrlexe: /home/eric/workspace/staging-libcxx/test/re/re.alg/re.alg.match/basic.pass.cpp:624: int main(): Assertion `std::regex_match(s, m, std::regex("[a[=M=]z]", std::regex_constants::basic))' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: re/re.alg/re.alg.match/ecma.pass.cpp (3204 of 4754) +******************** TEST 'libc++ :: re/re.alg/re.alg.match/ecma.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmpghcl7yexe' '/home/eric/workspace/staging-libcxx/test/re/re.alg/re.alg.match/ecma.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmpghcl7yexe' +Exit Code: -6 +Standard Error: +-- +tmpghcl7yexe: /home/eric/workspace/staging-libcxx/test/re/re.alg/re.alg.match/ecma.pass.cpp:585: int main(): Assertion `std::regex_match(s, m, std::regex("[a[=M=]z]"))' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: re/re.alg/re.alg.match/extended.pass.cpp (3208 of 4754) +******************** TEST 'libc++ :: re/re.alg/re.alg.match/extended.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmpGVUdIMexe' '/home/eric/workspace/staging-libcxx/test/re/re.alg/re.alg.match/extended.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmpGVUdIMexe' +Exit Code: -6 +Standard Error: +-- +tmpGVUdIMexe: /home/eric/workspace/staging-libcxx/test/re/re.alg/re.alg.match/extended.pass.cpp:622: int main(): Assertion `std::regex_match(s, m, std::regex("[a[=M=]z]", std::regex_constants::extended))' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: re/re.alg/re.alg.search/awk.pass.cpp (3218 of 4754) +******************** TEST 'libc++ :: re/re.alg/re.alg.search/awk.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmpgFuw4cexe' '/home/eric/workspace/staging-libcxx/test/re/re.alg/re.alg.search/awk.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmpgFuw4cexe' +Exit Code: -6 +Standard Error: +-- +tmpgFuw4cexe: /home/eric/workspace/staging-libcxx/test/re/re.alg/re.alg.search/awk.pass.cpp:694: int main(): Assertion `std::regex_search(s, m, std::regex("[a[=M=]z]", std::regex_constants::awk))' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: re/re.alg/re.alg.search/basic.pass.cpp (3219 of 4754) +******************** TEST 'libc++ :: re/re.alg/re.alg.search/basic.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmpXeQuwGexe' '/home/eric/workspace/staging-libcxx/test/re/re.alg/re.alg.search/basic.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmpXeQuwGexe' +Exit Code: -6 +Standard Error: +-- +tmpXeQuwGexe: /home/eric/workspace/staging-libcxx/test/re/re.alg/re.alg.search/basic.pass.cpp:696: int main(): Assertion `std::regex_search(s, m, std::regex("[a[=M=]z]", std::regex_constants::basic))' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: re/re.alg/re.alg.search/ecma.pass.cpp (3220 of 4754) +******************** TEST 'libc++ :: re/re.alg/re.alg.search/ecma.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmpvGAAImexe' '/home/eric/workspace/staging-libcxx/test/re/re.alg/re.alg.search/ecma.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmpvGAAImexe' +Exit Code: -6 +Standard Error: +-- +tmpvGAAImexe: /home/eric/workspace/staging-libcxx/test/re/re.alg/re.alg.search/ecma.pass.cpp:675: int main(): Assertion `std::regex_search(s, m, std::regex("[a[=M=]z]"))' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: re/re.alg/re.alg.search/extended.pass.cpp (3224 of 4754) +******************** TEST 'libc++ :: re/re.alg/re.alg.search/extended.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmpGvouurexe' '/home/eric/workspace/staging-libcxx/test/re/re.alg/re.alg.search/extended.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmpGvouurexe' +Exit Code: -6 +Standard Error: +-- +tmpGvouurexe: /home/eric/workspace/staging-libcxx/test/re/re.alg/re.alg.search/extended.pass.cpp:694: int main(): Assertion `std::regex_search(s, m, std::regex("[a[=M=]z]", std::regex_constants::extended))' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: re/re.traits/lookup_collatename.pass.cpp (3349 of 4754) +******************** TEST 'libc++ :: re/re.traits/lookup_collatename.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmpItXmtJexe' '/home/eric/workspace/staging-libcxx/test/re/re.traits/lookup_collatename.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmpItXmtJexe' +Exit Code: -6 +Standard Error: +-- +tmpItXmtJexe: /home/eric/workspace/staging-libcxx/test/re/re.traits/lookup_collatename.pass.cpp:31: void test(const char_type *, const std::basic_string<char_type> &) [char_type = char]: Assertion `t.lookup_collatename(F(A), F(A + t.length(A))) == expected' failed. +-- + +Compiled test failed unexpectedly! +******************** +FAIL: libc++ :: re/re.traits/translate_nocase.pass.cpp (3354 of 4754) +******************** TEST 'libc++ :: re/re.traits/translate_nocase.pass.cpp' FAILED ******************** +Compiled With: '/opt/llvm-tot/bin/clang++' '-o' '/tmp/tmpGsRNu3exe' '/home/eric/workspace/staging-libcxx/test/re/re.traits/translate_nocase.pass.cpp' '-nostdinc++' '-std=c++11' '-D__STDC_FORMAT_MACROS' '-D__STDC_LIMIT_MACROS' '-D__STDC_CONSTANT_MACROS' '-I/home/eric/workspace/staging-libcxx/test/../include' '-I/home/eric/workspace/staging-libcxx/test/../test/support' '-nodefaultlibs' '-L/home/eric/workspace/build-libcxx-staging/lib' '-lc++' '-lc++abi' '-lgcc_eh' '-lc' '-lm' '-lpthread' '-lrt' '-lgcc_s' '-Wl,-R' '/home/eric/workspace/build-libcxx-staging/lib' +Command: '/tmp/tmpGsRNu3exe' +Exit Code: -6 +Standard Error: +-- +tmpGsRNu3exe: /home/eric/workspace/staging-libcxx/test/re/re.traits/translate_nocase.pass.cpp:44: int main(): Assertion `t.translate_nocase('\xDA') == '\xFA'' failed. +-- + +Compiled test failed unexpectedly! +******************** +</pre> +</body> +</html> diff --git a/chromium/buildtools/third_party/libc++/trunk/www/results.Windows.html b/chromium/buildtools/third_party/libc++/trunk/www/results.Windows.html new file mode 100644 index 00000000000..a5ec1218a1b --- /dev/null +++ b/chromium/buildtools/third_party/libc++/trunk/www/results.Windows.html @@ -0,0 +1,487 @@ +<!DOCTYPE html> +<html> +<head> + <title>results.Windows</title> +</head> +<body> +<pre> +All failures in the libc++ test suite will be documented here. + +Last run was with Clang (pre-3.1) and GCC 4.6.3 (with dw2 exception handling) and + mingw-w64 v2.0.3 on i686-w64-mingw32. + +The following line was added to ./lib/buildit to make a static libc++ library because a DLL requires "declspec(dllexport)" or a .def file: +ar rcs libc++.a *.o +I also deleted libc++.dll and libc++.dll.a to make sure libc++ was linked statically to prevent unrelated issues from contaminating the test results. +The commands to build and test were (-nodefaultlibs does not work, lots of MinGW related stuff gets left out resulting in linker failures): +TRIPLE=i686-w64-mingw32 ./buildit +TRIPLE=i686-w64-mingw32 HEADER_INCLUDE="-I/home/Ruben/libcxx/include" LIBS="-L/home/ruben/libcxx/lib -lc++ -lpthread -lsupc++ -lmsvcr100 -Wl,--allow-multiple-definition" ./testit > test.log 2>&1 + +Note: Some locale tests may "Need investigating", but I think most problems are + caused by wrong/unportable locale naming in the tests. +Note: Some tests failed to link because "test.exe" was still running when ld.exe + tried to link the next test. I left these failures out of the list; they + account for about 10-30 failures, and are counted in the total scores below. + I reran some of these failures manually and they passed. +Note: Some tests fail at runtime but pass when run manually. Usage of std::cout + segfaults so further investigation is difficult. These also contribute to + the failures total, but are left out of the failure list, as the cause is + probably not located in that part of libc++, not locatable due to the lack + of usable debug info generated by Clang at this time. + +TOTAL RESULTS: +Section failures / total sections: 104 / 1064 = 9.8% failures +Test failures / total number of tests: 292 / 4326 = 6.7% failures + +depr/ + depr.c.headers/ + inttypes_h.pass.cpp: missing macros for C++. + uchar_h.pass.cpp: bug in mingw-w64 headers for C++11 builtin char types. + wchar_h.pass.cpp: Windows does not have swprintf, should use _snwprintf. + Suggest #define swprintf as _snwprintf for _WIN32. +exception.unexpected/ + set.unexpected/ + get_unexpected.pass.cpp: Segmentation fault - needs investigation. + set_unexpected.pass.cpp: idem. +diagnostics/ + syserr/ + syserr.errcat/ + syserr.errcat.objects/ + system_category.pass.cpp: Needs investigation. +input.output/ + file.streams/ + c.files/ + cinttypes.pass.cpp: missing macros for C++. + fstreams/ + filebuf.assign/ + member_swap.pass.cpp: Segmentation fault - needs investigation. + move_assign.pass.cpp: idem. + nonmember_swap.pass.cpp: idem. + filebuf.cons/ + move.pass.cpp: idem. + filebuf.members/ + open_pointers.pass.cpp: idem. + filebuf.virtuals/ + overflow.pass.cpp: idem. + pbackfail.pass.cpp: idem. + seekoff.pass.cpp: idem. + underflow.pass.cpp: idem. + fstream.assign/ + member_swap.pass.cpp: idem. + move_assign.pass.cpp: idem. + nonmember_swap.pass.cpp: idem. + fstream.cons/ + move.pass.cpp: idem. + pointer.pass.cpp: idem. + string.pass.cpp: idem. + fstream.members/ + open_pointer.pass.cpp: idem. + open_string.pass.cpp: idem. + ifstream.assign/ + member_swap.pass.cpp: idem. + move_assign.pass.cpp: idem. + nonmember_swap.pass.cpp: idem. + ifstream.cons/ + move.pass.cpp: idem. + pointer.pass.cpp: idem. + string.pass.cpp: idem. + ifstream.members/ + open_pointer.pass.cpp: idem. + open_string.pass.cpp: idem. + rdbuf.pass.cpp: idem. + ofstream.assign/ + member_swap.pass.cpp: idem. + move_assign.pass.cpp: idem. + nonmember_swap.pass.cpp: idem. + ofstream.cons/ + move.pass.cpp: idem. + pointer.pass.cpp: idem. + string.pass.cpp: idem. + ofstream.members/ + open_pointer.pass.cpp: idem. + open_string.pass.cpp: idem. + rdbuf.pass.cpp: idem. + iostream.format/ + ext.manip + get_money.pass.cpp: Windows locale names don't follow UNIX convention. + get_time.pass.cpp: idem. + put_money.pass.cpp: idem. + put_time.pass.cpp: idem. + output.streams/ + ostream.formatted/ + ostream.inserters.arithmetic/ + long_double.pass.cpp: Segfault - needs investigation. + pointer.pass.cpp: idem. + ostream_sentry/ + destruct.pass.cpp: idem. + iostream.objects/ + narrow.stream.objects/ + cerr.pass.cpp: idem. + cin.pass.cpp: idem. + wide.stream.objects/ + wcerr.pass.cpp: idem. + wcin.pass.cpp: idem. + iostreams.base/ + ios/ + basic.ios.members/ + copyfmt.pass.cpp: Windows locale names don't follow UNIX convention. + imbue.pass.cpp: idem. + move.pass.cpp: idem. + swap.pass.cpp: Windows locale names don't follow UNIX convention. + ios.base/ + ios.base.callback/ + register_callback.pass.cpp: Windows locale names don't follow UNIX convention. + ios.base.locales/ + imbue.pass.cpp: Windows locale names don't follow UNIX convention. + stream.buffers/ + streambuf/ + streambuf.cons/ + copy.pass.cpp: Windows locale names don't follow UNIX convention. + default.pass.cpp: idem. + streambuf.members/ + streambuf.buffer/ + locales.pass.cpp: Windows locale names don't follow UNIX convention. + streambuf.protected/ + streambuf.assign/ + assign.pass.cpp: Windows locale names don't follow UNIX convention. + swap.pass.cpp: idem. +language.support/ + support.exception/ + except.nested/ + assign.pass.cpp: Needs investigation. + ctor_copy.pass.cpp: idem. + ctor_default.pass.cpp: idem. + rethrow_if_nested.pass.cpp: idem. + rethrow_nested.pass.cpp: idem. + throw_with_nested.pass.cpp: idem. + propagation/ + current_exception.pass.cpp: Needs investigation. + exception_ptr.pass.cpp: idem. + make_exception_ptr.pass.cpp: idem. + rethrow_exception.pass.cpp: idem. + uncaught/ + uncaught_exception.pass.cpp: Needs investigation. + support.limits/ + limits/ + numeric.limits.members/ + digits.pass.cpp: Needs investigation (wrong assumptions?). + digits10.pass.cpp: idem. + support.runtime/ + support.start.term/ + quick_exit.pass.cpp: Not declared in libc++ headers. Is it from the ABI lib? + support.types/ + max_align_t.pass.cpp: needs investigation (wrong assumptions?). +localization/ + locale.categories/ + category.collate/ + locale.collate.byname/ + compare.pass.cpp: Windows locale names don't follow UNIX convention. + hash.pass.cpp: idem. + transform.pass.cpp: getenv should be replaced by putenv for portability. + Windows locale names don't follow UNIX convention. + types.pass.cpp: Windows locale names don't follow UNIX convention. + locale.categories/ + category.ctype/ + locale.codecvt/ + locale.codecvt.members/ + wchar_t_in.pass.cpp: Most likely wchar_t is assumed 4 bytes. + wchar_t_length.pass.cpp: idem. + wchar_t_out.pass.cpp: idem. + wchar_t_unshift.pass.cpp: idem. + locale.codecvt.byname/ + ctor_wchar_t.pass.cpp: Windows locale names don't follow UNIX convention. + locale.ctype.byname/ + is_1.pass.cpp: Windows locale names don't follow UNIX convention. + is_many.pass.cpp: idem. + narrow_1.pass.cpp: idem. + narrow_many.pass.cpp: idem. + scan_is.pass.cpp: idem. + scan_not.pass.cpp: idem. + tolower_1.pass.cpp: idem. + tolower_many.pass.cpp: idem. + toupper_1.pass.cpp: idem. + toupper_many.pass.cpp: idem. + types.pass.cpp: idem. + widen_1.pass.cpp: idem. + widen_many.pass.cpp: idem. + category.monetary/ + locale.money.get/ + locale.money.get.members/ + get_long_double_en_US.pass.cpp: Windows locale names don't follow UNIX convention. + get_long_double_fr_FR.pass.cpp: idem. + get_long_double_ru_RU.pass.cpp: idem. + get_long_double_zh_CN.pass.cpp: idem. + get_string_en_US.pass.cpp: idem. + locale.money.put/ + locale.money.put.members/ + put_long_double_en_US.pass.cpp: Windows locale names don't follow UNIX convention. + put_long_double_fr_FR.pass.cpp: idem. + put_long_double_ru_RU.pass.cpp: idem. + put_long_double_zh_CN.pass.cpp: idem. + put_string_en_US.pass.cpp: idem. + locale.moneypunct.byname/ + curr_symbol.pass.cpp: Failed constructing from C locale. Needs investigation. + decimal_point.pass.cpp: idem. + frac_digits.pass.cpp: idem. + grouping.pass.cpp: idem. + neg_format.pass.cpp: idem. + negative_sign.pass.cpp: idem. + pos_format.pass.cpp: idem. + positive_sign.pass.cpp: idem. + thousands_sep.pass.cpp: idem. + category.numeric/ + locale.nm.put/ + facet.num.put.members/ + put_double.pass.cpp: idem. (different floating point format?) + put_long_double.pass.cpp: idem. + put_pointer.pass.cpp: idem. + locale.num.get/ + facet.num.get.members/ + get_double.pass.cpp: Needs investigating. + get_float.pass.cpp: idem. + get_long_double.pass.cpp: idem. + get_pointer.pass.cpp: idem. + category.time/ + locale.time.get/ + locale.time.get.byname/ + date_order.pass.cpp: Windows locale names don't follow UNIX convention. + date_order_wide.pass.cpp: idem. + get_date.pass.cpp: idem. + get_date_wide.pass.cpp: idem. + get_monthname.pass.cpp: idem. + get_monthname_wide.pass.cpp: idem. + get_one.pass.cpp: idem. + get_one_wide.pass.cpp: idem. + get_time.pass.cpp: idem. + get_time_wide.pass.cpp: idem. + get_weekday.pass.cpp: idem. + get_weekday_wide.pass.cpp: idem. + get_year.pass.cpp: idem. + get_year_wide.pass.cpp: idem. + locale.time.put/ + locale.time.put.members/ + put1.pass.cpp: Needs investigating. + put2.pass.cpp: idem. + locale.time.put.byname/ + put1.pass.cpp: Windows locale names don't follow UNIX convention. + facet.numpunct/ + locale.numpunct/ + locale.numpunct.byname/ + decimal_point.pass.cpp: Failed constructing from C locale. Needs investigation. + grouping.pass.cpp: idem. + thousands_sep.pass.cpp: idem. + locale.stdcvt/ + codecvt_utf16_in.pass.cpp: 0x40003 does not fit in a 2-byte wchar_t. + codecvt_utf16_out.pass.cpp: idem. + codecvt_utf8_in.pass.cpp: idem. + codecvt_utf8_out.pass.cpp: idem. + codecvt_utf8_utf16_in.pass: idem. + codecvt_utf8_utf16_out.pass.cpp: idem. + locales/ + locale/ + locale.cons/ + assign.pass.cpp: Windows locale names don't follow UNIX convention. + char_pointer.pass.cpp: idem. + copy.pass.cpp: idem. + default.pass.cpp: idem. + locale_char_pointer_cat.pass.cpp: idem. + locale_facetptr.pass.cpp: idem. + locale_locale_cat.pass.cpp: idem. + locale_string_cat.pass.cpp: idem. + string.pass.cpp: idem. + locale.members/ + name.pass.cpp: Windows locale names don't follow UNIX convention. + locale.operators/ + eq.pass.cpp: Windows locale names don't follow UNIX convention. + locale/locale.statics/ + classic.pass.cpp: Failed constructing from C locale. Needs investigation. + global.pass.cpp: Windows locale names don't follow UNIX convention. + locale.convenience/ + conversions/ + conversions.buffer/ + overflow.pass.cpp: Needs investigation. + pbackfail.pass.cpp: idem. + seekoff.pass.cpp: idem. + test.pass.cpp: idem. + underflow.pass.cpp: idem. + conversions.string/ + converted.pass.cpp: out of range hex sequence due to 2-byte wchar_t. + from_bytes.pass.cpp: idem (This test passed while it probably shouldn't!). + to_bytes.pass.cpp: idem. +numerics/ + complex.number/ + complex.value.ops/ + abs.pass.cpp: Failed assertion. + arg.pass.cpp: idem. + rand/ + rand.device/ + ctor.pass.cpp: No such thing as /dev/urandom on Windows. Need alternative. + entropy.pass.cpp: idem. + eval.pass.cpp: idem. + rand.dis/ + rand.dist.bern/ + rand.dist.bern.bernoulli/ + io.pass.cpp: Needs investigation. (different output double format?) + rand.dist.bern.bin/ + io.pass.cpp: Needs investigation. (different output double format?) + rand.dist.bern.geo/ + io.pass.cpp: Needs investigation. (different output double format?) + rand.dist.bern.negbin/ + io.pass.cpp: Needs investigation. (different output double format?) + rand.dist.norm/ + rand.dist.norm.cauchy/ + io.pass.cpp: Needs investigation. (different output double format?) + rand.dist.norm.chisq/ + io.pass.cpp: Needs investigation. (different output double format?) + rand.dist.norm.norm.f/ + io.pass.cpp: Needs investigation. (different output double format?) + rand.dist.norm.lognormal/ + io.pass.cpp: Needs investigation. (different output double format?) + rand.dist.norm.normal/ + io.pass.cpp: Needs investigation. (different output double format?) + rand.dist.norm.t/ + io.pass.cpp: Needs investigation. (different output double format?) + rand.dist.pois/ + rand.dist.pois.exp/ + io.pass.cpp: Needs investigation. (different output double format?) + rand.dist.pois.extreme/ + io.pass.cpp: Needs investigation. (different output double format?) + rand.dist.pois.gamma/ + io.pass.cpp: Needs investigation. (different output double format?) + rand.dist.pois.poisson/ + io.pass.cpp: Needs investigation. (different output double format?) + rand.dist.pois.weibull/ + io.pass.cpp: Needs investigation. (different output double format?) + rand.dist.samp/ + rand.dist.samp.discrete/ + io.pass.cpp: Needs investigation. (different output double format?) + rand.dist.samp.pconst/ + io.pass.cpp: Needs investigation. (different output double format?) + rand.dist.samp.plinear/ + io.pass.cpp: Needs investigation. (different output double format?) + rand.dist.uni/ + rand.dist.uni.real/ + io.pass.cpp: Needs investigation. (different output double format?) +re/ + re.alg/ + re.alg.match/ + awk.pass.cpp: Needs investigation. + basic.pass.cpp: idem. + ecma.pass.cpp: idem. + extended.pass.cpp: idem. + re.alg.search/ + awk.pass.cpp: Needs investigation. + basic.pass.cpp: idem. + ecma.pass.cpp: idem. + extended.pass.cpp: idem. + re.regex/ + re.regex.locale/ + imbue.pass.cpp: Windows locale names don't follow UNIX convention. + re.traits/ + default.pass.cpp: Windows locale names don't follow UNIX convention. + getloc.pass.cpp: idem. + imbue.pass.cpp: idem. + isctype.pass.cpp: Needs investigation. + lookup_classname.pass.cpp: idem. + lookup_collatename.pass.cpp: Windows locale names don't follow UNIX convention. + transform.pass.cpp: idem. + transform_primary.pass.cpp: idem + translate_nocase.pass.cpp: Needs investigation. +strings/ + c.strings/ + cuchar.pass.cpp: see previous note about uchar.h. + cwchar.pass.cpp: I suggest including the win32 support header which defines + (v)swprintf to the Windows equivalent. + version_cuchar.pass.cpp: see previous note about uchar.h. + string.conversions/ + stod.pass.cpp: "no conversion". Needs investigation. + stof.pass.cpp: idem. + to_string.pass.cpp: Needs investigation. + to_wstring.pass.cpp: idem. +thread/ + futures/ + futures.async/ + async.pass.cpp: Needs investigation. + futures.promise/ + alloc_ctor.pass.cpp: Needs investigation. + default.pass.cpp: idem. + dtor.pass.cpp: idem. + get_future.pass.cpp: idem. + move_assign.pass.cpp: idem. + move_ctor.pass.cpp: idem. + set_exception.pass.cpp: idem. + set_exception_at_thread_exit.pass.cpp: idem. + set_lvalue.pass.cpp: idem. + set_lvalue_at_thread_exit.pass.cpp: idem. + set_rvalue.pass.cpp: idem. + set_rvalue_at_thread_exit.pass.cpp: idem. + set_value_at_thread_exit_const.pass.cpp: idem. + set_value_at_thread_exit_void.pass.cpp: idem. + set_value_const.pass.cpp: idem. + set_value_void.pass.cpp: idem. + swap.pass.cpp: idem. + futures.shared_future/ + copy_assign.pass.cpp: Needs investigation. + copy_ctor.pass.cpp: idem. + ctor_future.pass.cpp: idem. + dtor.pass.cpp: idem. + get.pass.cpp: idem. + move_assign.pass.cpp: idem. + move_ctor.pass.cpp: idem. + wait.pass.cpp: idem. + wait_for.pass.cpp: idem. + wait_until.pass.cpp: idem. + futures.tas/ + futures.task.members/ + assign_move.pass.cpp: Needs investigation. + ctor_func.pass.cpp: idem. + ctor_func_alloc.pass.cpp: idem. + ctor_move.pass.cpp: idem. + dtor.pass.cpp: idem. + get_future.pass.cpp: idem. + make_ready_at_thread_exit.pass.cpp: idem. + operator.pass.cpp: idem. + reset.pass.cpp: idem. + swap.pass.cpp: idem. + futures.task.nonmembers/ + swap.pass.cpp: Needs investigation. + futures.unique_future/ + dtor.pass.cpp: Needs investigation. + get.pass.cpp: idem. + move_assign.pass.cpp: idem. + move_ctor.pass.cpp: idem. + share.pass.cpp: idem. + wait.pass.cpp: idem. + wait_for.pass.cpp: idem. + wait_until.pass.cpp: idem. + thread.condition/ + thread.condition.condvar/ + wait_for.pass.cpp: Needs investigation. + thread.condition.condvarany/ + wait_for.pass.cpp: Needs investigation. + thread.mutex/ + thread.lock/ + thread.lock.unique/ + thread.lock.unique.cons/ + mutex_try_to_lock.pass.cpp: Needs investigation. + thread.threads/ + thread.thread.class/ + thread.thread.constr/ + move.pass.cpp: Needs investigation. + thread.thread.id/ + join.pass.cpp: Needs investigation. + thread.thread.static/ + hardware_concurrency.pass.cpp: Needs investigation. +utilities/ + meta/ + meta.trans/ + meta.trans.other/ + aligned_storage.pass.cpp: Probably due to sizeof(long) != 8. + meta.trans.sign/ + make_signed.pass.cpp: Probably due to sizeof(wchar_t) != 4. + make_unsigned.pass.cpp: idem. + meta.unary.prop.query/ + alignment_of.pass.cpp: Probably a Clang problem on Windows. +</pre> +</body> +</html> diff --git a/chromium/buildtools/third_party/libc++/trunk/www/ts1z_status.html b/chromium/buildtools/third_party/libc++/trunk/www/ts1z_status.html new file mode 100644 index 00000000000..9d4a000b0b9 --- /dev/null +++ b/chromium/buildtools/third_party/libc++/trunk/www/ts1z_status.html @@ -0,0 +1,101 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ --> +<html> +<head> + <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> + <title>libc++ Fundamentals TS Status</title> + <link type="text/css" rel="stylesheet" href="menu.css"> + <link type="text/css" rel="stylesheet" href="content.css"> +</head> + +<body> +<div id="menu"> + <div> + <a href="http://llvm.org/">LLVM Home</a> + </div> + + <div class="submenu"> + <label>libc++ Info</label> + <a href="/index.html">About</a> + </div> + + <div class="submenu"> + <label>Quick Links</label> + <a href="http://lists.llvm.org/mailman/listinfo/cfe-dev">cfe-dev</a> + <a href="http://lists.llvm.org/mailman/listinfo/cfe-commits">cfe-commits</a> + <a href="http://llvm.org/bugs/">Bug Reports</a> + <a href="http://llvm.org/svn/llvm-project/libcxx/trunk/">Browse SVN</a> + <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/">Browse ViewVC</a> + </div> +</div> + +<div id="content"> + <!--*********************************************************************--> + <h1>Post-C++14 TS Implementation Status</h1> + <!--*********************************************************************--> + + <p>In November 2014, the C++ standard committee approved the draft for the next version of the C++ standard, known as "C++1z" (probably to be C++17)</p> + <p>In addition, there are several "Technical Specifications", that consist of new features that are proposed, but not yet accepted for C++1z.</p> + <p>This page shows the status of libc++; the status of clang's support of the language features is <a href="http://clang.llvm.org/cxx_status.html">here</a>.</p> + + <h3>Technical Specifications</h3> + <table id="TS" border="1"> + <tr><th>Paper Number</th><th>Paper Title</th><th>TS</th></tr> + + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4023.html">4023</a></td><td>C++ Extensions for Library Fundamentals</td><td>Library Fundamentals 1</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3940.html">3940</a></td><td>Technical Specification - File System</td><td>File System</td></tr> + <tr><td></td><td></td><td></td></tr> + + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4273">4273</a></td><td>Uniform Container Erasure.</td><td>Library Fundamentals 2</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4061">4061</a></td><td>Greatest Common Divisor and Least Common Multiple.</td><td>Library Fundamentals 2</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4257">4257</a></td><td>Delimited iterators.</td><td>Library Fundamentals 2</td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4282">4282</a></td><td>The World's Dumbest Smart Pointer.</td><td>Library Fundamentals 2</td></tr> + <tr><td></td><td></td><td></td></tr> + + </table> + + <h3>Features in Library Fundamentals 1</h3> + <table id="Features" border="1"> + <tr><th>Feature Name</th><th>Status</th></tr> + <tr><td>Uses-allocator construction</td><td>Not started</td></tr> + <tr><td>Changes to std::shared_ptr and weak_ptr</td><td>Not started</td></tr> + <tr><td>Additions to std::function</td><td>Not started</td></tr> + <tr><td>Additions to std::promise</td><td>Not started</td></tr> + <tr><td>Additions to std::packaged_task</td><td>Not started</td></tr> + <tr><td></td><td></td></tr> + <tr><td>Class erased_type</td><td>Complete</td></tr> + <tr><td>Calling a function with a tuple of arguments</td><td>Complete</td></tr> + <tr><td>Type traits (_v)</td><td>Complete</td></tr> + <tr><td>Other type transformations</td><td>Not started</td></tr> + <tr><td>Compile-time Rational Arithmetic</td><td>Implementation in progress</td></tr> + <tr><td>Time Utilities</td><td>Complete</td></tr> + <tr><td>System Error Support</td><td>Complete</td></tr> + <tr><td></td><td></td></tr> + <tr><td>Searchers</td><td>Complete</td></tr> + <tr><td>Optional Objects</td><td>Initial implementation complete</td></tr> + <tr><td>class any</td><td>Complete</td></tr> + <tr><td>string_view</td><td>Complete</td></tr> + <tr><td>memory</td><td>Implementation in progress</td></tr> + <tr><td>Algorithms library</td><td>Complete</td></tr> + + </table> + + <h3>Features in Library Fundamentals 2</h3> + <table id="Features" border="1"> + <tr><th>Feature Name</th><th>Status</th></tr> +<!-- <tr><td></td><td></td></tr> --> + + </table> + + <h3>Features in Filesystem</h3> + <table id="Features" border="1"> + <tr><th>Feature Name</th><th>Status</th></tr> + <tr><td>All features</td><td>Not started</td></tr> + + </table> + + <p>Last Updated: 7-Dec-2015</p> +</div> +</body> +</html> diff --git a/chromium/buildtools/third_party/libc++/trunk/www/type_traits_design.html b/chromium/buildtools/third_party/libc++/trunk/www/type_traits_design.html new file mode 100644 index 00000000000..422bba4a7f5 --- /dev/null +++ b/chromium/buildtools/third_party/libc++/trunk/www/type_traits_design.html @@ -0,0 +1,286 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ --> +<html> +<head> + <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> + <title>type traits intrinsic design</title> + <link type="text/css" rel="stylesheet" href="menu.css"> + <link type="text/css" rel="stylesheet" href="content.css"> +</head> + +<body> +<div id="menu"> + <div> + <a href="http://llvm.org/">LLVM Home</a> + </div> + + <div class="submenu"> + <label>libc++ Info</label> + <a href="/index.html">About</a> + </div> + + <div class="submenu"> + <label>Quick Links</label> + <a href="http://lists.llvm.org/mailman/listinfo/cfe-dev">cfe-dev</a> + <a href="http://lists.llvm.org/mailman/listinfo/cfe-commits">cfe-commits</a> + <a href="http://llvm.org/bugs/">Bug Reports</a> + <a href="http://llvm.org/svn/llvm-project/libcxx/trunk/">Browse SVN</a> + <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/">Browse ViewVC</a> + </div> +</div> + +<div id="content"> + <!--*********************************************************************--> + <h1>Type traits intrinsic design</h1> + <!--*********************************************************************--> + +<p> +This is a survey of the type traits intrinsics clang has, and those needed. +The names and definitions of several of the needed type traits has recently +changed. Please see: +<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3142.html">N3142</a>. +</p> + +<blockquote> +<table border="1"> +<caption>Legend</caption> + +<tr> +<td>clang supplies it and it is absolutely necessary</td> +<td bgcolor="#80FF80"><tt>some_trait(T)</tt></td> +</tr> + +<tr> +<td>clang supplies it and it is useful</td> +<td bgcolor="#96B9FF"><tt>some_trait(T)</tt></td> +</tr> + +<tr> +<td>clang supplies it and it is not needed</td> +<td><tt>some_trait(T)</tt></td> +</tr> + +<tr> +<td>clang does not supply it and it is not needed</td> +<td></td> +</tr> + +<tr> +<td>clang does not supply it and it is absolutely necessary</td> +<td bgcolor="#FF5965"><tt>some_trait(T)</tt></td> +</tr> + +</table> + +<p></p> + +<table border="1"> +<caption>Needed type traits vs clang type traits</caption> + +<tr> +<th>libc++ Needs</th> +<th>clang Has</th> +</tr> + +<tr> +<td><tt>is_union<T></tt></td> +<td bgcolor="#80FF80"><tt>__is_union(T)</tt></td> +</tr> + +<tr> +<td><tt>is_class<T></tt></td> +<td bgcolor="#96B9FF"><tt>__is_class(T)</tt></td> +</tr> + +<tr> +<td><tt>is_enum<T></tt></td> +<td bgcolor="#96B9FF"><tt>__is_enum(T)</tt></td> +</tr> + +<tr> +<td><tt>is_pod<T></tt></td> +<td bgcolor="#80FF80"><tt>__is_pod(T)</tt></td> +</tr> + +<tr> +<td><tt>has_virtual_destructor<T></tt></td> +<td bgcolor="#80FF80"><tt>__has_virtual_destructor(T)</tt></td> +</tr> + +<tr> +<td><tt>is_constructible<T, Args...></tt></td> +<td></td> +</tr> + +<tr> +<td><tt>is_default_constructible<T></tt></td> +<td></td> +</tr> + +<tr> +<td><tt>is_copy_constructible<T></tt></td> +<td></td> +</tr> + +<tr> +<td><tt>is_move_constructible<T></tt></td> +<td></td> +</tr> + +<tr> +<td><tt>is_assignable<T, U></tt></td> +<td></td> +</tr> + +<tr> +<td><tt>is_copy_assignable<T></tt></td> +<td></td> +</tr> + +<tr> +<td><tt>is_move_assignable<T></tt></td> +<td></td> +</tr> + +<tr> +<td><tt>is_destructible<T></tt></td> +<td></td> +</tr> + +<tr> +<td><tt>is_trivially_constructible<T, Args...></tt></td> +<td bgcolor="#80FF80"><tt>__is_trivially_constructible(T, U)</tt></td> +</tr> + +<tr> +<td><tt>is_trivially_default_constructible<T></tt></td> +<td bgcolor="#80FF80"><tt>__has_trivial_constructor(T)</tt></td> +</tr> + +<tr> +<td><tt>is_trivially_copy_constructible<T></tt></td> +<td><tt>__has_trivial_copy(T)</tt></td> +</tr> + +<tr> +<td><tt>is_trivially_move_constructible<T></tt></td> +<td></td> +</tr> + +<tr> +<td><tt>is_trivially_assignable<T, U></tt></td> +<td bgcolor="#80FF80"><tt>__is_trivially_assignable(T, U)</tt></td> +</tr> + +<tr> +<td><tt>is_trivially_copy_assignable<T></tt></td> +<td><tt>__has_trivial_assign(T)</tt></td> +</tr> + +<tr> +<td><tt>is_trivially_move_assignable<T></tt></td> +<td></td> +</tr> + +<tr> +<td><tt>is_trivially_destructible<T></tt></td> +<td bgcolor="#80FF80"><tt>__has_trivial_destructor(T)</tt></td> +</tr> + +<tr> +<td><tt>is_nothrow_constructible<T, Args...></tt></td> +<td></td> +</tr> + +<tr> +<td><tt>is_nothrow_default_constructible<T></tt></td> +<td><tt>__has_nothrow_constructor(T)</tt></td> +</tr> + +<tr> +<td><tt>is_nothrow_copy_constructible<T></tt></td> +<td><tt>__has_nothrow_copy(T)</tt></td> +</tr> + +<tr> +<td><tt>is_nothrow_move_constructible<T></tt></td> +<td></td> +</tr> + +<tr> +<td><tt>is_nothrow_assignable<T, U></tt></td> +<td></td> +</tr> + +<tr> +<td><tt>is_nothrow_copy_assignable<T></tt></td> +<td><tt>__has_nothrow_assign(T)</tt></td> +</tr> + +<tr> +<td><tt>is_nothrow_move_assignable<T></tt></td> +<td></td> +</tr> + +<tr> +<td><tt>is_nothrow_destructible<T></tt></td> +<td></td> +</tr> + +<tr> +<td><tt>is_trivial<T></tt></td> +<td bgcolor="#80FF80"><tt>__is_trivial(T)</tt></td> +</tr> + +<tr> +<td><tt>is_trivially_copyable<T></tt></td> +<td bgcolor="#80FF80"><tt>__is_trivially_copyable(T)</tt></td> +</tr> + +<tr> +<td><tt>is_standard_layout<T></tt></td> +<td bgcolor="#80FF80"><tt>__is_standard_layout(T)</tt></td> +</tr> + +<tr> +<td><tt>is_literal_type<T></tt></td> +<td bgcolor="#80FF80"><tt>__is_literal_type(T)</tt></td> +</tr> + +<tr> +<td><tt>is_convertible<T, U></tt></td> +<td bgcolor="#80FF80"><tt>__is_convertible_to(T, U)</tt></td> +</tr> + +<tr> +<td><tt>is_base_of<T, U></tt></td> +<td bgcolor="#80FF80"><tt>__is_base_of(T, U)</tt></td> +</tr> + +<tr> +<td><tt>underlying_type<T></tt></td> +<td bgcolor="#80FF80"><tt>__underlying_type(T)</tt></td> +</tr> + +<tr> +<td><tt>is_polymorphic<T></tt></td> +<td><tt>__is_polymorphic(T)</tt></td> +</tr> + +<tr> +<td><tt>is_empty<T></tt></td> +<td><tt>__is_empty(T)</tt></td> +</tr> + +<tr> +<td><tt>is_abstract<T></tt></td> +<td><tt>__is_abstract(T)</tt></td> +</tr> + +</table> +</blockquote> + +</div> +</body> +</html> |