Какие примеры недетерминированности в компиляторе C++?

Я ищу примеры кода, который вызывает недетерминизм в процессе компиляции 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

Обновлено:

связанные: из документов 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. 

Поскольку это не относится к неработающему коду, который необходимо исправить, здесь, в Stack Overflow, это не по теме. Возможно, вы захотите обратиться к форуму о компиляторах (например, clang или GCC), чтобы получить информацию от людей, которые действительно создают и поддерживают компиляторы, и где вы можете развернуть обсуждение по этому вопросу.

tadman 24.10.2018 18:52

@tadman StackOverflow также относится к инструментам, используемым разработчиками, так что это действительно имеет значение. Пожалуйста, перечитайте stackoverflow.com/help/on-topic.

rubenvb 24.10.2018 18:55

@rubenvb Это не то, на что вы можете кратко ответить. Это не по теме и уже набрало три голоса. Я здесь не один. Я не говорю, что это плохой вопрос, просто он не в том месте.

tadman 24.10.2018 18:56

@tadman Мне, честно говоря, наплевать, сколько у него близких голосов. Это очень ответственный вопрос (какой код / ​​параметры запускают такое поведение) об инструментах, обычно используемых разработчиками (компиляторами). Я не могу на это ответить. Кажется, вы не можете, но это не делает этот вопрос не по теме.

rubenvb 24.10.2018 18:57

@tadman Вопрос требует некоторых небольших примеров кода. На мой взгляд, это был бы емкий ответ.

sdgfsdh 24.10.2018 18:58

@sdgfsdh Это только верхушка. Чтобы правильно ответить на этот вопрос, потребуются значительные усилия и диалог. Это хороший вопрос, но он слишком широк, чтобы здесь отвечать. Форумы позволяют гораздо больше обсуждать и уточнять. Stack Overflow не должен работать таким образом.

tadman 24.10.2018 19:03

AFAICT этот вопрос по теме в соответствии с правилами, описанными по ссылке @ rubenvb выше. В частности, он «о программном инструменте, обычно используемом программистами», и является «практической, решаемой проблемой, уникальной для разработки программного обеспечения».

Jeremy Friesner 24.10.2018 19:13

Я считаю, что ваш вопрос чудовищно широк. Я рекомендую вам посмотреть здесь: gcc.gnu.org/onlinedocs/gcc/… там есть несколько примеров кода. Может быть, после того, как вы посмотрите там и на связанные ссылки оттуда, вы сможете вернуться и задать гораздо более ограниченный вопрос.

Dr t 24.10.2018 20:47

@Drt Ни один из абзацев в вашей ссылке не имеет никакого отношения к моему вопросу. Не могли бы вы пояснить, почему вы считаете мой вопрос широким? - возможно я смогу уточнить свой вопрос

Gaetano 24.10.2018 21:37

Вопросник @Drt просит «несколько примеров», а не «все возможные случаи». Неужели не без причины попросить несколько примеров феномена?

Jeremy Friesner 25.10.2018 01:44

@MarcGlisse добавил фрагмент из документации gcc

Gaetano 25.10.2018 13:49

@ Гаэтано а, хорошо, спасибо.

Marc Glisse 25.10.2018 14:57
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
5
12
792
0

Другие вопросы по теме