Quuxplusone / LLVMBugzillaTest

0 stars 0 forks source link

Compiling in 32 bits and sanitize cause "out of bounds" in compilation regcomp.c #38347

Open Quuxplusone opened 6 years ago

Quuxplusone commented 6 years ago
Bugzilla Link PR39374
Status NEW
Importance P normal
Reported by Felipe Matas (felipematas@yahoo.com)
Reported on 2018-10-21 08:02:33 -0700
Last modified on 2018-10-21 16:24:08 -0700
Version 7.0
Hardware PC Linux
CC efriedma@quicinc.com, llvm-bugs@lists.llvm.org
Fixed by commit(s)
Attachments
Blocks
Blocked by
See also
Hi, i'm compiling llvm from github with some sanitizer obtions (in c++, c, and
ld), and if we set LLVM_BUILD_32_BITS=ON the compilation phase fails.

I'm using Gentoo 64, GCC-7.3.0

Sanitizer obtions: -fsanitize=undefined -fsanitize=shift -fsanitize=shift-
exponent -fsanitize=shift-base -fsanitize=integer-divide-by-zero -
fsanitize=unreachable -fsanitize=vla-bound -fsanitize=null -fsanitize=return -
fsanitize=signed-integer-overflow -fsanitize=bounds -fsanitize=bounds-strict -
fsanitize=object-size -fsanitize=float-divide-by-zero -fsanitize=float-cast-
overflow -fsanitize=nonnull-attribute -fsanitize=returns-nonnull-attribute -
fsanitize=enum -fsanitize=vptr

Log:

[ 48%] Building CXX object
lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MIRPrinter.cpp.o
[ 48%] Building CXX object
lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SpeculateAroundPHIs.cpp.o
/home/pipe/Documentos/git/llvm/lib/Support/regcomp.c:351:30: runtime error:
index 128 out of bounds for type 'cat_t [1]'
[ 48%] Building AArch64GenGlobalISel.inc...
[ 48%] Building CXX object
lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopPass.cpp.o
[ 48%] Building ARMGenMCCodeEmitter.inc...
...
[ 48%] Building CXX object
lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemoryDependenceAnalysis.cpp.o
[ 48%] Linking CXX static library ../../libLLVMScalarOpts.a
/home/pipe/Documentos/git/llvm/lib/Support/regcomp.c:351:30: runtime error:
index 128 out of bounds for type 'cat_t [1]'
[ 48%] Building CXX object
lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ParallelCG.cpp.o
[ 48%] Built target LLVMScalarOpts
[ 48%] Building ARMGenSystemRegister.inc...
/home/pipe/Documentos/git/llvm/lib/Support/regcomp.c:351:30: runtime error:
index 128 out of bounds for type 'cat_t [1]'
[ 48%] Building CXX object
lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PeepholeOptimizer.cpp.o
[ 48%] Updating ARMGenAsmMatcher.inc...
[ 48%] Updating ARMGenAsmWriter.inc...
...
[ 50%] Updating LanaiGenSubtargetInfo.inc...
[ 50%] Built target LanaiCommonTableGen
/home/pipe/Documentos/git/llvm/lib/Support/regcomp.c:351:30: runtime error:
index 128 out of bounds for type 'cat_t [1]'
[ 50%] Building CXX object
lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MustExecute.cpp.o
[ 50%] Building CXX object
lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ProcessImplicitDefs.cpp.o
...
[ 50%] Building CXX object
lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocBase.cpp.o
[ 50%] Building CXX object
lib/Analysis/CMakeFiles/LLVMAnalysis.dir/PostDominators.cpp.o
/home/pipe/Documentos/git/llvm/lib/Support/regcomp.c:351:30: runtime error:
index 128 out of bounds for type 'cat_t [1]'
[ 50%] Building AMDGPUGenIntrinsicImpl.inc...
[ 50%] Building CXX object
lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocBasic.cpp.o
...
[ 50%] Building AMDGPUGenMCPseudoLowering.inc...
[ 50%] Building CXX object
lib/Analysis/CMakeFiles/LLVMAnalysis.dir/RegionPrinter.cpp.o
/home/pipe/Documentos/git/llvm/lib/Support/regcomp.c:351:30: runtime error:
index 128 out of bounds for type 'cat_t [1]'
[ 50%] Building HexagonGenMCCodeEmitter.inc...
[ 50%] Building CXX object
lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScalarEvolution.cpp.o
...
[ 54%] Building R600GenAsmWriter.inc...
[ 54%] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Trace.cpp.o
/home/pipe/Documentos/git/llvm/lib/Support/regcomp.c:351:30: runtime error:
index 128 out of bounds for type 'cat_t [1]'
[ 54%] Building CXX object
lib/Analysis/CMakeFiles/LLVMAnalysis.dir/TypeBasedAliasAnalysis.cpp.o
[ 54%] Building R600GenCallingConv.inc...
...
warning: SubRegIndex SystemZ::subreg_h64 and SystemZ::subreg_h32 compose
ambiguously as SystemZ::subreg_hh32 or SystemZ::subreg_h32
[ 54%] Building SystemZGenSubtargetInfo.inc...
/home/pipe/Documentos/git/llvm/lib/Support/regcomp.c:351:30: runtime error:
index 128 out of bounds for type 'cat_t [1]'
[ 54%] Building CXX object
lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegUsageInfoCollector.cpp.o
[ 54%] Building PPCGenMCCodeEmitter.inc...
...
[ 54%] Building CXX object
lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ValueLattice.cpp.o
[ 54%] Building R600GenMCCodeEmitter.inc...
/home/pipe/Documentos/git/llvm/lib/Support/regcomp.c:351:30: runtime error:
index 128 out of bounds for type 'cat_t [1]'
[ 54%] Building CXX object
lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ValueLatticeUtils.cpp.o
[ 54%] Building R600GenRegisterInfo.inc...
...
[ 55%] Updating R600GenSubtargetInfo.inc...
[ 55%] Built target AMDGPUCommonTableGen
/home/pipe/Documentos/git/llvm/lib/Support/regcomp.c:351:30: runtime error:
index 128 out of bounds for type 'cat_t [1]'
[ 55%] Updating PPCGenAsmMatcher.inc...
[ 55%] Updating PPCGenAsmWriter.inc...
...
[ 67%] Updating X86GenRegisterBank.inc...
[ 67%] Updating X86GenRegisterInfo.inc...
/home/pipe/Documentos/git/llvm/lib/Support/regcomp.c:351:30: runtime error:
index 128 out of bounds for type 'cat_t [1]'
[ 67%] Updating X86GenSubtargetInfo.inc...
/home/pipe/Documentos/git/llvm/lib/Support/regcomp.c:351:30: runtime error:
index 128 out of bounds for type 'cat_t [1]'
[ 67%] Updating X86GenInstrInfo.inc...
[ 67%] Built target X86CommonTableGen

more and more and more....

Bye.
Quuxplusone commented 6 years ago

At first glance I don't think this indicates an actual bug; the regular expression library is taken from OpenBSD, and flexible array members were often written using "[1]" in old code. But patch welcome, I guess.

In general I would expect that -fsanitize=bounds-strict will find few, if any, real bugs.