diff --git a/.github/bors.toml b/.github/bors.toml index 89486ef159b..36914c2cc65 100644 --- a/.github/bors.toml +++ b/.github/bors.toml @@ -1,5 +1,5 @@ status = [ - "build-and-check" + "build-and-check-ubuntu-64bit" ] # Uncomment this to use a two hour timeout. # The default is one hour. diff --git a/.github/workflows/ccpp.yml b/.github/workflows/ccpp.yml index 6fdfd9748b8..c88674033e7 100644 --- a/.github/workflows/ccpp.yml +++ b/.github/workflows/ccpp.yml @@ -1,4 +1,4 @@ -name: C/C++ CI +name: GCC Rust build and test on: push: @@ -9,7 +9,7 @@ on: branches: [ master ] jobs: - build-and-check: + build-and-check-ubuntu-64bit: env: # Force locale, in particular for reproducible results re '.github/bors_log_expected_warnings' (see below). @@ -67,7 +67,84 @@ jobs: - name: Run Tests run: | cd gccrs-build; \ - make check-rust + make check-rust RUNTESTFLAGS="--target_board=unix\{-m64}" + - name: Archive check-rust results + uses: actions/upload-artifact@v2 + 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: + # Force locale, in particular for reproducible results re '.github/bors_log_expected_warnings' (see below). + LC_ALL: C.UTF-8 + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - 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 + + - name: Configure + run: | + mkdir -p gccrs-build; + cd gccrs-build; + ../configure \ + --enable-languages=rust \ + --disable-bootstrap \ + --enable-multilib + + - name: Build + shell: bash + run: | + cd gccrs-build; \ + 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/bors_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\{-m32}" - name: Archive check-rust results uses: actions/upload-artifact@v2 with: @@ -131,7 +208,7 @@ jobs: - name: Run Tests run: | cd gccrs-build; \ - make check-rust + make check-rust RUNTESTFLAGS="--target_board=unix\{-m32,-m64}" - name: Archive check-rust results uses: actions/upload-artifact@v2 diff --git a/gcc/testsuite/rust/compile/torture/issue-1432.rs b/gcc/testsuite/rust/compile/torture/issue-1432.rs index a3fa2c36be7..083a369d16f 100644 --- a/gcc/testsuite/rust/compile/torture/issue-1432.rs +++ b/gcc/testsuite/rust/compile/torture/issue-1432.rs @@ -73,6 +73,5 @@ impl_uint!( u16 = "u16", u32 = "u32", u64 = "u64", - u128 = "u128", usize = "usize" ); diff --git a/gcc/testsuite/rust/debug/win64-abi.rs b/gcc/testsuite/rust/debug/win64-abi.rs index 9d8de406b0b..b2b08cd5114 100644 --- a/gcc/testsuite/rust/debug/win64-abi.rs +++ b/gcc/testsuite/rust/debug/win64-abi.rs @@ -1,10 +1,10 @@ +// { dg-do compile { target { x86_64-*-* } } } +// { dg-options "-gdwarf-5 -dA -w -O1 -m64" } pub extern "win64" fn square(num: i32) -> i32 { num * num } fn main() { - // { dg-do compile { target { x86_64-*-* } } } - // { dg-options "-gdwarf-5 -dA -w -O1" } // MS ABI dictates that the first argument is ecx instead of edi from the sysv world // { dg-final { scan-assembler "%ecx, %ecx" } } square(1);