https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107660
Bug ID: 107660 Summary: Running binaries compiled with g++11 or later produces different results than g++ version 10 or earlier Product: gcc Version: 12.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: t3suzuki at ucsd dot edu Target Milestone: --- [gcc version] $ ./g++ -v Using built-in specs. COLLECT_GCC=./g++ COLLECT_LTO_WRAPPER=/home/tomoya-s/gcc-12.2.0/install/libexec/gcc/x86_64-pc-linux-gnu/12.2.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ./configure --prefix=/home/tomoya-s/gcc-12.2.0/install --disable-multilib Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 12.2.0 (GCC) [the command line that triggers the bug] % git clone https://github.com/sbeamer/gapbs.git % cd gapbs % make bfs % ./bfs -g 10 -n 1 [the output by using g++-12.2.0 (or g++-11) ] Generate Time: 0.00282 Build Time: 0.00044 Graph has 1024 nodes and 10496 undirected edges for degree: 10 Source: 204 i 0.00001 td 2 0.00000 td 59 0.00000 e 0.00000 bu 711 0.00003 bu 123 0.00001 bu 0 0.00001 c 0.00000 Trial Time: 0.00017 Average Time: 0.00017 [the output by using g++-10 or earlier or clang++] Generate Time: 0.00797 Build Time: 0.00102 Graph has 1024 nodes and 10496 undirected edges for degree: 10 Source: 204 i 0.00001 td 15 0.00001 e 0.00000 bu 615 0.00004 bu 264 0.00001 bu 1 0.00001 c 0.00000 td 0 0.00000 Trial Time: 0.00017 Average Time: 0.00017 Of course, the execution time is different. We expect the numbers 2 and 59 and 711 after td and bu to be the same. This is because the input and the process itself are the same, and there is no randomness inside the process (random seed is fixed). Note that this program uses OpenMP, but even if we disable it, the results will be different depending on the g++ version as well.