diff --git a/.github/glibcxx_ubuntu64b_log_expected_warnings b/.github/glibcxx_ubuntu64b_log_expected_warnings new file mode 100644 index 000000000000..b1f400a065dc --- /dev/null +++ b/.github/glibcxx_ubuntu64b_log_expected_warnings @@ -0,0 +1,132 @@ +../../../../libgcc/generic-morestack.c:397:16: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘long int’ [-Wsign-compare] +../../../../libgcc/soft-fp/fixdfbitint.c:51:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/fixdfbitint.c:51:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/fixdfbitint.c:57:22: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/fixdfbitint.c:57:22: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/fixdfbitint.c:61:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/fixdfbitint.c:61:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/fixsfbitint.c:51:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/fixsfbitint.c:51:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/fixsfbitint.c:57:22: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/fixsfbitint.c:57:22: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/fixsfbitint.c:61:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/fixsfbitint.c:61:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/fixtfbitint.c:61:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/fixtfbitint.c:61:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/fixtfbitint.c:67:22: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/fixtfbitint.c:67:22: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/fixtfbitint.c:71:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/fixtfbitint.c:71:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/fixxfbitint.c:62:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/fixxfbitint.c:62:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/fixxfbitint.c:68:22: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/fixxfbitint.c:68:22: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/fixxfbitint.c:72:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/fixxfbitint.c:72:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1477:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1477:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1477:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1477:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1477:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1477:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1477:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1477:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1492:26: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1492:26: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1492:26: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1492:26: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1492:26: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1492:26: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1492:26: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1492:26: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1515:24: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1515:24: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1515:24: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1515:24: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1515:24: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1515:24: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1515:24: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1515:24: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1560:39: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1560:39: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1560:39: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1560:39: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1560:39: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1560:39: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1560:39: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1560:39: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1563:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1563:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1563:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1563:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1563:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1563:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1563:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../../libgcc/soft-fp/op-common.h:1563:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} [-Wsign-compare] +../../../libcpp/expr.cc:842:35: warning: format not a string literal and no format arguments [-Wformat-security] +../../../libcpp/expr.cc:845:38: warning: format not a string literal and no format arguments [-Wformat-security] +../../../libcpp/expr.cc:855:33: warning: format not a string literal and no format arguments [-Wformat-security] +../../../libcpp/expr.cc:867:42: warning: format not a string literal and no format arguments [-Wformat-security] +../../../libcpp/expr.cc:870:39: warning: format not a string literal and no format arguments [-Wformat-security] +../../../libcpp/expr.cc:877:35: warning: format not a string literal and no format arguments [-Wformat-security] +../../../libcpp/macro.cc:185:26: warning: format not a string literal and no format arguments [-Wformat-security] +../../../libcpp/macro.cc:214:34: warning: format not a string literal and no format arguments [-Wformat-security] +../../../libcpp/macro.cc:3710:25: warning: format not a string literal and no format arguments [-Wformat-security] +../../../libcpp/macro.cc:3725:25: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/analyzer/program-state.cc:1498:15: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/c-family/c-common.cc:6763:14: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/c-family/c-common.cc:6767:16: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/c/c-convert.cc:84:13: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/c/c-typeck.cc:12453:16: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/c/c-typeck.cc:3878:17: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/c/c-typeck.cc:4648:16: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/c/c-typeck.cc:6913:23: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/collect-utils.cc:237:21: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/collect2.cc:2400:21: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/diagnostic.cc:2316:15: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/fold-const.cc:384:13: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/gcc.cc:2412:30: warning: too many arguments for format [-Wformat-extra-args] +../../gcc/gcc.cc:2413:32: warning: unknown conversion type character ‘t’ in format [-Wformat=] +../../gcc/gcc.cc:2432:30: warning: too many arguments for format [-Wformat-extra-args] +../../gcc/gcc.cc:2433:32: warning: unknown conversion type character ‘t’ in format [-Wformat=] +../../gcc/gcc.cc:2458:30: warning: too many arguments for format [-Wformat-extra-args] +../../gcc/gcc.cc:2459:32: warning: unknown conversion type character ‘t’ in format [-Wformat=] +../../gcc/gcc.cc:2467:30: warning: too many arguments for format [-Wformat-extra-args] +../../gcc/gcc.cc:2468:32: warning: unknown conversion type character ‘t’ in format [-Wformat=] +../../gcc/gcc.cc:2477:30: warning: too many arguments for format [-Wformat-extra-args] +../../gcc/gcc.cc:2478:32: warning: unknown conversion type character ‘t’ in format [-Wformat=] +../../gcc/gcc.cc:2487:30: warning: too many arguments for format [-Wformat-extra-args] +../../gcc/gcc.cc:2488:32: warning: unknown conversion type character ‘t’ in format [-Wformat=] +../../gcc/gcc.cc:2527:26: warning: too many arguments for format [-Wformat-extra-args] +../../gcc/gcc.cc:2527:59: warning: unknown conversion type character ‘t’ in format [-Wformat=] +../../gcc/gcc.cc:2539:22: warning: too many arguments for format [-Wformat-extra-args] +../../gcc/gcc.cc:2539:51: warning: unknown conversion type character ‘t’ in format [-Wformat=] +../../gcc/gcc.cc:2553:22: warning: too many arguments for format [-Wformat-extra-args] +../../gcc/gcc.cc:2553:51: warning: unknown conversion type character ‘t’ in format [-Wformat=] +../../gcc/gimple-range-gori.cc:318:19: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/ipa-devirt.cc:967:10: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/lto-wrapper.cc:1369:10: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/lto-wrapper.cc:1971:23: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/text-art/style.cc:150:25: warning: spurious leading punctuation sequence ‘;’ in format [-Wformat-diag] +../../gcc/text-art/style.cc:160:25: warning: spurious leading punctuation sequence ‘;’ in format [-Wformat-diag] +../../gcc/text-art/table.cc:981:62: warning: unquoted keyword ‘char’ in format [-Wformat-diag] +../../gcc/text-art/table.cc:981:69: warning: spurious trailing punctuation sequence ‘])’ in format [-Wformat-diag] +../../gcc/tree-ssa-sccvn.cc:286:21: warning: format not a string literal and no format arguments [-Wformat-security] +../../libcpp/expr.cc:842:35: warning: format not a string literal and no format arguments [-Wformat-security] +../../libcpp/expr.cc:845:38: warning: format not a string literal and no format arguments [-Wformat-security] +../../libcpp/expr.cc:855:33: warning: format not a string literal and no format arguments [-Wformat-security] +../../libcpp/expr.cc:867:42: warning: format not a string literal and no format arguments [-Wformat-security] +../../libcpp/expr.cc:870:39: warning: format not a string literal and no format arguments [-Wformat-security] +../../libcpp/expr.cc:877:35: warning: format not a string literal and no format arguments [-Wformat-security] +../../libcpp/macro.cc:185:26: warning: format not a string literal and no format arguments [-Wformat-security] +../../libcpp/macro.cc:214:34: warning: format not a string literal and no format arguments [-Wformat-security] +../../libcpp/macro.cc:3710:25: warning: format not a string literal and no format arguments [-Wformat-security] +../../libcpp/macro.cc:3725:25: warning: format not a string literal and no format arguments [-Wformat-security] +/home/runner/work/gccrs/gccrs/gccrs-build/x86_64-pc-linux-gnu/32/libssp/../../../../libssp/gets-chk.c:73: warning: the `gets' function is dangerous and should not be used. +/home/runner/work/gccrs/gccrs/gccrs-build/x86_64-pc-linux-gnu/libssp/../../../libssp/gets-chk.c:73: warning: the `gets' function is dangerous and should not be used. +gengtype-lex.cc:357:15: warning: this statement may fall through [-Wimplicit-fallthrough=] +gengtype-lex.cc:357:15: warning: this statement may fall through [-Wimplicit-fallthrough=] +gengtype-lex.cc:357:15: warning: this statement may fall through [-Wimplicit-fallthrough=] +gengtype-lex.cc:357:15: warning: this statement may fall through [-Wimplicit-fallthrough=] +install.texi:2231: warning: `.' or `,' must follow @xref, not f +libtool: install: warning: remember to run `libtool --finish /usr/local/libexec/gcc/x86_64-pc-linux-gnu/14.0.1' diff --git a/.github/workflows/ccpp.yml b/.github/workflows/ccpp.yml index 57bb4d630226..04699148a6ba 100644 --- a/.github/workflows/ccpp.yml +++ b/.github/workflows/ccpp.yml @@ -94,6 +94,88 @@ jobs: exit 0; \ fi + build-and-check-ubuntu-64bit-glibcxx: + + env: + # Force locale, in particular for reproducible results re '.github/bors_log_expected_warnings' (see below). + LC_ALL: C.UTF-8 + + runs-on: ubuntu-22.04 + + steps: + - uses: actions/checkout@v3 + + - name: Install Deps + run: | + sudo apt-get update; + sudo apt-get install -y \ + automake \ + autoconf \ + libtool \ + autogen \ + bison \ + flex \ + libgmp3-dev \ + libmpfr-dev \ + libmpc-dev \ + build-essential \ + gcc-multilib \ + g++-multilib \ + dejagnu; + # install Rust directly using rustup + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain=1.72.0; + + - name: Configure + run: | + mkdir -p gccrs-build; + cd gccrs-build; + export CXXFLAGS="$CXXFLAGS -D_GLIBCXX_ASSERTIONS" + ../configure \ + --enable-languages=rust \ + --disable-bootstrap \ + --enable-multilib + + - name: Build + shell: bash + run: | + cd gccrs-build; \ + # Add cargo to our path quickly + . "$HOME/.cargo/env"; + make -Otarget -j $(nproc) 2>&1 | tee log + + - name: Check for new warnings + run: | + cd gccrs-build + < log grep 'warning: ' | sort > log_warnings + if diff -U0 ../.github/glibcxx_ubuntu64b_log_expected_warnings log_warnings; then + : + else + echo 'See .' + exit 1 + fi >&2 + + - name: Run Tests + run: | + cd gccrs-build; \ + make check-rust RUNTESTFLAGS="--target_board=unix\{-m64}" + - name: Archive check-rust results + uses: actions/upload-artifact@v3 + with: + name: check-rust-logs + path: | + gccrs-build/gcc/testsuite/rust/ + - name: Check regressions + run: | + cd gccrs-build; \ + if grep -e "unexpected" -e "unresolved" -e "ERROR:" gcc/testsuite/rust/rust.sum;\ + then \ + echo "::error title=Regression test failed::some tests are not correct"; \ + perl -n ../.github/emit_test_errors.pl < gcc/testsuite/rust/rust.sum; \ + exit 1; \ + else \ + exit 0; \ + fi + build-and-check-ubuntu-32bit: env: