Bug 50510 - [C++0x] transposed variable names in std::seed_seq::generate
Summary: [C++0x] transposed variable names in std::seed_seq::generate
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: libstdc++ (show other bugs)
Version: 4.6.1
: P3 normal
Target Milestone: 4.6.2
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-09-24 21:53 UTC by John Salmon
Modified: 2011-09-24 22:40 UTC (History)
0 users

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2011-09-24 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description John Salmon 2011-09-24 21:53:48 UTC
The C++11 "Final Draft International Standard" (FDIS n3290.pdf) fixes a defect in the "Final Committee Draft" (FCD n3092.pdf), swapping the use of the intermediate variables r3 and r4 in the std::seed_seq::generate() function.  See 25.5.7.1 paragraph 8c.  This patch brings libstdc++ up-to-date:

salmonj@drdlogin0039.en.desres$ diff -u oldrandom.tcc random.tcc
--- oldrandom.tcc	2011-09-19 10:04:46.836512000 -0400
+++ random.tcc	2011-09-24 17:45:02.879621416 -0400
@@ -2796,8 +2796,8 @@
 	  _Type __r4 = __r3 - __k % __n;
 	  __r4 = __detail::__mod<_Type,
 	           __detail::_Shift<_Type, 32>::__value>(__r4);
-	  __begin[(__k + __p) % __n] ^= __r4;
-	  __begin[(__k + __q) % __n] ^= __r3;
+	  __begin[(__k + __p) % __n] ^= __r3;
+	  __begin[(__k + __q) % __n] ^= __r4;
 	  __begin[__k % __n] = __r4;
 	}
     }
salmonj@drdlogin0039.en.desres$
Comment 1 Paolo Carlini 2011-09-24 22:27:00 UTC
Ok, thanks.
Comment 2 paolo@gcc.gnu.org 2011-09-24 22:34:57 UTC
Author: paolo
Date: Sat Sep 24 22:34:50 2011
New Revision: 179149

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=179149
Log:
2011-09-24  John Salmon  <john.salmon@deshaw.com>

	PR libstdc++/50510
	* include/bits/random.tcc (seed_seq::generate): Fix computation.

Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/include/bits/random.tcc
Comment 3 paolo@gcc.gnu.org 2011-09-24 22:35:11 UTC
Author: paolo
Date: Sat Sep 24 22:35:02 2011
New Revision: 179150

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=179150
Log:
2011-09-24  John Salmon  <john.salmon@deshaw.com>

	PR libstdc++/50510
	* include/bits/random.tcc (seed_seq::generate): Fix computation.

Modified:
    branches/gcc-4_6-branch/libstdc++-v3/ChangeLog
    branches/gcc-4_6-branch/libstdc++-v3/include/bits/random.tcc
Comment 4 Paolo Carlini 2011-09-24 22:35:52 UTC
Done.