[libcxx] Scan-Build Run complete, patch and report

Steve MacKenzie stevemac321 at live.com
Thu Oct 23 19:14:26 PDT 2014


Summary:
Number of warnings before this patch:450
Number of warnings reduced by this patch:127 (caused by false-positive 
or won't fix bugs, and about 5 more test bugs I'll get to later)
Number of warnings uninvestigated: 0
Regression Testing: no regressions found (x64 Linux, release, debug, 
links to logs below)

Bugs found:
"Bug 
ID","Product","Component","Assignee","Status","Resolution","Summary","Changed"
21326,"clang","Static Analyzer","kremenek at apple.com","NEW","---","False 
position CERT MEM04 zero-length allocation error","2014-10-21 14:13:26"
21333,"clang","Static Analyzer","kremenek at apple.com","NEW","---","false 
positive smartptr release (unique_ptr) in std::<memory>","2014-10-21 
18:55:49"
21335,"clang","Static Analyzer","kremenek at apple.com","NEW","---","False 
positive scoping issues, deref pointer, dead init, uninit arg, val, 
etc.","2014-10-21 19:45:51"
21342,"clang","Static Analyzer","kremenek at apple.com","NEW","---","False 
positive: std::valarray standard conforming operator[] triggers null 
reference warning","2014-10-22 15:56:16"
21344,"clang","Static Analyzer","kremenek at apple.com","NEW","---","False 
positive garbage value reported in std::<random> param_type in 
distribution templates","2014-10-22 20:11:07"

Links:
Instructions on how to do a scan-build run against libc++: 
http://1drv.ms/1wfR37J  This mirrors the steps that I took to validate 
the patch.

Regerssion Testing Logs;
Release Baseline: http://1drv.ms/1D290FF
Released Patched: http://1drv.ms/12mcOGr
Scan-build baseline: http://1drv.ms/1D290FF
Scan-build patched: http://1drv.ms/1tPy5EL
Related False Positive Warnings (with associated bugs): 
http://1drv.ms/12mkOHo

Details:
The warning count was at 450 when the work on this patch started. The 
patch fixes 323 of those warnings.

I am recommending 3 minor changes to the libc++ headers.  The fixes 
consist of merely initializing 2 variables in <random> and one variable 
in <regex>.  While these uninitialized variables assessed individually 
seem benign, they have a cascading affect that manifest downstream as 
"garbage value" warnings.

There was a significant amount of noise created by uninitialized and 
unused variables, mostly in tests.  There was one somewhat interesting 
issue, the tool triggered a CERT MEM04, passing zero size to realloc 
warning (see bug:21326 for details).

Also, this activity is confined to scan-build warnings, it does not 
include fixing general compiler warnings or already failing tests.

There will probably need to be some follow up pending the resolution of 
the false-positive scan-build bugs.  Those issues are captured here: 
http://1drv.ms/12mkOHo

It is likely that for future runs, we'll need some sort of tooling for 
filtering out "won't fix" issues.

Thanks,
Steve MacKenzie
http://stevemac123.wordpress.com/


-------------- next part --------------
Index: random
===================================================================
--- random	(revision 220472)
+++ random	(working copy)
@@ -4609,7 +4609,7 @@
 _IntType
 poisson_distribution<_IntType>::operator()(_URNG& __urng, const param_type& __pr)
 {
-    result_type __x;
+    result_type __x = 0;
     uniform_real_distribution<double> __urd;
     if (__pr.__mean_ < 10)
     {
@@ -5043,7 +5043,7 @@
     result_type __a = __p.alpha();
     uniform_real_distribution<result_type> __gen(0, 1);
     exponential_distribution<result_type> __egen;
-    result_type __x;
+    result_type __x = 0;
     if (__a == 1)
         __x = __egen(__g);
     else if (__a > 1)
Index: regex
===================================================================
--- regex	(revision 220472)
+++ regex	(working copy)
@@ -3606,7 +3606,7 @@
             break;
         case '{':
             {
-                int __min;
+                int __min=0;
                 _ForwardIterator __temp = __parse_DUP_COUNT(++__first, __last, __min);
 #ifndef _LIBCPP_NO_EXCEPTIONS
                 if (__temp == __first)
-------------- next part --------------
Index: containers/sequences/list/list.modifiers/insert_iter_iter_iter.pass.cpp
===================================================================
--- containers/sequences/list/list.modifiers/insert_iter_iter_iter.pass.cpp	(revision 220493)
+++ containers/sequences/list/list.modifiers/insert_iter_iter_iter.pass.cpp	(working copy)
@@ -74,6 +74,7 @@
     assert(*i == 3);
     throw_next = 2;
     int save_count = count;
+    (void)save_count; // for scan-build
     try
     {
         i = l1.insert(i, a2, a2+3);
Index: containers/sequences/list/list.modifiers/insert_iter_value.pass.cpp
===================================================================
--- containers/sequences/list/list.modifiers/insert_iter_value.pass.cpp	(revision 220493)
+++ containers/sequences/list/list.modifiers/insert_iter_value.pass.cpp	(working copy)
@@ -52,6 +52,7 @@
     assert(l1 == std::list<int>(a2, a2+4));
     throw_next = 0;
     int save_count = count;
+    (void)save_count; // for scan-build
     try
     {
         i = l1.insert(i, 5);
Index: language.support/support.dynamic/new.delete/new.delete.array/new_array.pass.cpp
===================================================================
--- language.support/support.dynamic/new.delete/new.delete.array/new_array.pass.cpp	(revision 220472)
+++ language.support/support.dynamic/new.delete/new.delete.array/new_array.pass.cpp	(working copy)
@@ -33,14 +33,16 @@
 int main()
 {
     std::set_new_handler(new_handler);
+    void*volatile vp = nullptr;
     try
     {
-        void*volatile vp = operator new[] (std::numeric_limits<std::size_t>::max());
+        vp = operator new[] (std::numeric_limits<std::size_t>::max());
         assert(false);
     }
     catch (std::bad_alloc&)
     {
         assert(new_handler_called == 1);
+        vp = nullptr; // to placate scan-build
     }
     catch (...)
     {
Index: language.support/support.dynamic/new.delete/new.delete.single/new.pass.cpp
===================================================================
--- language.support/support.dynamic/new.delete/new.delete.single/new.pass.cpp	(revision 220472)
+++ language.support/support.dynamic/new.delete/new.delete.single/new.pass.cpp	(working copy)
@@ -33,14 +33,16 @@
 int main()
 {
     std::set_new_handler(new_handler);
+    void* vp = nullptr;
     try
     {
-        void* vp = operator new (std::numeric_limits<std::size_t>::max());
+        vp = operator new (std::numeric_limits<std::size_t>::max());
         assert(false);
     }
     catch (std::bad_alloc&)
     {
         assert(new_handler_called == 1);
+        vp=nullptr; // to placate scan-build
     }
     catch (...)
     {
Index: localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_en_US.pass.cpp
===================================================================
--- localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_en_US.pass.cpp	(revision 220472)
+++ localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_en_US.pass.cpp	(working copy)
@@ -60,7 +60,7 @@
         {   // zero
             std::string v = "0.00";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -71,7 +71,7 @@
         {   // negative one
             std::string v = "-0.01";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -82,7 +82,7 @@
         {   // positive
             std::string v = "1,234,567.89";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -93,7 +93,7 @@
         {   // negative
             std::string v = "-1,234,567.89";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -104,7 +104,7 @@
         {   // negative
             std::string v = "-1234567.89";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -115,7 +115,7 @@
         {   // zero, showbase
             std::string v = "$0.00";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -127,7 +127,7 @@
             std::string v = "$0.00";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -139,7 +139,7 @@
         {   // negative one, showbase
             std::string v = "-$0.01";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -151,7 +151,7 @@
             std::string v = "-$0.01";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -163,7 +163,7 @@
         {   // positive, showbase
             std::string v = "$1,234,567.89";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -175,7 +175,7 @@
             std::string v = "$1,234,567.89";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -188,7 +188,7 @@
             std::string v = "-$1,234,567.89";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -201,7 +201,7 @@
             std::string v = "-USD 1,234,567.89";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -212,7 +212,7 @@
         {   // negative, showbase
             std::string v = "-USD 1,234,567.89";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -226,7 +226,7 @@
         {   // zero
             std::string v = "0.00";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -237,7 +237,7 @@
         {   // negative one
             std::string v = "-0.01";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -248,7 +248,7 @@
         {   // positive
             std::string v = "1,234,567.89";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -259,7 +259,7 @@
         {   // negative
             std::string v = "-1,234,567.89";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -270,7 +270,7 @@
         {   // negative
             std::string v = "-1234567.89";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -281,7 +281,7 @@
         {   // zero, showbase
             std::string v = "USD 0.00";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -293,7 +293,7 @@
             std::string v = "USD 0.00";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -305,7 +305,7 @@
         {   // negative one, showbase
             std::string v = "-USD 0.01";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -317,7 +317,7 @@
             std::string v = "-USD 0.01";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -329,7 +329,7 @@
         {   // positive, showbase
             std::string v = "USD 1,234,567.89";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -341,7 +341,7 @@
             std::string v = "USD 1,234,567.89";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -354,7 +354,7 @@
             std::string v = "-USD 1,234,567.89";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -367,7 +367,7 @@
             std::string v = "-$1,234,567.89";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -378,7 +378,7 @@
         {   // negative, showbase
             std::string v = "-$1,234,567.89";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -392,7 +392,7 @@
         {   // zero
             std::wstring v = L"0.00";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -403,7 +403,7 @@
         {   // negative one
             std::wstring v = L"-0.01";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -414,7 +414,7 @@
         {   // positive
             std::wstring v = L"1,234,567.89";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -425,7 +425,7 @@
         {   // negative
             std::wstring v = L"-1,234,567.89";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -436,7 +436,7 @@
         {   // negative
             std::wstring v = L"-1234567.89";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -447,7 +447,7 @@
         {   // zero, showbase
             std::wstring v = L"$0.00";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -459,7 +459,7 @@
             std::wstring v = L"$0.00";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -471,7 +471,7 @@
         {   // negative one, showbase
             std::wstring v = L"-$0.01";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -483,7 +483,7 @@
             std::wstring v = L"-$0.01";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -495,7 +495,7 @@
         {   // positive, showbase
             std::wstring v = L"$1,234,567.89";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -507,7 +507,7 @@
             std::wstring v = L"$1,234,567.89";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -520,7 +520,7 @@
             std::wstring v = L"-$1,234,567.89";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -533,7 +533,7 @@
             std::wstring v = L"-USD 1,234,567.89";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -544,7 +544,7 @@
         {   // negative, showbase
             std::wstring v = L"-USD 1,234,567.89";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -558,7 +558,7 @@
         {   // zero
             std::wstring v = L"0.00";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -569,7 +569,7 @@
         {   // negative one
             std::wstring v = L"-0.01";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -580,7 +580,7 @@
         {   // positive
             std::wstring v = L"1,234,567.89";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -591,7 +591,7 @@
         {   // negative
             std::wstring v = L"-1,234,567.89";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -602,7 +602,7 @@
         {   // negative
             std::wstring v = L"-1234567.89";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -613,7 +613,7 @@
         {   // zero, showbase
             std::wstring v = L"USD 0.00";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -625,7 +625,7 @@
             std::wstring v = L"USD 0.00";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -637,7 +637,7 @@
         {   // negative one, showbase
             std::wstring v = L"-USD 0.01";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -649,7 +649,7 @@
             std::wstring v = L"-USD 0.01";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -661,7 +661,7 @@
         {   // positive, showbase
             std::wstring v = L"USD 1,234,567.89";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -673,7 +673,7 @@
             std::wstring v = L"USD 1,234,567.89";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -686,7 +686,7 @@
             std::wstring v = L"-USD 1,234,567.89";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -699,7 +699,7 @@
             std::wstring v = L"-$1,234,567.89";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -710,7 +710,7 @@
         {   // negative, showbase
             std::wstring v = L"-$1,234,567.89";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
Index: localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_fr_FR.pass.cpp
===================================================================
--- localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_fr_FR.pass.cpp	(revision 220472)
+++ localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_fr_FR.pass.cpp	(working copy)
@@ -64,7 +64,7 @@
         {   // zero
             std::string v = "0,00";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -75,7 +75,7 @@
         {   // negative one
             std::string v = "-0,01";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -86,7 +86,7 @@
         {   // positive
             std::string v = "1 234 567,89 ";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -97,7 +97,7 @@
         {   // negative
             std::string v = "-1 234 567,89";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -108,7 +108,7 @@
         {   // negative
             std::string v = "-1234567,89";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -120,7 +120,7 @@
             std::string v = "0,00 \u20ac";  // €
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -132,7 +132,7 @@
             std::string v = "0,00 \u20ac";  // €
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -143,7 +143,7 @@
         {   // negative one, showbase
             std::string v = "-0,01 \u20ac";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -155,7 +155,7 @@
             std::string v = "-0,01 \u20ac";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -166,7 +166,7 @@
         {   // positive, showbase
             std::string v = "1 234 567,89 \u20ac";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -178,7 +178,7 @@
             std::string v = "1 234 567,89 \u20ac";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -191,7 +191,7 @@
             std::string v = "-1 234 567,89 \u20ac";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -204,7 +204,7 @@
             std::string v = "1 234 567,89 EUR -";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -215,7 +215,7 @@
         {   // negative, showbase
             std::string v = "1 234 567,89 EUR -";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -231,7 +231,7 @@
         {   // zero
             std::string v = "0,00";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -242,7 +242,7 @@
         {   // negative one
             std::string v = "-0,01";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -253,7 +253,7 @@
         {   // positive
             std::string v = "1 234 567,89 ";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -264,7 +264,7 @@
         {   // negative
             std::string v = "-1 234 567,89";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -275,7 +275,7 @@
         {   // negative
             std::string v = "-1234567,89";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -287,7 +287,7 @@
             std::string v = "0,00 EUR";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -299,7 +299,7 @@
             std::string v = "0,00 EUR";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -310,7 +310,7 @@
         {   // negative one, showbase
             std::string v = "-0,01 EUR";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -322,7 +322,7 @@
             std::string v = "-0,01 EUR";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -333,7 +333,7 @@
         {   // positive, showbase
             std::string v = "1 234 567,89 EUR";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -345,7 +345,7 @@
             std::string v = "1 234 567,89 EUR";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -358,7 +358,7 @@
             std::string v = "-1 234 567,89 EUR";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -371,7 +371,7 @@
             std::string v = "1 234 567,89 Eu-";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -382,7 +382,7 @@
         {   // negative, showbase
             std::string v = "1 234 567,89 Eu-";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -397,7 +397,7 @@
         {   // zero
             std::wstring v = L"0,00";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -408,7 +408,7 @@
         {   // negative one
             std::wstring v = L"-0,01";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -419,7 +419,7 @@
         {   // positive
             std::wstring v = L"1 234 567,89 ";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -430,7 +430,7 @@
         {   // negative
             std::wstring v = L"-1 234 567,89";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -441,7 +441,7 @@
         {   // negative
             std::wstring v = L"-1234567,89";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -453,7 +453,7 @@
             std::wstring v = L"0,00 \u20ac";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -465,7 +465,7 @@
             std::wstring v = L"0,00 \u20ac";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -476,7 +476,7 @@
         {   // negative one, showbase
             std::wstring v = L"-0,01 \u20ac";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -488,7 +488,7 @@
             std::wstring v = L"-0,01 \u20ac";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -499,7 +499,7 @@
         {   // positive, showbase
             std::wstring v = L"1 234 567,89 \u20ac";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -511,7 +511,7 @@
             std::wstring v = L"1 234 567,89 \u20ac";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -524,7 +524,7 @@
             std::wstring v = L"-1 234 567,89 \u20ac";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -537,7 +537,7 @@
             std::wstring v = L"1 234 567,89 EUR -";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -548,7 +548,7 @@
         {   // negative, showbase
             std::wstring v = L"1 234 567,89 EUR -";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -563,7 +563,7 @@
         {   // zero
             std::wstring v = L"0,00";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -574,7 +574,7 @@
         {   // negative one
             std::wstring v = L"-0,01";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -585,7 +585,7 @@
         {   // positive
             std::wstring v = L"1 234 567,89 ";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -596,7 +596,7 @@
         {   // negative
             std::wstring v = L"-1 234 567,89";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -607,7 +607,7 @@
         {   // negative
             std::wstring v = L"-1234567,89";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -619,7 +619,7 @@
             std::wstring v = L"0,00 EUR";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -631,7 +631,7 @@
             std::wstring v = L"0,00 EUR";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -642,7 +642,7 @@
         {   // negative one, showbase
             std::wstring v = L"-0,01 EUR";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -654,7 +654,7 @@
             std::wstring v = L"-0,01 EUR";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -665,7 +665,7 @@
         {   // positive, showbase
             std::wstring v = L"1 234 567,89 EUR";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -677,7 +677,7 @@
             std::wstring v = L"1 234 567,89 EUR";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -690,7 +690,7 @@
             std::wstring v = L"-1 234 567,89 EUR";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -703,7 +703,7 @@
             std::wstring v = L"1 234 567,89 Eu-";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -714,7 +714,7 @@
         {   // negative, showbase
             std::wstring v = L"1 234 567,89 Eu-";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
Index: localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_ru_RU.pass.cpp
===================================================================
--- localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_ru_RU.pass.cpp	(revision 220472)
+++ localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_ru_RU.pass.cpp	(working copy)
@@ -70,7 +70,7 @@
         {   // zero
             std::string v = "0,00 ";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -81,7 +81,7 @@
         {   // negative one
             std::string v = "-0,01 ";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -92,7 +92,7 @@
         {   // positive
             std::string v = "1 234 567,89 ";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -103,7 +103,7 @@
         {   // negative
             std::string v = "-1 234 567,89 ";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -114,7 +114,7 @@
         {   // negative
             std::string v = "-1234567,89 ";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -125,7 +125,7 @@
         {   // zero, showbase
             std::string v = "0,00 \xD1\x80\xD1\x83\xD0\xB1"".";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -137,7 +137,7 @@
             std::string v = "0,00 \xD1\x80\xD1\x83\xD0\xB1"".";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -149,7 +149,7 @@
         {   // negative one, showbase
             std::string v = "-0,01 \xD1\x80\xD1\x83\xD0\xB1"".";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -161,7 +161,7 @@
             std::string v = "-0,01 \xD1\x80\xD1\x83\xD0\xB1"".";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -173,7 +173,7 @@
         {   // positive, showbase
             std::string v = "1 234 567,89 \xD1\x80\xD1\x83\xD0\xB1"".";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -185,7 +185,7 @@
             std::string v = "1 234 567,89 \xD1\x80\xD1\x83\xD0\xB1"".";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -198,7 +198,7 @@
             std::string v = "-1 234 567,89 \xD1\x80\xD1\x83\xD0\xB1"".";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -211,7 +211,7 @@
             std::string v = "-1 234 567,89 RUB ";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -222,7 +222,7 @@
         {   // negative, showbase
             std::string v = "-1 234 567,89 RUB ";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -237,7 +237,7 @@
         {   // zero
             std::string v = "0,00";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -248,7 +248,7 @@
         {   // negative one
             std::string v = "-0,01 ";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -259,7 +259,7 @@
         {   // positive
             std::string v = "1 234 567,89 ";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -270,7 +270,7 @@
         {   // negative
             std::string v = "-1 234 567,89 ";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -281,7 +281,7 @@
         {   // negative
             std::string v = "-1234567,89 ";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -292,7 +292,7 @@
         {   // zero, showbase
             std::string v = "0,00 RUB ";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -304,7 +304,7 @@
             std::string v = "0,00 RUB ";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -316,7 +316,7 @@
         {   // negative one, showbase
             std::string v = "-0,01 RUB ";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -328,7 +328,7 @@
             std::string v = "-0,01 RUB ";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -340,7 +340,7 @@
         {   // positive, showbase
             std::string v = "1 234 567,89 RUB ";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -352,7 +352,7 @@
             std::string v = "1 234 567,89 RUB ";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -365,7 +365,7 @@
             std::string v = "-1 234 567,89 RUB ";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -378,7 +378,7 @@
             std::string v = "-1 234 567,89 \xD1\x80\xD1\x83\xD0\xB1"".";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -389,7 +389,7 @@
         {   // negative, showbase
             std::string v = "-1 234 567,89 \xD1\x80\xD1\x83\xD0\xB1"".";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -404,7 +404,7 @@
         {   // zero
             std::wstring v = L"0,00";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -415,7 +415,7 @@
         {   // negative one
             std::wstring v = L"-0,01 ";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -426,7 +426,7 @@
         {   // positive
             std::wstring v = L"1 234 567,89 ";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -437,7 +437,7 @@
         {   // negative
             std::wstring v = L"-1 234 567,89 ";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -448,7 +448,7 @@
         {   // negative
             std::wstring v = L"-1234567,89 ";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -459,7 +459,7 @@
         {   // zero, showbase
             std::wstring v = L"0,00 \x440\x443\x431"".";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -471,7 +471,7 @@
             std::wstring v = L"0,00 \x440\x443\x431"".";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -483,7 +483,7 @@
         {   // negative one, showbase
             std::wstring v = L"-0,01 \x440\x443\x431"".";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -495,7 +495,7 @@
             std::wstring v = L"-0,01 \x440\x443\x431"".";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -507,7 +507,7 @@
         {   // positive, showbase
             std::wstring v = L"1 234 567,89 \x440\x443\x431"".";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -519,7 +519,7 @@
             std::wstring v = L"1 234 567,89 \x440\x443\x431"".";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -532,7 +532,7 @@
             std::wstring v = L"-1 234 567,89 \x440\x443\x431"".";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -545,7 +545,7 @@
             std::wstring v = L"-1 234 567,89 RUB ";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -556,7 +556,7 @@
         {   // negative, showbase
             std::wstring v = L"-1 234 567,89 RUB ";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -571,7 +571,7 @@
         {   // zero
             std::wstring v = L"0,00";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -582,7 +582,7 @@
         {   // negative one
             std::wstring v = L"-0,01 ";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -593,7 +593,7 @@
         {   // positive
             std::wstring v = L"1 234 567,89 ";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -604,7 +604,7 @@
         {   // negative
             std::wstring v = L"-1 234 567,89 ";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -615,7 +615,7 @@
         {   // negative
             std::wstring v = L"-1234567,89 ";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -626,7 +626,7 @@
         {   // zero, showbase
             std::wstring v = L"0,00 RUB ";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -638,7 +638,7 @@
             std::wstring v = L"0,00 RUB ";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -650,7 +650,7 @@
         {   // negative one, showbase
             std::wstring v = L"-0,01 RUB ";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -662,7 +662,7 @@
             std::wstring v = L"-0,01 RUB ";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -674,7 +674,7 @@
         {   // positive, showbase
             std::wstring v = L"1 234 567,89 RUB ";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -686,7 +686,7 @@
             std::wstring v = L"1 234 567,89 RUB ";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -699,7 +699,7 @@
             std::wstring v = L"-1 234 567,89 RUB ";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -712,7 +712,7 @@
             std::wstring v = L"-1 234 567,89 \x440\x443\x431"".";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -723,7 +723,7 @@
         {   // negative, showbase
             std::wstring v = L"-1 234 567,89 \x440\x443\x431"".";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
Index: localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_zh_CN.pass.cpp
===================================================================
--- localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_zh_CN.pass.cpp	(revision 220472)
+++ localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_zh_CN.pass.cpp	(working copy)
@@ -62,7 +62,7 @@
         {   // zero
             std::string v = "0.00";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -73,7 +73,7 @@
         {   // negative one
             std::string v = "-0.01";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -84,7 +84,7 @@
         {   // positive
             std::string v = "1,234,567.89";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -95,7 +95,7 @@
         {   // negative
             std::string v = "-1,234,567.89";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -106,7 +106,7 @@
         {   // negative
             std::string v = "-1234567.89";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -117,7 +117,7 @@
         {   // zero, showbase
             std::string v = "\xEF\xBF\xA5""0.00";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -129,7 +129,7 @@
             std::string v = "\xEF\xBF\xA5""0.00";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -141,7 +141,7 @@
         {   // negative one, showbase
             std::string v = "\xEF\xBF\xA5""-0.01";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -153,7 +153,7 @@
             std::string v = "\xEF\xBF\xA5""-0.01";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -165,7 +165,7 @@
         {   // positive, showbase
             std::string v = "\xEF\xBF\xA5""1,234,567.89";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -177,7 +177,7 @@
             std::string v = "\xEF\xBF\xA5""1,234,567.89";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -190,7 +190,7 @@
             std::string v = "\xEF\xBF\xA5""-1,234,567.89";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -203,7 +203,7 @@
             std::string v = "CNY -1,234,567.89";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -214,7 +214,7 @@
         {   // negative, showbase
             std::string v = "CNY -1,234,567.89";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -228,7 +228,7 @@
         {   // zero
             std::string v = "0.00";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -239,7 +239,7 @@
         {   // negative one
             std::string v = "-0.01";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -250,7 +250,7 @@
         {   // positive
             std::string v = "1,234,567.89";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -261,7 +261,7 @@
         {   // negative
             std::string v = "-1,234,567.89";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -272,7 +272,7 @@
         {   // negative
             std::string v = "-1234567.89";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -283,7 +283,7 @@
         {   // zero, showbase
             std::string v = "CNY 0.00";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -295,7 +295,7 @@
             std::string v = "CNY 0.00";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -307,7 +307,7 @@
         {   // negative one, showbase
             std::string v = "CNY -0.01";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -319,7 +319,7 @@
             std::string v = "CNY -0.01";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -331,7 +331,7 @@
         {   // positive, showbase
             std::string v = "CNY 1,234,567.89";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -343,7 +343,7 @@
             std::string v = "CNY 1,234,567.89";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -356,7 +356,7 @@
             std::string v = "CNY -1,234,567.89";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -369,7 +369,7 @@
             std::string v = "\xEF\xBF\xA5""-1,234,567.89";
             showbase(ios);
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -380,7 +380,7 @@
         {   // negative, showbase
             std::string v = "\xEF\xBF\xA5""-1,234,567.89";
             typedef input_iterator<const char*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -394,7 +394,7 @@
         {   // zero
             std::wstring v = L"0.00";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -405,7 +405,7 @@
         {   // negative one
             std::wstring v = L"-0.01";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -416,7 +416,7 @@
         {   // positive
             std::wstring v = L"1,234,567.89";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -427,7 +427,7 @@
         {   // negative
             std::wstring v = L"-1,234,567.89";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -438,7 +438,7 @@
         {   // negative
             std::wstring v = L"-1234567.89";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -449,7 +449,7 @@
         {   // zero, showbase
             std::wstring v = L"\xFFE5""0.00";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -461,7 +461,7 @@
             std::wstring v = L"\xFFE5""0.00";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -473,7 +473,7 @@
         {   // negative one, showbase
             std::wstring v = L"\xFFE5""-0.01";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -485,7 +485,7 @@
             std::wstring v = L"\xFFE5""-0.01";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -497,7 +497,7 @@
         {   // positive, showbase
             std::wstring v = L"\xFFE5""1,234,567.89";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -509,7 +509,7 @@
             std::wstring v = L"\xFFE5""1,234,567.89";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -522,7 +522,7 @@
             std::wstring v = L"\xFFE5""-1,234,567.89";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -535,7 +535,7 @@
             std::wstring v = L"CNY -1,234,567.89";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -546,7 +546,7 @@
         {   // negative, showbase
             std::wstring v = L"CNY -1,234,567.89";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 false, ios, err, ex);
@@ -560,7 +560,7 @@
         {   // zero
             std::wstring v = L"0.00";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -571,7 +571,7 @@
         {   // negative one
             std::wstring v = L"-0.01";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -582,7 +582,7 @@
         {   // positive
             std::wstring v = L"1,234,567.89";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -593,7 +593,7 @@
         {   // negative
             std::wstring v = L"-1,234,567.89";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -604,7 +604,7 @@
         {   // negative
             std::wstring v = L"-1234567.89";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -615,7 +615,7 @@
         {   // zero, showbase
             std::wstring v = L"CNY 0.00";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -627,7 +627,7 @@
             std::wstring v = L"CNY 0.00";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -639,7 +639,7 @@
         {   // negative one, showbase
             std::wstring v = L"CNY -0.01";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -651,7 +651,7 @@
             std::wstring v = L"CNY -0.01";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -663,7 +663,7 @@
         {   // positive, showbase
             std::wstring v = L"CNY 1,234,567.89";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -675,7 +675,7 @@
             std::wstring v = L"CNY 1,234,567.89";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -688,7 +688,7 @@
             std::wstring v = L"CNY -1,234,567.89";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -701,7 +701,7 @@
             std::wstring v = L"\xFFE5""-1,234,567.89";
             showbase(ios);
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
@@ -712,7 +712,7 @@
         {   // negative, showbase
             std::wstring v = L"\xFFE5""-1,234,567.89";
             typedef input_iterator<const wchar_t*> I;
-            long double ex;
+            long double ex=55.00;
             std::ios_base::iostate err = std::ios_base::goodbit;
             I iter = f.get(I(v.data()), I(v.data() + v.size()),
                                                 true, ios, err, ex);
Index: localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp
===================================================================
--- localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp	(revision 220472)
+++ localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp	(working copy)
@@ -26225,6 +26225,7 @@
     }
     {
         long double v = std::nan("");
+        (void)v; // for scan-build
     }
 
     {
@@ -26235,6 +26236,7 @@
     }
     {
         long double v = std::nan("");
+        (void)v;
     }
     {
         long double v = -INFINITY;
@@ -26241,5 +26243,6 @@
     }
     {
         long double v = std::nan("");
+        (void)v;
     }
 }
Index: numerics/c.math/ctgmath.pass.cpp
===================================================================
--- numerics/c.math/ctgmath.pass.cpp	(revision 220472)
+++ numerics/c.math/ctgmath.pass.cpp	(working copy)
@@ -19,4 +19,5 @@
 {
     std::complex<double> cd;
     double x = std::sin(0);
+    (void)x;
 }
Index: numerics/complex.number/complex.transcendentals/cos.pass.cpp
===================================================================
--- numerics/complex.number/complex.transcendentals/cos.pass.cpp	(revision 220472)
+++ numerics/complex.number/complex.transcendentals/cos.pass.cpp	(working copy)
@@ -36,6 +36,7 @@
 {
     typedef std::complex<double> C;
     const double pi = std::atan2(+0., -0.);
+    (void)pi;
     const unsigned N = sizeof(x) / sizeof(x[0]);
     for (unsigned i = 0; i < N; ++i)
     {
Index: numerics/complex.number/complex.transcendentals/cosh.pass.cpp
===================================================================
--- numerics/complex.number/complex.transcendentals/cosh.pass.cpp	(revision 220472)
+++ numerics/complex.number/complex.transcendentals/cosh.pass.cpp	(working copy)
@@ -36,6 +36,7 @@
 {
     typedef std::complex<double> C;
     const double pi = std::atan2(+0., -0.);
+    (void)pi; // for scan-build
     const unsigned N = sizeof(x) / sizeof(x[0]);
     for (unsigned i = 0; i < N; ++i)
     {
Index: numerics/complex.number/complex.transcendentals/log10.pass.cpp
===================================================================
--- numerics/complex.number/complex.transcendentals/log10.pass.cpp	(revision 220472)
+++ numerics/complex.number/complex.transcendentals/log10.pass.cpp	(working copy)
@@ -35,6 +35,7 @@
 void test_edges()
 {
     const double pi = std::atan2(+0., -0.);
+    (void)pi; // for scan-build
     const unsigned N = sizeof(x) / sizeof(x[0]);
     for (unsigned i = 0; i < N; ++i)
     {
Index: numerics/complex.number/complex.transcendentals/pow_complex_complex.pass.cpp
===================================================================
--- numerics/complex.number/complex.transcendentals/pow_complex_complex.pass.cpp	(revision 220472)
+++ numerics/complex.number/complex.transcendentals/pow_complex_complex.pass.cpp	(working copy)
@@ -37,6 +37,7 @@
 void test_edges()
 {
     const double pi = std::atan2(+0., -0.);
+    (void)pi; // for scan-build
     const unsigned N = sizeof(x) / sizeof(x[0]);
     for (unsigned i = 0; i < N; ++i)
     {
Index: numerics/complex.number/complex.transcendentals/pow_complex_scalar.pass.cpp
===================================================================
--- numerics/complex.number/complex.transcendentals/pow_complex_scalar.pass.cpp	(revision 220472)
+++ numerics/complex.number/complex.transcendentals/pow_complex_scalar.pass.cpp	(working copy)
@@ -37,6 +37,7 @@
 void test_edges()
 {
     const double pi = std::atan2(+0., -0.);
+    (void)pi; // for scan-build
     const unsigned N = sizeof(x) / sizeof(x[0]);
     for (unsigned i = 0; i < N; ++i)
     {
Index: numerics/complex.number/complex.transcendentals/pow_scalar_complex.pass.cpp
===================================================================
--- numerics/complex.number/complex.transcendentals/pow_scalar_complex.pass.cpp	(revision 220472)
+++ numerics/complex.number/complex.transcendentals/pow_scalar_complex.pass.cpp	(working copy)
@@ -37,6 +37,7 @@
 void test_edges()
 {
     const double pi = std::atan2(+0., -0.);
+    (void)pi; // for scan-build
     const unsigned N = sizeof(x) / sizeof(x[0]);
     for (unsigned i = 0; i < N; ++i)
     {
Index: numerics/complex.number/complex.transcendentals/sin.pass.cpp
===================================================================
--- numerics/complex.number/complex.transcendentals/sin.pass.cpp	(revision 220472)
+++ numerics/complex.number/complex.transcendentals/sin.pass.cpp	(working copy)
@@ -36,6 +36,7 @@
 {
     typedef std::complex<double> C;
     const double pi = std::atan2(+0., -0.);
+    (void)pi; // for scan-build
     const unsigned N = sizeof(x) / sizeof(x[0]);
     for (unsigned i = 0; i < N; ++i)
     {
Index: numerics/complex.number/complex.transcendentals/sinh.pass.cpp
===================================================================
--- numerics/complex.number/complex.transcendentals/sinh.pass.cpp	(revision 220472)
+++ numerics/complex.number/complex.transcendentals/sinh.pass.cpp	(working copy)
@@ -36,6 +36,7 @@
 {
     typedef std::complex<double> C;
     const double pi = std::atan2(+0., -0.);
+    (void)pi; // for scan-build
     const unsigned N = sizeof(x) / sizeof(x[0]);
     for (unsigned i = 0; i < N; ++i)
     {
Index: numerics/complex.number/complex.transcendentals/tan.pass.cpp
===================================================================
--- numerics/complex.number/complex.transcendentals/tan.pass.cpp	(revision 220472)
+++ numerics/complex.number/complex.transcendentals/tan.pass.cpp	(working copy)
@@ -37,6 +37,7 @@
 {
     typedef std::complex<double> C;
     const double pi = std::atan2(+0., -0.);
+    (void)pi; // for scan-build
     const unsigned N = sizeof(x) / sizeof(x[0]);
     for (unsigned i = 0; i < N; ++i)
     {
Index: numerics/complex.number/complex.transcendentals/tanh.pass.cpp
===================================================================
--- numerics/complex.number/complex.transcendentals/tanh.pass.cpp	(revision 220472)
+++ numerics/complex.number/complex.transcendentals/tanh.pass.cpp	(working copy)
@@ -36,6 +36,7 @@
 {
     typedef std::complex<double> C;
     const double pi = std::atan2(+0., -0.);
+    (void)pi; //for scan-build
     const unsigned N = sizeof(x) / sizeof(x[0]);
     for (unsigned i = 0; i < N; ++i)
     {
Index: numerics/rand/rand.device/entropy.pass.cpp
===================================================================
--- numerics/rand/rand.device/entropy.pass.cpp	(revision 220472)
+++ numerics/rand/rand.device/entropy.pass.cpp	(working copy)
@@ -20,4 +20,5 @@
 {
     std::random_device r;
     double e = r.entropy();
+    (void)e; // for scan-build
 }
Index: numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.bin/eval.pass.cpp
===================================================================
--- numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.bin/eval.pass.cpp	(revision 220472)
+++ numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.bin/eval.pass.cpp	(working copy)
@@ -177,6 +177,7 @@
         }
         var /= u.size();
         double dev = std::sqrt(var);
+        (void)dev; // for scan-build
         // In this case:
         //   skew     computes to 0./0. == nan
         //   kurtosis computes to 0./0. == nan
@@ -223,6 +224,7 @@
         }
         var /= u.size();
         double dev = std::sqrt(var);
+        (void)dev; // for scan-build
         // In this case:
         //   skew     computes to 0./0. == nan
         //   kurtosis computes to 0./0. == nan
@@ -360,6 +362,7 @@
         }
         var /= u.size();
         double dev = std::sqrt(var);
+        (void)dev; // for scan-build
         // In this case:
         //   skew     computes to 0./0. == nan
         //   kurtosis computes to 0./0. == nan
@@ -406,6 +409,7 @@
         }
         var /= u.size();
         double dev = std::sqrt(var);
+        (void)dev; // for scan-build
         // In this case:
         //   skew     computes to 0./0. == nan
         //   kurtosis computes to 0./0. == nan
@@ -452,6 +456,7 @@
         }
         var /= u.size();
         double dev = std::sqrt(var);
+        (void)dev; // for scan-build
         // In this case:
         //   skew     computes to 0./0. == nan
         //   kurtosis computes to 0./0. == nan
Index: numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.negbin/eval.pass.cpp
===================================================================
--- numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.negbin/eval.pass.cpp	(revision 220472)
+++ numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.negbin/eval.pass.cpp	(working copy)
@@ -177,13 +177,18 @@
         }
         var /= u.size();
         double dev = std::sqrt(var);
+        (void)dev; // for scan-build
         skew /= u.size() * dev * var;
+        (void)skew; // for scan-build
         kurtosis /= u.size() * var * var;
         kurtosis -= 3;
+        (void)kurtosis; // for scan-build
         double x_mean = d.k() * (1 - d.p()) / d.p();
         double x_var = x_mean / d.p();
         double x_skew = (2 - d.p()) / std::sqrt(d.k() * (1 - d.p()));
+        (void)x_skew; // for scan-build
         double x_kurtosis = 6. / d.k() + sqr(d.p()) / (d.k() * (1 - d.p()));
+        (void)x_kurtosis; // for scan-build
         assert(mean == x_mean);
         assert(var == x_var);
     }
Index: thread/futures/futures.promise/dtor.pass.cpp
===================================================================
--- thread/futures/futures.promise/dtor.pass.cpp	(revision 220472)
+++ thread/futures/futures.promise/dtor.pass.cpp	(working copy)
@@ -40,6 +40,7 @@
         try
         {
             T i = f.get();
+            (void)i; // for scan-build
             assert(false);
         }
         catch (const std::future_error& e)
Index: utilities/function.objects/bind/func.bind/func.bind.bind/invoke_lvalue.pass.cpp
===================================================================
--- utilities/function.objects/bind/func.bind/func.bind.bind/invoke_lvalue.pass.cpp	(revision 220472)
+++ utilities/function.objects/bind/func.bind/func.bind.bind/invoke_lvalue.pass.cpp	(working copy)
@@ -132,6 +132,7 @@
     std::bind(fp, ap)();
     assert(count == save_count+2);
     save_count = count;
+    (void)save_count; // for scan-build
     }
 }
 
@@ -257,6 +258,7 @@
     std::bind(&A_void_2::mem1, _2, _1)(j, A_void_2());
     assert(count == save_count+3);
     save_count = count;
+    (void)save_count; // for scan-build
     }
 }
 
@@ -276,6 +278,7 @@
     const auto f = bind(&TFENode::foo, _1, 0UL);
     const TFENode n = TFENode{};
     bool b = f(n);
+    (void)b; // for scan-build
 }
 
 int main()
Index: utilities/function.objects/bind/func.bind/func.bind.bind/invoke_rvalue.pass.cpp
===================================================================
--- utilities/function.objects/bind/func.bind/func.bind.bind/invoke_rvalue.pass.cpp	(revision 220472)
+++ utilities/function.objects/bind/func.bind/func.bind.bind/invoke_rvalue.pass.cpp	(working copy)
@@ -122,6 +122,7 @@
     std::bind(fp, &a)();
     assert(count == save_count+2);
     save_count = count;
+    (void)save_count; // for scan-build
     }
 }
 
@@ -238,6 +239,7 @@
     std::bind(&A_void_2::mem1, _2, _1)(3, A_void_2());
     assert(count == save_count+3);
     save_count = count;
+    (void)save_count; // for scan-build
     }
 }
 
Index: utilities/function.objects/func.memfn/member_data.pass.cpp
===================================================================
--- utilities/function.objects/func.memfn/member_data.pass.cpp	(revision 220472)
+++ utilities/function.objects/func.memfn/member_data.pass.cpp	(working copy)
@@ -16,7 +16,7 @@
 
 struct A
 {
-    double data_;
+    double data_=0.0;
 };
 
 template <class F>
Index: utilities/function.objects/refwrap/refwrap.invoke/invoke.pass.cpp
===================================================================
--- utilities/function.objects/refwrap/refwrap.invoke/invoke.pass.cpp	(revision 220472)
+++ utilities/function.objects/refwrap/refwrap.invoke/invoke.pass.cpp	(working copy)
@@ -94,6 +94,7 @@
     r1(ap);
     assert(count == save_count+1);
     save_count = count;
+    (void)save_count; // for scan-build
     }
 }
 
@@ -251,6 +252,7 @@
     r1(ap, i);
     assert(count == save_count+4);
     save_count = count;
+    (void)save_count; // for scan-build
     }
 }
 
Index: utilities/function.objects/refwrap/refwrap.invoke/invoke_void_0.pass.cpp
===================================================================
--- utilities/function.objects/refwrap/refwrap.invoke/invoke_void_0.pass.cpp	(revision 220472)
+++ utilities/function.objects/refwrap/refwrap.invoke/invoke_void_0.pass.cpp	(working copy)
@@ -51,6 +51,7 @@
     r1();
     assert(count == save_count+1);
     save_count = count;
+    (void)save_count; // for scan-build
     }
     // functor
     {
@@ -59,6 +60,7 @@
     r1();
     assert(count == save_count+1);
     save_count = count;
+    (void)save_count; // for scan-build
     }
 }
 
Index: utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.modifiers/reset1.pass.cpp
===================================================================
--- utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.modifiers/reset1.pass.cpp	(revision 220472)
+++ utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.modifiers/reset1.pass.cpp	(working copy)
@@ -32,6 +32,7 @@
     std::unique_ptr<A[]> p(new A[3]);
     assert(A::count == 3);
     A* i = p.get();
+    (void)i; // for scan-build
     p.reset();
     assert(A::count == 0);
     assert(p.get() == 0);
@@ -41,6 +42,7 @@
     std::unique_ptr<A[]> p(new A[4]);
     assert(A::count == 4);
     A* i = p.get();
+    (void)i; // for scan-build
     p.reset(new A[5]);
     assert(A::count == 5);
     }
Index: utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.modifiers/reset1.pass.cpp
===================================================================
--- utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.modifiers/reset1.pass.cpp	(revision 220472)
+++ utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.modifiers/reset1.pass.cpp	(working copy)
@@ -32,6 +32,7 @@
     std::unique_ptr<A> p(new A);
     assert(A::count == 1);
     A* i = p.get();
+    (void)i; // for scan-build
     p.reset();
     assert(A::count == 0);
     assert(p.get() == 0);
@@ -41,6 +42,7 @@
     std::unique_ptr<A> p(new A);
     assert(A::count == 1);
     A* i = p.get();
+    (void)i; // for scan-build
     p.reset(new A);
     assert(A::count == 1);
     }
Index: utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.modifiers/reset2.pass.cpp
===================================================================
--- utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.modifiers/reset2.pass.cpp	(revision 220472)
+++ utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.modifiers/reset2.pass.cpp	(working copy)
@@ -44,6 +44,7 @@
     assert(A::count == 1);
     assert(B::count == 0);
     A* i = p.get();
+    (void)i; // for scan-build
     p.reset(new B);
     assert(A::count == 1);
     assert(B::count == 1);
@@ -55,6 +56,7 @@
     assert(A::count == 1);
     assert(B::count == 1);
     A* i = p.get();
+    (void)i; // for scan-build
     p.reset(new B);
     assert(A::count == 1);
     assert(B::count == 1);
Index: utilities/time/time.clock/time.clock.system/to_time_t.pass.cpp
===================================================================
--- utilities/time/time.clock/time.clock.system/to_time_t.pass.cpp	(revision 220472)
+++ utilities/time/time.clock/time.clock.system/to_time_t.pass.cpp	(working copy)
@@ -20,4 +20,5 @@
 {
     typedef std::chrono::system_clock C;
     std::time_t t1 = C::to_time_t(C::now());
+    (void)t1; // for scan-build
 }


More information about the cfe-commits mailing list