Какие примеры недетерминированности в компиляторе C ++? - PullRequest
0 голосов
/ 24 октября 2018

Я ищу примеры кода, который запускает недетерминизм в GCC или в процессе компиляции Clang.

Одним из ярких примеров является использование макроса __DATE__.

GCC иУ Clang есть множество флагов компилятора, чтобы контролировать результат недетерминированных действий в компиляторе например.-frandom-seed и -fno-guess-branch-probability

Есть ли небольшие примеры, на которые влияют эти флаги?

Точнее:

$ c++ main.cpp -o main && shasum main
aabbccddee

$ c++ main.cpp -o main && shasum main
eeddccbbaa

Я ищуПримеры кода без макросов, где несколько запусков компилятора приводят к разным выходам, но могут быть исправлены, например, -frandom-seed

EDIT:

related: from gcc документы:

-fno-guess-branch-probability:
Sometimes gcc will opt to use a randomized model to guess branch probabilities, 
when none are available from either profiling feedback (-fprofile-arcs) 
or __builtin_expect. 
This means that different runs of the compiler on the same program
may produce different object code.
The default is -fguess-branch-probability at levels -O, -O2, -O3, -Os. 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...