diff options
author | meibf <meibf@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-07-31 08:50:50 +0000 |
---|---|---|
committer | meibf <meibf@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-07-31 08:50:50 +0000 |
commit | 8c3766fd997d5ee379e11cc0d888777bda3992e6 (patch) | |
tree | 54733b3b92816303feb98e0f57cab1c0f45bbda0 /gcc/toplev.c | |
parent | 76ce2a4313dc83ec62dee8c58a3d1bd7b645d1c0 (diff) | |
download | gcc-8c3766fd997d5ee379e11cc0d888777bda3992e6.tar.gz |
2014-07-31 Bingfeng Mei <bmei@broadcom.com>
PR lto/61868
* toplev.c (init_random_seed): Move piece of code never called to
set_random_seed.
(set_random_seed): see above.
* gcc.dg/pr61868.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213321 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/toplev.c')
-rw-r--r-- | gcc/toplev.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c index c2d4232523e..98ea0588013 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -282,16 +282,7 @@ init_local_tick (void) static void init_random_seed (void) { - if (flag_random_seed) - { - char *endp; - - /* When the driver passed in a hex number don't crc it again */ - random_seed = strtoul (flag_random_seed, &endp, 0); - if (!(endp > flag_random_seed && *endp == 0)) - random_seed = crc32_string (0, flag_random_seed); - } - else if (!random_seed) + if (!random_seed) random_seed = local_tick ^ getpid (); /* Old racey fallback method */ } @@ -314,6 +305,15 @@ set_random_seed (const char *val) { const char *old = flag_random_seed; flag_random_seed = val; + if (flag_random_seed) + { + char *endp; + + /* When the driver passed in a hex number don't crc it again */ + random_seed = strtoul (flag_random_seed, &endp, 0); + if (!(endp > flag_random_seed && *endp == 0)) + random_seed = crc32_string (0, flag_random_seed); + } return old; } |