https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95603

            Bug ID: 95603
           Summary: [11 Regression] sanitizer_linux.cpp:1880:16: error:
                    missing terminating ' character
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Keywords: build
          Severity: normal
          Priority: P3
         Component: sanitizer
          Assignee: unassigned at gcc dot gnu.org
          Reporter: zsojka at seznam dot cz
                CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org,
                    jakub at gcc dot gnu.org, kcc at gcc dot gnu.org, marxin at 
gcc dot gnu.org
  Target Milestone: ---
              Host: x86_64-pc-linux-gnu
            Target: riscv64-unknown-linux-gnu

As originally reported in the thread [1], libsanitizer fails to build on
x86_64-pc-linux-gnu to riscv64-unknown-linux-gnu cross-compiler 
configured as:

/repo/gcc-trunk//configure --enable-languages=c,c++ --enable-valgrind-
annotations --disable-nls --enable-checking=yes,rtl,df,extra --with-cloog --
with-ppl --with-isl --with-sysroot=/usr/riscv64-unknown-linux-gnu --build=x
86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --target=riscv64-unknown-linux
-gnu --with-ld=/usr/bin/riscv64-unknown-linux-gnu-ld --with-as=/usr/bin/
riscv64-unknown-linux-gnu-as --disable-multilib --disable-libstdcxx-pch --
prefix=/repo/gcc-trunk//binary-trunk-r11-767-20200601155732-gff7da2b5d62-
checking-yes-rtl-df-extra-riscv64

this is probably since [2]. The code would be probably accepted with
-std=gnu++14 or by patching the code not to contain the binary constants.

The error is:

libtool: compile:  /repo/build-gcc-trunk-riscv64/./gcc/xgcc -shared-libgcc
-B/repo/build-gcc-trunk-riscv64/./gcc -nostdinc++
-L/repo/build-gcc-trunk-riscv64/riscv64-unknown-linux-gnu/libstdc++-v3/src
-L/repo/build-gcc-trunk-riscv64/riscv64-unknown-linux-gnu/libstdc++-v3/src/.libs
-L/repo/build-gcc-trunk-riscv64/riscv64-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs
-B/repo/gcc-trunk//binary-trunk-r11-1081-20200609083936-gd6dbb71e468-checking-yes-rtl-df-extra-riscv64/riscv64-unknown-linux-gnu/bin/
-B/repo/gcc-trunk//binary-trunk-r11-1081-20200609083936-gd6dbb71e468-checking-yes-rtl-df-extra-riscv64/riscv64-unknown-linux-gnu/lib/
-isystem
/repo/gcc-trunk//binary-trunk-r11-1081-20200609083936-gd6dbb71e468-checking-yes-rtl-df-extra-riscv64/riscv64-unknown-linux-gnu/include
-isystem
/repo/gcc-trunk//binary-trunk-r11-1081-20200609083936-gd6dbb71e468-checking-yes-rtl-df-extra-riscv64/riscv64-unknown-linux-gnu/sys-include
-D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS
-D__STDC_LIMIT_MACROS -DHAVE_RPC_XDR_H=0 -DHAVE_TIRPC_RPC_XDR_H=0 -I.
-I/repo/gcc-trunk/libsanitizer/sanitizer_common -I.. -I
/repo/gcc-trunk/libsanitizer/include -I /repo/gcc-trunk/libsanitizer -isystem
/repo/gcc-trunk/libsanitizer/include/system -Wall -W -Wno-unused-parameter
-Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin -fno-exceptions
-fno-rtti -fomit-frame-pointer -funwind-tables -fvisibility=hidden
-Wno-variadic-macros -I../../libstdc++-v3/include
-I../../libstdc++-v3/include/riscv64-unknown-linux-gnu
-I/repo/gcc-trunk/libsanitizer/../libstdc++-v3/libsupc++ -std=gnu++11
-DSANITIZER_LIBBACKTRACE -DSANITIZER_CP_DEMANGLE -I
/repo/gcc-trunk/libsanitizer/../libbacktrace -I ../libbacktrace -I
/repo/gcc-trunk/libsanitizer/../include -include
/repo/gcc-trunk/libsanitizer/libbacktrace/backtrace-rename.h -g -O2
-D_GNU_SOURCE -MT sanitizer_linux.lo -MD -MP -MF .deps/sanitizer_linux.Tpo -c
/repo/gcc-trunk/libsanitizer/sanitizer_common/sanitizer_linux.cpp  -fPIC -DPIC
-o .libs/sanitizer_linux.o
/repo/gcc-trunk/libsanitizer/sanitizer_common/sanitizer_linux.cpp:1880:12:
warning: binary constants are a C++14 feature or GCC extension
 1880 |       case 0b10'010:  // c.lwsp (rd != x0)
      |            ^~~~
/repo/gcc-trunk/libsanitizer/sanitizer_common/sanitizer_linux.cpp:1880:16:
warning: missing terminating ' character
 1880 |       case 0b10'010:  // c.lwsp (rd != x0)
      |                ^
/repo/gcc-trunk/libsanitizer/sanitizer_common/sanitizer_linux.cpp:1880:16:
error: missing terminating ' character
 1880 |       case 0b10'010:  // c.lwsp (rd != x0)
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~



[1] https://gcc.gnu.org/pipermail/gcc-help/2020-June/139023.html
[2] https://gcc.gnu.org/pipermail/gcc-patches/2020-June/547010.html

Reply via email to