Add workflow file for compiler argument tests
diff --git a/.github/workflows/compiler_tests.yml b/.github/workflows/compiler_tests.yml
new file mode 100644
index 0000000..b464ec5
--- /dev/null
+++ b/.github/workflows/compiler_tests.yml
@@ -0,0 +1,62 @@
+name: Run tests with various compilers
+
+on:
+  workflow_dispatch:
+  push:
+
+jobs:
+  test_linux:
+    name: Test with gcc & clang on Ubuntu
+    runs-on: ubuntu-20.04
+
+    steps:
+      - name: Check out code from GitHub
+        uses: actions/checkout@v2
+        with:
+          path: nanopb
+          fetch-depth: "0"
+
+      - name: Install dependencies
+        run: |
+          sudo dpkg --add-architecture i386
+          sudo apt-get update
+          sudo apt-get install python3-protobuf protobuf-compiler scons
+          sudo apt-get install clang valgrind splint cmake
+          sudo apt-get install libstdc++6:i386 libgcc-s1:i386 lib32gcc-9-dev lib32stdc++-9-dev libncurses5:i386 libc6-dbg:i386 libc6-dev:i386 binutils-multiarch
+
+      - name: Test with 64-bit GCC
+        run: |
+          cd nanopb/tests
+          rm -rf build
+          scons CC=gcc CXX=g++ CCFLAGS="-O3"
+          rm -rf build
+          scons CC=gcc CXX=g++ CCFLAGS="-Os -flto"
+          rm -rf build
+          scons CC=gcc CXX=g++ CCFLAGS="-O1 -DPB_FIELD_32BIT=1"
+      
+      - name: Test with 32-bit GCC
+        run: |
+          cd nanopb/tests
+          rm -rf build
+          scons CC=gcc CXX=g++ CCFLAGS="-O3 -m32" LINKFLAGS="-m32"
+          rm -rf build
+          scons CC=gcc CXX=g++ CCFLAGS="-Os -flto -m32" LINKFLAGS="-m32"
+          rm -rf build
+          scons CC=gcc CXX=g++ CCFLAGS="-O1 -DPB_FIELD_32BIT=1 -m32" LINKFLAGS="-m32"
+      
+      - name: Test with 64-bit clang
+        run: |
+          cd nanopb/tests
+          rm -rf build
+          scons CC=clang CXX=clang++ CCFLAGS="-O3"
+          rm -rf build
+          scons CC=clang CXX=clang++ CCFLAGS="-Os -DPB_FIELD_32BIT=1"
+      
+      - name: Test with 32-bit clang
+        run: |
+          cd nanopb/tests
+          rm -rf build
+          scons CC=clang CXX=clang++ CCFLAGS="-O3 -m32" LINKFLAGS="-m32"
+          rm -rf build
+          scons CC=clang CXX=clang++ CCFLAGS="-Os -DPB_FIELD_32BIT=1 -m32" LINKFLAGS="-m32"
+