#!/bin/bash export LC_ALL=C set -e CC="${TEST_CC:-cc}" CXX="${TEST_CXX:-c++}" GCC="${TEST_GCC:-gcc}" GXX="${TEST_GXX:-g++}" MACHINE="${MACHINE:-$(uname -m)}" testname=$(basename "$0" .sh) echo -n "Testing $testname ... " t=out/test/elf/$MACHINE/$testname mkdir -p $t cat < int bar() { return 5; } int foo1(int x) { return bar() + x; } int foo2(int x) { return bar() + x; } int foo3() { bar(); return 5; } int main() { printf("%d %d\n", (long)foo1 == (long)foo2, (long)foo1 == (long)foo3); return 0; } EOF $CC -B. -o $t/exe $t/a.o -Wl,-icf=all $QEMU $t/exe | grep -q '1 0' echo OK