Skip to content

3c does not rewrite vector types correctly #381

Open
@Machiry

Description

@Machiry

Steps:

git clone [email protected]:randy408/libspng.git libspng

./3c -alltypes -dump-intermediate -extra-arg-before=-DSPNG_STATIC -base-dir="<path_to_repo>/libspng" <path_to_repo>/libspng/spng.c --

Error:

clang/lib/3C/ConstraintResolver.cpp:586: CSetBkeyPair ConstraintResolver::getExprConstraintVars(clang::Expr*): Assertion `"InitlistExpr of type other than array or pointer in " "getExprConstraintVars" && ILE->getType()->isPointerType()' failed.
 #0 0x000055a6094530eb llvm::sys::PrintStackTrace(llvm::raw_ostream&) /home/r3x/griller/3c/checkedc-clang/llvm/lib/Support/Unix/Signals.inc:533:0
 #1 0x000055a60945317e PrintStackTraceSignalHandler(void*) /home/r3x/griller/3c/checkedc-clang/llvm/lib/Support/Unix/Signals.inc:594:0
 #2 0x000055a609451058 llvm::sys::RunSignalHandlers() /home/r3x/griller/3c/checkedc-clang/llvm/lib/Support/Signals.cpp:68:0
 #3 0x000055a609452aa2 SignalHandler(int) /home/r3x/griller/3c/checkedc-clang/llvm/lib/Support/Unix/Signals.inc:385:0
 #4 0x00007f8beb509980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #5 0x00007f8bea3befb7 raise /build/glibc-S9d2JN/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #6 0x00007f8bea3c0921 abort /build/glibc-S9d2JN/glibc-2.27/stdlib/abort.c:81:0

The target function _mm_setzero_si64 is: in: cmake-build-debug/lib/clang/9.0.0/include/mmintrin.h

static __inline__ __m64 __DEFAULT_FN_ATTRS
_mm_setzero_si64(void)
{
    return __extension__ (__m64){ 0LL };
}

The function is returning vector type but we do not handle vector types (which should be handled in the same way as record types).

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingpriority:2Medium priority

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions