Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Files for compil Simgrid with cmake and make a distrib with cpack.
authornavarrop <navarrop@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Wed, 13 Jan 2010 16:36:00 +0000 (16:36 +0000)
committernavarrop <navarrop@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Wed, 13 Jan 2010 16:36:00 +0000 (16:36 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@7004 48e7efb5-ca39-0410-a469-dd3cf9ba447f

14 files changed:
buildtools/CPACK/CMakeCompleteInFiles.txt [new file with mode: 0644]
buildtools/CPACK/CMakeDefinePackages.txt [moved from buildtools/CMakeLists.txt with 79% similarity]
buildtools/CPACK/CMakeLists.txt [new file with mode: 0644]
buildtools/CPACK/tmp/prog_getline.c [new file with mode: 0644]
buildtools/CPACK/tmp/prog_gtnets.c [new file with mode: 0644]
buildtools/CPACK/tmp/prog_mutex_timedlock.c [new file with mode: 0644]
buildtools/CPACK/tmp/prog_printf_null.c [new file with mode: 0644]
buildtools/CPACK/tmp/prog_sem_init.c [new file with mode: 0644]
buildtools/CPACK/tmp/prog_sem_timedwait.c [new file with mode: 0644]
buildtools/CPACK/tmp/prog_snprintf.c [new file with mode: 0644]
buildtools/CPACK/tmp/prog_stacksetup.c [new file with mode: 0644]
buildtools/CPACK/tmp/prog_stacksetup.c.128r.expand [new file with mode: 0644]
buildtools/CPACK/tmp/prog_va_copy_test.c [new file with mode: 0644]
buildtools/CPACK/tmp/prog_vsnprintf.c [new file with mode: 0644]

diff --git a/buildtools/CPACK/CMakeCompleteInFiles.txt b/buildtools/CPACK/CMakeCompleteInFiles.txt
new file mode 100644 (file)
index 0000000..cc3dde6
--- /dev/null
@@ -0,0 +1,268 @@
+cmake_minimum_required(VERSION 2.6)
+include(CheckFunctionExists)
+include(CheckIncludeFile)
+include(CheckIncludeFiles)
+include(CheckLibraryExists)
+
+
+###############
+## SVN version check
+##
+if(IS_DIRECTORY ${PROJECT_DIRECTORY}/.svn)
+       find_file(SVN ".svn" ${PROJECT_DIRECTORY})
+       exec_program("svnversion" OUTPUT_VARIABLE "SVN_VERSION")
+       message("SVN_VERSION ${SVN_VERSION}")
+endif(IS_DIRECTORY ${PROJECT_DIRECTORY}/.svn)
+
+if(IS_DIRECTORY ${PROJECT_DIRECTORY}/.git)
+       find_file(GIT ".git" ${PROJECT_DIRECTORY})
+       exec_program("git log --oneline -1 | sed 's| .*||'" OUTPUT_VARIABLE "GIT_VERSION")
+       message("GIT_VERSION ${GIT_VERSION}")
+endif(IS_DIRECTORY ${PROJECT_DIRECTORY}/.git)
+
+#--------------------------------------------------------------------------------------------------
+### Initialize of CONTEXT JAVA
+if(${disable_java})
+       SET(HAVE_JAVA 0)
+else(${disable_java})
+       include(FindJava)
+       include(FindJNI)
+       find_path(JAR   NAMES jar       PATHS NO_DEFAULT_PATHS  )       
+       if(JAVA_RUNTIME AND JAVA_COMPILE AND JAR AND JAVA_INCLUDE_PATH)
+               SET(HAVE_JAVA 1)
+       else(JAVA_RUNTIME AND JAVA_COMPILE AND JAR AND JAVA_INCLUDE_PATH) 
+               SET(HAVE_JAVA 0)
+       endif(JAVA_RUNTIME AND JAVA_COMPILE AND JAR AND JAVA_INCLUDE_PATH)
+endif(${disable_java})
+message("HAVE_JAVA ${HAVE_JAVA}")
+
+#--------------------------------------------------------------------------------------------------
+### Initialize of CONTEXT GTNETS
+if(${disable_gtnets})
+       SET(HAVE_GTNETS 0)
+else(${disable_gtnets})
+       set(GTNETS_LDFLAGS "-lgtnets -L${gtnets_path}/lib")
+       set(GTNETS_CPPFLAGS "-I${gtnets_path}/include -I${gtnets_path}/include/gtnets")
+       try_compile(COMPILE_GTNETS_VAR
+               ${PROJECT_DIRECTORY}
+               ${PROJECT_DIRECTORY}/src/tmp/prog_gtnets.c
+               CMAKE_FLAGS ${GTNETS_CPPFLAGS}
+               COMPILE_DEFINITIONS ${GTNETS_LDFLAGS}
+               OUTPUT_VARIABLE GETLINE_OUTPUT
+       )
+       if(COMPILE_GTNETS_VAR MATCHES "FALSE")
+               SET(HAVE_GTNETS 0)
+       else(COMPILE_GTNETS_VAR MATCHES "FALSE")
+               SET(HAVE_GTNETS 1)
+               set(INCLUDES
+                       ${INCLUDES}
+                       ${GTNETS_CPPFLAGS}
+               )
+               add_definitions(${GTNETS_LDFLAGS})
+       endif(COMPILE_GTNETS_VAR MATCHES "FALSE")
+endif(${disable_gtnets})
+message("HAVE_GTNETS ${HAVE_GTNETS}")
+
+###################################
+## SimGrid and GRAS specific checks
+##
+
+CHECK_INCLUDE_FILE(pthread.h HAVE_PTHREAD_H)
+CHECK_LIBRARY_EXISTS(pthread pthread_create NO_DEFAULT_PATHS HAVE_pthread_create)
+
+if(HAVE_pthread_create)
+       ### HAVE_SEM_INIT
+       CHECK_LIBRARY_EXISTS(pthread sem_init NO_DEFAULT_PATHS HAVE_SEM_INIT_LIB)
+       if(HAVE_SEM_INIT_LIB)
+               try_compile(HAVE_SEM_INIT_run
+               ${PROJECT_DIRECTORY}
+               ${PROJECT_DIRECTORY}/src/tmp/prog_sem_init.c
+               )
+               if(HAVE_SEM_INIT_run)
+                       set(HAVE_SEM_INIT 1)
+                       message("HAVE_SEM_INIT ${HAVE_SEM_INIT}")
+               endif(HAVE_SEM_INIT_run)
+       endif(HAVE_SEM_INIT_LIB)
+
+       ### HAVE_SEM_TIMEDWAIT
+       CHECK_LIBRARY_EXISTS(pthread sem_timedwait NO_DEFAULT_PATHS HAVE_SEM_TIMEDWAIT_LIB)
+       if(HAVE_SEM_TIMEDWAIT_LIB)
+               try_compile(HAVE_SEM_TIMEDWAIT_run
+               ${PROJECT_DIRECTORY}
+               ${PROJECT_DIRECTORY}/src/tmp/prog_sem_timedwait.c
+               )
+               if(HAVE_SEM_TIMEDWAIT_run)
+                       set(HAVE_SEM_TIMEDWAIT 1)
+                       message("HAVE_SEM_TIMEDWAIT ${HAVE_SEM_TIMEDWAIT}")
+               endif(HAVE_SEM_TIMEDWAIT_run)
+       endif(HAVE_SEM_TIMEDWAIT_LIB)
+
+       ### HAVE_MUTEX_TIMEDLOCK
+       CHECK_LIBRARY_EXISTS(pthread pthread_mutex_timedlock NO_DEFAULT_PATHS HAVE_MUTEX_TIMEDLOCK_LIB)
+       if(HAVE_MUTEX_TIMEDLOCK_LIB)
+               try_compile(HAVE_MUTEX_TIMEDLOCK_run
+               ${PROJECT_DIRECTORY}
+               ${PROJECT_DIRECTORY}/src/tmp/prog_mutex_timedlock.c
+               )
+               if(HAVE_MUTEX_TIMEDLOCK_run)
+                       set(HAVE_MUTEX_TIMEDLOCK 1)
+                       message("HAVE_MUTEX_TIMEDLOCK ${HAVE_MUTEX_TIMEDLOCK}")
+               endif(HAVE_MUTEX_TIMEDLOCK_run)
+       endif(HAVE_MUTEX_TIMEDLOCK_LIB)
+
+endif(HAVE_pthread_create)
+
+#--------------------------------------------------------------------------------------------------
+### Initialize of CONTEXT THREADS
+if(${disable_context_threads})
+       SET(CONTEXT_THREADS 0)
+else(${disable_context_threads})
+       SET(CONTEXT_THREADS 1)
+endif(${disable_context_threads})
+message("CONTEXT_THREADS ${CONTEXT_THREADS}")
+
+CHECK_FUNCTION_EXISTS(makecontext HAVE_FCT_makecontext)
+message("HAVE_FCT_makecontext ${HAVE_FCT_makecontext}")
+
+if(HAVE_FCT_makecontext)
+
+       set(makecontext_CPPFLAGS "-DTEST_makecontext")
+       try_run(RUN_makecontext_VAR COMPILE_makecontext_VAR
+               ${PROJECT_DIRECTORY}
+               ${PROJECT_DIRECTORY}/src/tmp/prog_stacksetup.c
+               COMPILE_DEFINITIONS ${makecontext_CPPFLAGS}
+               )
+       find_program(CAT_EXE NAMES cat)
+       exec_program("${CAT_EXE}" ARGS "${PROJECT_SOURCE_DIRECTORY}/conftestval" OUTPUT_VARIABLE "ac_cv_stacksetup_makecontext")
+
+       if(COMPILE_makecontext_VAR)
+               set(makecontext_type "ok")
+       elseif(COMPILE_makecontext_VAR)
+               set(makecontext_type "guessed")
+       endif(COMPILE_makecontext_VAR)
+
+       find_program(SED_EXE NAMES sed)
+       exec_program("${SED_EXE}" ARGS "-e 's;,.*$;;' ${PROJECT_SOURCE_DIRECTORY}/conftestval" OUTPUT_VARIABLE "makecontext_addr")
+       exec_program("${SED_EXE}" ARGS "-e 's;^.*,;;' ${PROJECT_SOURCE_DIRECTORY}/conftestval" OUTPUT_VARIABLE "makecontext_size")
+
+       set(pth_skaddr_makecontext "#define pth_skaddr_makecontext(skaddr,sksize) (${makecontext_addr})")
+       set(pth_sksize_makecontext "#define pth_sksize_makecontext(skaddr,sksize) (${makecontext_size})")
+
+endif(HAVE_FCT_makecontext)
+
+configure_file(${PROJECT_DIRECTORY}/src/context_sysv_config.h.in ${PROJECT_DIRECTORY}/src/context_sysv_config.h)
+
+#--------------------------------------------------------------------------------------------------
+
+###############
+## System checks
+##
+
+#SG_CONFIGURE_PART([System checks...])
+#AC_PROG_CC(xlC gcc cc) -auto
+#AM_SANITY_CHECK -auto
+
+#AC_PROG_MAKE_SET
+find_program(SET_MAKE NAMES make)
+
+#AC_PRINTF_NULL
+try_run(RUN_PRINTF_NULL_VAR COMPILE_PRINTF_NULL_VAR
+       ${PROJECT_DIRECTORY}
+       ${PROJECT_DIRECTORY}/src/tmp/prog_printf_null.c
+       )
+
+if(RUN_PRINTF_NULL_VAR MATCHES "FAILED_TO_RUN")
+SET(PRINTF_NULL_WORKING "0")
+else(RUN_PRINTF_NULL_VAR MATCHES "FAILED_TO_RUN")
+SET(PRINTF_NULL_WORKING "1")
+endif(RUN_PRINTF_NULL_VAR MATCHES "FAILED_TO_RUN")
+message("PRINTF_NULL_WORKING ${PRINTF_NULL_WORKING}")
+
+#AC_CHECK_VA_COPY
+
+# Checks for header files.
+
+CHECK_INCLUDE_FILES("stdlib.h;stdarg.h;string.h;float.h" STDC_HEADERS)
+CHECK_INCLUDE_FILES("time.h;sys/time.h" TIME_WITH_SYS_TIME)
+
+message("STDC_HEADERS ${STDC_HEADERS}")
+message("TIME_WITH_SYS_TIME ${TIME_WITH_SYS_TIME}")
+
+CHECK_INCLUDE_FILE(sys/socket.h HAVE_SOCKET_H)
+CHECK_INCLUDE_FILE(sys/stat.h HAVE_STAT_H)
+CHECK_INCLUDE_FILE(windows.h HAVE_WINDOWS_H)
+CHECK_INCLUDE_FILE(winsock.h HAVE_WINSOCK_H)
+CHECK_INCLUDE_FILE(winsock2.h HAVE_WINSOCK2_H)
+CHECK_INCLUDE_FILE(sys/time.h HAVE_TIME_H)
+CHECK_INCLUDE_FILE(errno.h HAVE_ERRNO_H)
+CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H)
+CHECK_INCLUDE_FILE(execinfo.h HAVE_EXECINFO_H)
+CHECK_INCLUDE_FILE(signal.h HAVE_SIGNAL_H)
+
+CHECK_FUNCTION_EXISTS(gettimeofday HAVE_gettimeofday)
+CHECK_FUNCTION_EXISTS(usleep HAVE_usleep)
+CHECK_FUNCTION_EXISTS(getdtablesize HAVE_getdtablesize)
+CHECK_FUNCTION_EXISTS(sysconf HAVE_sysconf)
+CHECK_FUNCTION_EXISTS(readv HAVE_readv)
+CHECK_FUNCTION_EXISTS(popen HAVE_popen)
+CHECK_FUNCTION_EXISTS(signal HAVE_signal)
+
+#--------------------------------------------------------------------------------------------------
+### Try execut getline command
+try_run(RUN_RESULT_VAR COMPILE_RESULT_VAR
+       ${PROJECT_DIRECTORY}
+       ${PROJECT_DIRECTORY}/src/tmp/prog_getline.c
+       OUTPUT_VARIABLE GETLINE_OUTPUT
+       )
+
+if(RUN_RESULT_VAR MATCHES "FAILED_TO_RUN")
+SET(need_getline "")
+else(RUN_RESULT_VAR MATCHES "FAILED_TO_RUN")
+SET(need_getline "#define SIMGRID_NEED_GETLINE 1")
+endif(RUN_RESULT_VAR MATCHES "FAILED_TO_RUN")
+
+### check for a working snprintf
+CHECK_FUNCTION_EXISTS(snprintf SNPRINTF_FUNC)
+CHECK_FUNCTION_EXISTS(vsnprintf VSNPRINTF_FUNC)
+if(SNPRINTF_FUNC AND VSNPRINTF_FUNC)
+
+       try_run(RUN_SNPRINTF_FUNC_VAR COMPILE_SNPRINTF_FUNC_VAR
+               ${PROJECT_DIRECTORY}
+               ${PROJECT_DIRECTORY}/src/tmp/prog_snprintf.c
+               )
+       if(CMAKE_CROSSCOMPILING)
+               message("SNPRINTF_FUNC CROSSCOMPILING")
+               set(RUN_SNPRINTF_FUNC "cross") 
+       endif(CMAKE_CROSSCOMPILING)
+
+       try_run(RUN_VSNPRINTF_FUNC_VAR COMPILE_VSNPRINTF_FUNC_VAR
+               ${PROJECT_DIRECTORY}
+               ${PROJECT_DIRECTORY}/src/tmp/prog_vsnprintf.c
+               )
+       if(CMAKE_CROSSCOMPILING)
+               message("VSNPRINTF_FUNC CROSSCOMPILING")
+               set(RUN_VSNPRINTF_FUNC "cross")
+       endif(CMAKE_CROSSCOMPILING)
+       
+       if(RUN_VSNPRINTF_FUNC_VAR MATCHES "FAILED_TO_RUN" AND RUN_SNPRINTF_FUNC_VAR MATCHES "FAILED_TO_RUN")
+       else(RUN_VSNPRINTF_FUNC_VAR MATCHES "FAILED_TO_RUN" AND RUN_SNPRINTF_FUNC_VAR MATCHES "FAILED_TO_RUN")
+               set(PREFER_PORTABLE_SNPRINTF 1)
+               message("PREFER_PORTABLE_SNPRINTF ${PREFER_PORTABLE_SNPRINTF}")
+       endif(RUN_VSNPRINTF_FUNC_VAR MATCHES "FAILED_TO_RUN" AND RUN_SNPRINTF_FUNC_VAR MATCHES "FAILED_TO_RUN")
+endif(SNPRINTF_FUNC AND VSNPRINTF_FUNC)
+
+### check for asprintf function familly
+CHECK_FUNCTION_EXISTS(asprintf ASPRINTF_FUNC)
+if(ASPRINTF_FUNC)
+       SET(need_asprintf "")
+else(ASPRINTF_FUNC)
+       SET(need_asprintf "#define SIMGRID_NEED_ASPRINTF 1")
+endif(ASPRINTF_FUNC)
+CHECK_FUNCTION_EXISTS(vasprintf VASPRINTF_FUNC)
+if(VASPRINTF_FUNC)
+       SET(need_vasprintf "")
+else(VASPRINTF_FUNC)
+       SET(need_vasprintf "#define SIMGRID_NEED_VASPRINTF 1")
+endif(VASPRINTF_FUNC)
+
+configure_file(${PROJECT_DIRECTORY}/include/simgrid_config.h.in ${PROJECT_DIRECTORY}/include/simgrid_config.h)
similarity index 79%
rename from buildtools/CMakeLists.txt
rename to buildtools/CPACK/CMakeDefinePackages.txt
index b13d496..42e3215 100644 (file)
@@ -1,52 +1,5 @@
-cmake_minimum_required(VERSION 2.6)
-SET(PROJECT_NAME "Simgrid_test")
-
-### need to set
-SET(disable_java 0)
-SET(disable_gtnets 1)
-SET(disable_context_threads 1)
-
-### Set some variables
-SET(LANGUAGE "Cxx")
-SET(PROJECT_DIRECTORY "/home/navarrop/Bureau/simgrid-trunk")
-SET(PROJECT_SOURCE_DIRECTORY "${PROJECT_DIRECTORY}/src")
-set(EXECUTABLE_OUTPUT_PATH "${PROJECT_DIRECTORY}/bin")
-set(LIBRARY_OUTPUT_PATH "${PROJECT_DIRECTORY}/lib")
-set(INCLUDES "-I${PROJECT_DIRECTORY}/include -I${PROJECT_DIRECTORY}/src/include -I${PROJECT_DIRECTORY}/src")
-
-### Initialize of CONTEXT
-if(${disable_java})
-       SET(HAVE_JAVA 0)
-else(${disable_java})
-       include(FindJava)
-       include(FindJNI)
-       find_path(JAR   NAMES jar       PATHS NO_DEFAULT_PATHS  )       
-       if(JAVA_RUNTIME AND JAVA_COMPILE AND JAR AND JAVA_INCLUDE_PATH)
-               SET(HAVE_JAVA 1)
-       else(JAVA_RUNTIME AND JAVA_COMPILE AND JAR AND JAVA_INCLUDE_PATH) 
-               SET(HAVE_JAVA 0)
-       endif(JAVA_RUNTIME AND JAVA_COMPILE AND JAR AND JAVA_INCLUDE_PATH)
-endif(${disable_java})
-
-if(${disable_gtnets})
-       SET(HAVE_GTNETS 0)
-else(${disable_gtnets})
-       SET(HAVE_GTNETS 1)
-       #AJOUT DES FLAGS GTNETS
-endif(${disable_gtnets})
-
-if(${disable_context_threads})
-       SET(CONTEXT_THREADS 0)
-else(${disable_context_threads})
-       SET(CONTEXT_THREADS 1)
-endif(${disable_context_threads})
-
-message("HAVE_JAVA ${HAVE_JAVA}")
-message("HAVE_GTNETS ${HAVE_GTNETS}")
-message("CONTEXT_THREADS ${CONTEXT_THREADS}")
-
-
 ### define source packages
+
 set(EXTRA_DIST 
        portable.h
        xbt/mallocator_private.h
@@ -399,27 +352,3 @@ else(${HAVE_JAVA})
                ${MSG_SRC}
        )
 endif(${HAVE_JAVA})
-
-#message("\n\n")
-#message("simgrid_sources\n>>${simgrid_sources}<<")
-#message("\n\n")
-#message("gras_sources\n>>${gras_sources}<<")
-#message("\n\n")
-#message("surf_sources\n>>${SURF_SRC}<<")
-#message("\n\n")
-#message("EXTRA_DIST\n>>${EXTRA_DIST}<<")
-#message("\n\n")
-
-add_definitions("${INCLUDES}")
-
-add_library(simgrid SHARED ${simgrid_sources})
-add_library(gras SHARED ${gras_sources})
-
-
-
-
-
-
-
-
-
diff --git a/buildtools/CPACK/CMakeLists.txt b/buildtools/CPACK/CMakeLists.txt
new file mode 100644 (file)
index 0000000..6638401
--- /dev/null
@@ -0,0 +1,46 @@
+cmake_minimum_required(VERSION 2.6)
+
+#--------------------------------------------------------------------------------------------------
+### need to set TODO make it by arguments
+SET(disable_java 0)
+SET(disable_gtnets 0)
+SET(gtnets_path "")
+SET(disable_context_threads 1)
+
+### Set some variables for Cmake
+SET(PROJECT_NAME "Simgrid_cmake")
+SET(LANGUAGE "Cxx")
+SET(PROJECT_DIRECTORY "/home/navarrop/Bureau/simgrid-trunk")
+SET(PROJECT_SOURCE_DIRECTORY "${PROJECT_DIRECTORY}/src")
+set(EXECUTABLE_OUTPUT_PATH "${PROJECT_DIRECTORY}/bin")
+set(LIBRARY_OUTPUT_PATH "${PROJECT_DIRECTORY}/lib")
+set(INCLUDES "-I${PROJECT_DIRECTORY}/include -I${PROJECT_DIRECTORY}/src/include -I${PROJECT_DIRECTORY}/src")
+
+### Make the *.h files with *.h.in files
+include(${PROJECT_DIRECTORY}/src/CMakeCompleteInFiles.txt OPTIONAL NO_POLICY_SCOPE)
+
+### Define source packages for Libs 
+include(${PROJECT_DIRECTORY}/src/CMakeDefinePackages.txt OPTIONAL NO_POLICY_SCOPE)
+
+### Make Libs
+add_definitions("${INCLUDES}")
+
+add_library(simgrid SHARED ${simgrid_sources})
+add_library(gras SHARED ${gras_sources})
+
+### Make the distrib
+install(TARGETS simgrid        DESTINATION "simgrid/lib/")
+install(TARGETS gras   DESTINATION "simgrid/lib/")
+install(FILES ${simgrid_sources} DESTINATION "simgrid/src/simgrid")
+install(FILES ${gras_sources} DESTINATION "simgrid/src/gras")
+install(FILES ${EXTRA_DIST} DESTINATION "simgrid/src/ExtraDist")
+install(DIRECTORY "${PROJECT_DIRECTORY}/include/" 
+       DESTINATION "simgrid/include/"
+       )
+
+set(CPACK_PROJECT_NAME "${PROJECT_NAME}")
+set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}")
+set(CPACK_GENERATOR "TGZ;TZ;ZIP")
+include(CPack)
+
+
diff --git a/buildtools/CPACK/tmp/prog_getline.c b/buildtools/CPACK/tmp/prog_getline.c
new file mode 100644 (file)
index 0000000..000ee7f
--- /dev/null
@@ -0,0 +1,8 @@
+    #define _GNU_SOURCE
+    #include <stdio.h>
+    int main(void){
+      FILE * fp;
+      char * line = NULL;
+      size_t len = 0;
+      getline(&line, &len, fp);
+    }
diff --git a/buildtools/CPACK/tmp/prog_gtnets.c b/buildtools/CPACK/tmp/prog_gtnets.c
new file mode 100644 (file)
index 0000000..eb9685c
--- /dev/null
@@ -0,0 +1,3 @@
+#include <simulator.h>
+Simulator s;
+s.RunUntilNextCompletion();
diff --git a/buildtools/CPACK/tmp/prog_mutex_timedlock.c b/buildtools/CPACK/tmp/prog_mutex_timedlock.c
new file mode 100644 (file)
index 0000000..617cda0
--- /dev/null
@@ -0,0 +1,4 @@
+#include <pthread.h>
+pthread_mutex_t s;
+const struct timespec t;
+sem_timedlock(&s, &t);
diff --git a/buildtools/CPACK/tmp/prog_printf_null.c b/buildtools/CPACK/tmp/prog_printf_null.c
new file mode 100644 (file)
index 0000000..da2595a
--- /dev/null
@@ -0,0 +1,2 @@
+#include <stdio.h>
+printf("%s",NULL);
diff --git a/buildtools/CPACK/tmp/prog_sem_init.c b/buildtools/CPACK/tmp/prog_sem_init.c
new file mode 100644 (file)
index 0000000..0c6bc03
--- /dev/null
@@ -0,0 +1,3 @@
+#include <semaphore.h>
+sem_t s;
+sem_init(&s);
diff --git a/buildtools/CPACK/tmp/prog_sem_timedwait.c b/buildtools/CPACK/tmp/prog_sem_timedwait.c
new file mode 100644 (file)
index 0000000..88d2e7a
--- /dev/null
@@ -0,0 +1,4 @@
+#include <semaphore.h>
+sem_t *s;
+const struct timespec * t;
+sem_timedwait(s, t);
diff --git a/buildtools/CPACK/tmp/prog_snprintf.c b/buildtools/CPACK/tmp/prog_snprintf.c
new file mode 100644 (file)
index 0000000..f24eb7c
--- /dev/null
@@ -0,0 +1,15 @@
+#include <stdio.h>
+
+int main(void)
+{
+    char bufs[5] = { 'x', 'x', 'x', '\0', '\0' };
+    char bufd[5] = { 'x', 'x', 'x', '\0', '\0' };
+    int i;
+    i = snprintf (bufs, 2, "%s", "111");
+    if (strcmp (bufs, "1")) exit (1);
+    if (i != 3) exit (1);
+    i = snprintf (bufd, 2, "%d", 111);
+    if (strcmp (bufd, "1")) exit (1);
+    if (i != 3) exit (1);
+    exit(0);
+}
diff --git a/buildtools/CPACK/tmp/prog_stacksetup.c b/buildtools/CPACK/tmp/prog_stacksetup.c
new file mode 100644 (file)
index 0000000..bb6861f
--- /dev/null
@@ -0,0 +1,130 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#if defined(TEST_sigstack) || defined(TEST_sigaltstack)
+#include <sys/types.h>
+#include <signal.h>
+#include <unistd.h>
+#endif
+#if defined(TEST_makecontext)
+#include <ucontext.h>
+#endif
+union alltypes {
+    long   l;
+    double d;
+    void  *vp;
+    void (*fp)(void);
+    char  *cp;
+};
+static volatile char *handler_addr = (char *)0xDEAD;
+#if defined(TEST_sigstack) || defined(TEST_sigaltstack)
+static volatile int handler_done = 0;
+void handler(int sig)
+{
+    char garbage[1024];
+    int i;
+    auto int dummy;
+    for (i = 0; i < 1024; i++)
+        garbage[i] = 'X';
+    handler_addr = (char *)&dummy;
+    handler_done = 1;
+    return;
+}
+#endif
+#if defined(TEST_makecontext)
+static ucontext_t uc_handler;
+static ucontext_t uc_main;
+void handler(void)
+{
+    char garbage[1024];
+    int i;
+    auto int dummy;
+    for (i = 0; i < 1024; i++)
+        garbage[i] = 'X';
+    handler_addr = (char *)&dummy;
+    swapcontext(&uc_handler, &uc_main);
+    return;
+}
+#endif
+int main(int argc, char *argv[])
+{
+    FILE *f;
+    char *skaddr;
+    char *skbuf;
+    int sksize;
+    char result[1024];
+    int i;
+    sksize = 32768;
+    skbuf = (char *)malloc(sksize*2+2*sizeof(union alltypes));
+    if (skbuf == NULL)
+        exit(1);
+    for (i = 0; i < sksize*2+2*sizeof(union alltypes); i++)
+        skbuf[i] = 'A';
+    skaddr = skbuf+sizeof(union alltypes);
+#if defined(TEST_sigstack) || defined(TEST_sigaltstack)
+    {
+        struct sigaction sa;
+#if defined(TEST_sigstack)
+        struct sigstack ss;
+#elif defined(TEST_sigaltstack) && defined(HAVE_STACK_T)
+        stack_t ss;
+#else
+        struct sigaltstack ss;
+#endif
+#if defined(TEST_sigstack)
+        ss.ss_sp      = (void *)(skaddr + sksize);
+        ss.ss_onstack = 0;
+        if (sigstack(&ss, NULL) < 0)
+            exit(1);
+#elif defined(TEST_sigaltstack)
+        ss.ss_sp    = (void *)(skaddr + sksize);
+        ss.ss_size  = sksize;
+        ss.ss_flags = 0;
+        if (sigaltstack(&ss, NULL) < 0)
+            exit(1);
+#endif
+        memset((void *)&sa, 0, sizeof(struct sigaction));
+        sa.sa_handler = handler;
+        sa.sa_flags = SA_ONSTACK;
+        sigemptyset(&sa.sa_mask);
+        sigaction(SIGUSR1, &sa, NULL);
+        kill(getpid(), SIGUSR1);
+        while (!handler_done)
+            /*nop*/;
+    }
+#endif
+#if defined(TEST_makecontext)
+    {
+        if (getcontext(&uc_handler) != 0)
+            exit(1);
+        uc_handler.uc_link = NULL;
+        uc_handler.uc_stack.ss_sp    = (void *)(skaddr + sksize);
+        uc_handler.uc_stack.ss_size  = sksize;
+        uc_handler.uc_stack.ss_flags = 0;
+        makecontext(&uc_handler, handler, 0);
+        swapcontext(&uc_main, &uc_handler);
+    }
+#endif
+    if (handler_addr == (char *)0xDEAD)
+        exit(1);
+    if (handler_addr < skaddr+sksize) {
+        /* stack was placed into lower area */
+        if (*(skaddr+sksize) != 'A')
+             sprintf(result, "(skaddr)+(sksize)-%d,(sksize)-%d",
+                     sizeof(union alltypes), sizeof(union alltypes));
+        else
+             strcpy(result, "(skaddr)+(sksize),(sksize)");
+    }
+    else {
+        /* stack was placed into higher area */
+        if (*(skaddr+sksize*2) != 'A')
+            sprintf(result, "(skaddr),(sksize)-%d", sizeof(union alltypes));
+        else
+            strcpy(result, "(skaddr),(sksize)");
+    }
+    if ((f = fopen("conftestval", "w")) == NULL)
+        exit(1);
+    fprintf(f, "%s\n", result);
+    fclose(f);
+    exit(0);
+}
diff --git a/buildtools/CPACK/tmp/prog_stacksetup.c.128r.expand b/buildtools/CPACK/tmp/prog_stacksetup.c.128r.expand
new file mode 100644 (file)
index 0000000..7108d29
--- /dev/null
@@ -0,0 +1,1533 @@
+
+;; Function main (main)
+
+Partition 1: size 4 align 4
+       sksize, offset 0
+Partition 0: size 4 align 4
+       i, offset 0
+Partition 4: size 8 align 8
+       f, offset 0
+Partition 3: size 8 align 8
+       skaddr, offset 0
+Partition 2: size 8 align 8
+       skbuf, offset 0
+Partition 5: size 1024 align 16
+       result, offset 0
+
+;; Generating RTL for gimple basic block 2
+
+;; sksize = 32768;
+
+(insn 8 7 0 prog_stacksetup.c:57 (set (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1044 [0xfffffffffffffbec])) [0 sksize+0 S4 A32])
+        (const_int 32768 [0x8000])) -1 (nil))
+
+;; D.2704 = sksize * 2;
+
+(insn 9 8 10 prog_stacksetup.c:58 (set (reg:SI 89)
+        (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1044 [0xfffffffffffffbec])) [0 sksize+0 S4 A32])) -1 (nil))
+
+(insn 10 9 0 prog_stacksetup.c:58 (parallel [
+            (set (reg:SI 87 [ D.2704 ])
+                (ashift:SI (reg:SI 89)
+                    (const_int 1 [0x1])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (expr_list:REG_EQUAL (ashift:SI (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                    (const_int -1044 [0xfffffffffffffbec])) [0 sksize+0 S4 A32])
+            (const_int 1 [0x1]))
+        (nil)))
+
+;; D.2705 = (long unsigned int) D.2704;
+
+(insn 11 10 0 prog_stacksetup.c:58 (set (reg:DI 86 [ D.2705 ])
+        (sign_extend:DI (reg:SI 87 [ D.2704 ]))) -1 (nil))
+
+;; D.2706 = D.2705 + 16;
+
+(insn 12 11 0 prog_stacksetup.c:58 (parallel [
+            (set (reg:DI 85 [ D.2706 ])
+                (plus:DI (reg:DI 86 [ D.2705 ])
+                    (const_int 16 [0x10])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+
+;; D.2707 = malloc (D.2706);
+
+(insn 13 12 14 prog_stacksetup.c:58 (set (reg:DI 5 di)
+        (reg:DI 85 [ D.2706 ])) -1 (nil))
+
+(call_insn 14 13 15 prog_stacksetup.c:58 (set (reg:DI 0 ax)
+        (call (mem:QI (symbol_ref:DI ("malloc") [flags 0x41] <function_decl 0x7fd349126700 malloc>) [0 S1 A8])
+            (const_int 0 [0x0]))) -1 (expr_list:REG_EH_REGION (const_int 0 [0x0])
+        (nil))
+    (expr_list:REG_DEP_TRUE (use (reg:DI 5 di))
+        (nil)))
+
+(insn 15 14 16 prog_stacksetup.c:58 (set (reg/f:DI 90)
+        (reg:DI 0 ax)) -1 (expr_list:REG_NOALIAS (reg/f:DI 90)
+        (nil)))
+
+(insn 16 15 0 prog_stacksetup.c:58 (set (reg/f:DI 84 [ D.2707 ])
+        (reg/f:DI 90)) -1 (nil))
+
+;; skbuf = (char *) D.2707;
+
+(insn 17 16 0 prog_stacksetup.c:58 (set (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1072 [0xfffffffffffffbd0])) [0 skbuf+0 S8 A64])
+        (reg/f:DI 84 [ D.2707 ])) -1 (nil))
+
+;; if (skbuf == 0B)
+
+(insn 18 17 19 prog_stacksetup.c:59 (set (reg:CCZ 17 flags)
+        (compare:CCZ (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                    (const_int -1072 [0xfffffffffffffbd0])) [0 skbuf+0 S8 A64])
+            (const_int 0 [0x0]))) -1 (nil))
+
+(jump_insn 19 18 0 prog_stacksetup.c:59 (set (pc)
+        (if_then_else (ne (reg:CCZ 17 flags)
+                (const_int 0 [0x0]))
+            (label_ref 0)
+            (pc))) -1 (nil))
+
+;; Generating RTL for gimple basic block 3
+
+;; exit (1);
+
+(insn 21 20 22 prog_stacksetup.c:60 (set (reg:SI 5 di)
+        (const_int 1 [0x1])) -1 (nil))
+
+(call_insn 22 21 23 prog_stacksetup.c:60 (call (mem:QI (symbol_ref:DI ("exit") [flags 0x41] <function_decl 0x7fd34911ac00 exit>) [0 S1 A8])
+        (const_int 0 [0x0])) -1 (expr_list:REG_NORETURN (const_int 0 [0x0])
+        (expr_list:REG_EH_REGION (const_int 0 [0x0])
+            (nil)))
+    (expr_list:REG_DEP_TRUE (use (reg:SI 5 di))
+        (nil)))
+
+(barrier 23 22 0)
+
+;; Generating RTL for gimple basic block 4
+
+;; 
+
+(code_label 24 23 25 2 "" [0 uses])
+
+(note 25 24 0 NOTE_INSN_BASIC_BLOCK)
+
+;; i = 0;
+
+(insn 26 25 0 prog_stacksetup.c:61 (set (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1048 [0xfffffffffffffbe8])) [0 i+0 S4 A64])
+        (const_int 0 [0x0])) -1 (nil))
+
+;; Generating RTL for gimple basic block 5
+
+;; D.2710 = (long unsigned int) i;
+
+(insn 30 29 31 prog_stacksetup.c:62 (set (reg:SI 91)
+        (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1048 [0xfffffffffffffbe8])) [0 i+0 S4 A64])) -1 (nil))
+
+(insn 31 30 0 prog_stacksetup.c:62 (set (reg:DI 83 [ D.2710 ])
+        (sign_extend:DI (reg:SI 91))) -1 (nil))
+
+;; D.2711 = skbuf + D.2710;
+
+(insn 32 31 0 prog_stacksetup.c:62 (parallel [
+            (set (reg/f:DI 82 [ D.2711 ])
+                (plus:DI (reg:DI 83 [ D.2710 ])
+                    (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                            (const_int -1072 [0xfffffffffffffbd0])) [0 skbuf+0 S8 A64])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+
+;; *D.2711 ={v} 65;
+
+(insn 33 32 0 prog_stacksetup.c:62 (set (mem:QI (reg/f:DI 82 [ D.2711 ]) [0 S1 A8])
+        (const_int 65 [0x41])) -1 (nil))
+
+;; i = i + 1;
+
+(insn 34 33 0 prog_stacksetup.c:61 (parallel [
+            (set (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                        (const_int -1048 [0xfffffffffffffbe8])) [0 i+0 S4 A64])
+                (plus:SI (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                            (const_int -1048 [0xfffffffffffffbe8])) [0 i+0 S4 A64])
+                    (const_int 1 [0x1])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+
+;; Generating RTL for gimple basic block 6
+
+;; 
+
+(code_label 35 34 36 3 "" [0 uses])
+
+(note 36 35 0 NOTE_INSN_BASIC_BLOCK)
+
+;; D.2712 = (long unsigned int) i;
+
+(insn 37 36 38 prog_stacksetup.c:61 (set (reg:SI 92)
+        (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1048 [0xfffffffffffffbe8])) [0 i+0 S4 A64])) -1 (nil))
+
+(insn 38 37 0 prog_stacksetup.c:61 (set (reg:DI 81 [ D.2712 ])
+        (sign_extend:DI (reg:SI 92))) -1 (nil))
+
+;; D.2713 = sksize * 2;
+
+(insn 39 38 40 prog_stacksetup.c:61 (set (reg:SI 93)
+        (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1044 [0xfffffffffffffbec])) [0 sksize+0 S4 A32])) -1 (nil))
+
+(insn 40 39 0 prog_stacksetup.c:61 (parallel [
+            (set (reg:SI 80 [ D.2713 ])
+                (ashift:SI (reg:SI 93)
+                    (const_int 1 [0x1])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (expr_list:REG_EQUAL (ashift:SI (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                    (const_int -1044 [0xfffffffffffffbec])) [0 sksize+0 S4 A32])
+            (const_int 1 [0x1]))
+        (nil)))
+
+;; D.2714 = (long unsigned int) D.2713;
+
+(insn 41 40 0 prog_stacksetup.c:61 (set (reg:DI 79 [ D.2714 ])
+        (sign_extend:DI (reg:SI 80 [ D.2713 ]))) -1 (nil))
+
+;; D.2715 = D.2714 + 16;
+
+(insn 42 41 0 prog_stacksetup.c:61 (parallel [
+            (set (reg:DI 78 [ D.2715 ])
+                (plus:DI (reg:DI 79 [ D.2714 ])
+                    (const_int 16 [0x10])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+
+;; if (D.2712 < D.2715)
+
+(insn 44 42 45 prog_stacksetup.c:61 (set (reg:CC 17 flags)
+        (compare:CC (reg:DI 81 [ D.2712 ])
+            (reg:DI 78 [ D.2715 ]))) -1 (nil))
+
+(jump_insn 45 44 0 prog_stacksetup.c:61 (set (pc)
+        (if_then_else (ltu (reg:CC 17 flags)
+                (const_int 0 [0x0]))
+            (label_ref 43)
+            (pc))) -1 (nil))
+
+;; Generating RTL for gimple basic block 7
+
+;; skaddr = skbuf + 8;
+
+(insn 47 46 48 prog_stacksetup.c:63 (set (reg/f:DI 95)
+        (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1072 [0xfffffffffffffbd0])) [0 skbuf+0 S8 A64])) -1 (nil))
+
+(insn 48 47 49 prog_stacksetup.c:63 (parallel [
+            (set (reg:DI 94)
+                (plus:DI (reg/f:DI 95)
+                    (const_int 8 [0x8])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+
+(insn 49 48 0 prog_stacksetup.c:63 (set (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1064 [0xfffffffffffffbd8])) [0 skaddr+0 S8 A64])
+        (reg:DI 94)) -1 (expr_list:REG_EQUAL (plus:DI (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                    (const_int -1072 [0xfffffffffffffbd0])) [0 skbuf+0 S8 A64])
+            (const_int 8 [0x8]))
+        (nil)))
+
+;; handler_addr.0 = handler_addr;
+
+(insn 50 49 0 prog_stacksetup.c:108 (set (reg/f:DI 77 [ handler_addr.0 ])
+        (mem/f/c/i:DI (symbol_ref:DI ("handler_addr") [flags 0x2] <var_decl 0x7fd348575b40 handler_addr>) [0 handler_addr+0 S8 A64])) -1 (nil))
+
+;; if (handler_addr.0 == 57005B)
+
+(insn 51 50 52 prog_stacksetup.c:108 (set (reg:CCZ 17 flags)
+        (compare:CCZ (reg/f:DI 77 [ handler_addr.0 ])
+            (const_int 57005 [0xdead]))) -1 (nil))
+
+(jump_insn 52 51 0 prog_stacksetup.c:108 (set (pc)
+        (if_then_else (ne (reg:CCZ 17 flags)
+                (const_int 0 [0x0]))
+            (label_ref 0)
+            (pc))) -1 (nil))
+
+;; Generating RTL for gimple basic block 8
+
+;; exit (1);
+
+(insn 54 53 55 prog_stacksetup.c:109 (set (reg:SI 5 di)
+        (const_int 1 [0x1])) -1 (nil))
+
+(call_insn 55 54 56 prog_stacksetup.c:109 (call (mem:QI (symbol_ref:DI ("exit") [flags 0x41] <function_decl 0x7fd34911ac00 exit>) [0 S1 A8])
+        (const_int 0 [0x0])) -1 (expr_list:REG_NORETURN (const_int 0 [0x0])
+        (expr_list:REG_EH_REGION (const_int 0 [0x0])
+            (nil)))
+    (expr_list:REG_DEP_TRUE (use (reg:SI 5 di))
+        (nil)))
+
+(barrier 56 55 0)
+
+;; Generating RTL for gimple basic block 9
+
+;; 
+
+(code_label 57 56 58 5 "" [0 uses])
+
+(note 58 57 0 NOTE_INSN_BASIC_BLOCK)
+
+;; skaddr.1 = (volatile char *) skaddr;
+
+(insn 59 58 0 prog_stacksetup.c:110 (set (reg/f:DI 76 [ skaddr.1 ])
+        (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1064 [0xfffffffffffffbd8])) [0 skaddr+0 S8 A64])) -1 (nil))
+
+;; D.2720 = (long unsigned int) sksize;
+
+(insn 60 59 61 prog_stacksetup.c:110 (set (reg:SI 96)
+        (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1044 [0xfffffffffffffbec])) [0 sksize+0 S4 A32])) -1 (nil))
+
+(insn 61 60 0 prog_stacksetup.c:110 (set (reg:DI 75 [ D.2720 ])
+        (sign_extend:DI (reg:SI 96))) -1 (nil))
+
+;; D.2721 = skaddr.1 + D.2720;
+
+(insn 62 61 0 prog_stacksetup.c:110 (parallel [
+            (set (reg/f:DI 74 [ D.2721 ])
+                (plus:DI (reg/f:DI 76 [ skaddr.1 ])
+                    (reg:DI 75 [ D.2720 ])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+
+;; handler_addr.2 = handler_addr;
+
+(insn 63 62 0 prog_stacksetup.c:110 (set (reg/f:DI 73 [ handler_addr.2 ])
+        (mem/f/c/i:DI (symbol_ref:DI ("handler_addr") [flags 0x2] <var_decl 0x7fd348575b40 handler_addr>) [0 handler_addr+0 S8 A64])) -1 (nil))
+
+;; if (D.2721 > handler_addr.2)
+
+(insn 64 63 65 prog_stacksetup.c:110 (set (reg:CC 17 flags)
+        (compare:CC (reg/f:DI 74 [ D.2721 ])
+            (reg/f:DI 73 [ handler_addr.2 ]))) -1 (nil))
+
+(jump_insn 65 64 0 prog_stacksetup.c:110 (set (pc)
+        (if_then_else (leu (reg:CC 17 flags)
+                (const_int 0 [0x0]))
+            (label_ref 0)
+            (pc))) -1 (nil))
+
+;; Generating RTL for gimple basic block 10
+
+;; D.2725 = (long unsigned int) sksize;
+
+(insn 67 66 68 prog_stacksetup.c:112 (set (reg:SI 97)
+        (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1044 [0xfffffffffffffbec])) [0 sksize+0 S4 A32])) -1 (nil))
+
+(insn 68 67 0 prog_stacksetup.c:112 (set (reg:DI 72 [ D.2725 ])
+        (sign_extend:DI (reg:SI 97))) -1 (nil))
+
+;; D.2726 = skaddr + D.2725;
+
+(insn 69 68 0 prog_stacksetup.c:112 (parallel [
+            (set (reg/f:DI 71 [ D.2726 ])
+                (plus:DI (reg:DI 72 [ D.2725 ])
+                    (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                            (const_int -1064 [0xfffffffffffffbd8])) [0 skaddr+0 S8 A64])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+
+;; D.2727 = *D.2726;
+
+(insn 70 69 0 prog_stacksetup.c:112 (set (reg:QI 70 [ D.2727 ])
+        (mem:QI (reg/f:DI 71 [ D.2726 ]) [0 S1 A8])) -1 (nil))
+
+;; if (D.2727 != 65)
+
+(insn 71 70 72 prog_stacksetup.c:112 (set (reg:CCZ 17 flags)
+        (compare:CCZ (reg:QI 70 [ D.2727 ])
+            (const_int 65 [0x41]))) -1 (nil))
+
+(jump_insn 72 71 0 prog_stacksetup.c:112 (set (pc)
+        (if_then_else (eq (reg:CCZ 17 flags)
+                (const_int 0 [0x0]))
+            (label_ref 0)
+            (pc))) -1 (nil))
+
+;; Generating RTL for gimple basic block 11
+
+;; D.2730 = (const char * restrict) "(skaddr)+(sksize)-%d,(sksize)-%d";
+
+(insn 74 73 0 prog_stacksetup.c:113 (set (reg/f:DI 69 [ D.2730 ])
+        (symbol_ref/f:DI ("*.LC0") [flags 0x2] <string_cst 0x7fd3483add20>)) -1 (nil))
+
+;; sprintf (&result, D.2730, 8, 8);
+
+(insn 75 74 76 prog_stacksetup.c:113 (parallel [
+            (set (reg:DI 98)
+                (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                    (const_int -1040 [0xfffffffffffffbf0])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+
+(insn 76 75 77 prog_stacksetup.c:113 (set (reg:DI 2 cx)
+        (const_int 8 [0x8])) -1 (nil))
+
+(insn 77 76 78 prog_stacksetup.c:113 (set (reg:DI 1 dx)
+        (const_int 8 [0x8])) -1 (nil))
+
+(insn 78 77 79 prog_stacksetup.c:113 (set (reg:DI 4 si)
+        (reg/f:DI 69 [ D.2730 ])) -1 (nil))
+
+(insn 79 78 80 prog_stacksetup.c:113 (set (reg:DI 5 di)
+        (reg:DI 98)) -1 (nil))
+
+(insn 80 79 81 prog_stacksetup.c:113 (set (reg:QI 0 ax)
+        (const_int 0 [0x0])) -1 (nil))
+
+(call_insn 81 80 0 prog_stacksetup.c:113 (set (reg:SI 0 ax)
+        (call (mem:QI (symbol_ref:DI ("sprintf") [flags 0x41] <function_decl 0x7fd34910a000 sprintf>) [0 S1 A8])
+            (const_int 0 [0x0]))) -1 (expr_list:REG_EH_REGION (const_int 0 [0x0])
+        (nil))
+    (expr_list:REG_DEP_TRUE (use (reg:QI 0 ax))
+        (expr_list:REG_DEP_TRUE (use (reg:DI 5 di))
+            (expr_list:REG_DEP_TRUE (use (reg:DI 4 si))
+                (expr_list:REG_DEP_TRUE (use (reg:DI 1 dx))
+                    (expr_list:REG_DEP_TRUE (use (reg:DI 2 cx))
+                        (nil)))))))
+
+;; Generating RTL for gimple basic block 12
+
+;; 
+
+(code_label 84 83 85 7 "" [0 uses])
+
+(note 85 84 0 NOTE_INSN_BASIC_BLOCK)
+
+;; D.2732 = (const char * restrict) "(skaddr)+(sksize),(sksize)";
+
+(insn 86 85 0 prog_stacksetup.c:116 (set (reg/f:DI 68 [ D.2732 ])
+        (symbol_ref/f:DI ("*.LC1") [flags 0x2] <string_cst 0x7fd3483b8d40>)) -1 (nil))
+
+;; __builtin_memcpy (&result, D.2732, 27);
+
+(insn 87 86 88 prog_stacksetup.c:116 (parallel [
+            (set (reg:DI 99)
+                (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                    (const_int -1040 [0xfffffffffffffbf0])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+
+(insn 88 87 89 prog_stacksetup.c:116 (set (reg:DI 1 dx)
+        (const_int 27 [0x1b])) -1 (nil))
+
+(insn 89 88 90 prog_stacksetup.c:116 (set (reg:DI 4 si)
+        (reg/f:DI 68 [ D.2732 ])) -1 (nil))
+
+(insn 90 89 91 prog_stacksetup.c:116 (set (reg:DI 5 di)
+        (reg:DI 99)) -1 (nil))
+
+(call_insn 91 90 0 prog_stacksetup.c:116 (set (reg:DI 0 ax)
+        (call (mem:QI (symbol_ref:DI ("memcpy") [flags 0x41] <function_decl 0x7fd3490f9900 __builtin_memcpy>) [0 S1 A8])
+            (const_int 0 [0x0]))) -1 (expr_list:REG_EH_REGION (const_int 0 [0x0])
+        (nil))
+    (expr_list:REG_DEP_TRUE (use (reg:DI 5 di))
+        (expr_list:REG_DEP_TRUE (use (reg:DI 4 si))
+            (expr_list:REG_DEP_TRUE (use (reg:DI 1 dx))
+                (nil)))))
+
+;; Generating RTL for gimple basic block 13
+
+;; 
+
+(code_label 92 91 93 8 "" [0 uses])
+
+(note 93 92 0 NOTE_INSN_BASIC_BLOCK)
+
+;; Generating RTL for gimple basic block 14
+
+;; 
+
+(code_label 96 95 97 6 "" [0 uses])
+
+(note 97 96 0 NOTE_INSN_BASIC_BLOCK)
+
+;; D.2734 = sksize * 2;
+
+(insn 98 97 99 prog_stacksetup.c:120 (set (reg:SI 100)
+        (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1044 [0xfffffffffffffbec])) [0 sksize+0 S4 A32])) -1 (nil))
+
+(insn 99 98 0 prog_stacksetup.c:120 (parallel [
+            (set (reg:SI 67 [ D.2734 ])
+                (ashift:SI (reg:SI 100)
+                    (const_int 1 [0x1])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (expr_list:REG_EQUAL (ashift:SI (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                    (const_int -1044 [0xfffffffffffffbec])) [0 sksize+0 S4 A32])
+            (const_int 1 [0x1]))
+        (nil)))
+
+;; D.2735 = (long unsigned int) D.2734;
+
+(insn 100 99 0 prog_stacksetup.c:120 (set (reg:DI 66 [ D.2735 ])
+        (sign_extend:DI (reg:SI 67 [ D.2734 ]))) -1 (nil))
+
+;; D.2736 = skaddr + D.2735;
+
+(insn 101 100 0 prog_stacksetup.c:120 (parallel [
+            (set (reg/f:DI 65 [ D.2736 ])
+                (plus:DI (reg:DI 66 [ D.2735 ])
+                    (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                            (const_int -1064 [0xfffffffffffffbd8])) [0 skaddr+0 S8 A64])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+
+;; D.2737 = *D.2736;
+
+(insn 102 101 0 prog_stacksetup.c:120 (set (reg:QI 64 [ D.2737 ])
+        (mem:QI (reg/f:DI 65 [ D.2736 ]) [0 S1 A8])) -1 (nil))
+
+;; if (D.2737 != 65)
+
+(insn 103 102 104 prog_stacksetup.c:120 (set (reg:CCZ 17 flags)
+        (compare:CCZ (reg:QI 64 [ D.2737 ])
+            (const_int 65 [0x41]))) -1 (nil))
+
+(jump_insn 104 103 0 prog_stacksetup.c:120 (set (pc)
+        (if_then_else (eq (reg:CCZ 17 flags)
+                (const_int 0 [0x0]))
+            (label_ref 0)
+            (pc))) -1 (nil))
+
+;; Generating RTL for gimple basic block 15
+
+;; D.2740 = (const char * restrict) "(skaddr),(sksize)-%d";
+
+(insn 106 105 0 prog_stacksetup.c:121 (set (reg/f:DI 63 [ D.2740 ])
+        (symbol_ref/f:DI ("*.LC2") [flags 0x2] <string_cst 0x7fd3483b8e40>)) -1 (nil))
+
+;; sprintf (&result, D.2740, 8);
+
+(insn 107 106 108 prog_stacksetup.c:121 (parallel [
+            (set (reg:DI 101)
+                (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                    (const_int -1040 [0xfffffffffffffbf0])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+
+(insn 108 107 109 prog_stacksetup.c:121 (set (reg:DI 1 dx)
+        (const_int 8 [0x8])) -1 (nil))
+
+(insn 109 108 110 prog_stacksetup.c:121 (set (reg:DI 4 si)
+        (reg/f:DI 63 [ D.2740 ])) -1 (nil))
+
+(insn 110 109 111 prog_stacksetup.c:121 (set (reg:DI 5 di)
+        (reg:DI 101)) -1 (nil))
+
+(insn 111 110 112 prog_stacksetup.c:121 (set (reg:QI 0 ax)
+        (const_int 0 [0x0])) -1 (nil))
+
+(call_insn 112 111 0 prog_stacksetup.c:121 (set (reg:SI 0 ax)
+        (call (mem:QI (symbol_ref:DI ("sprintf") [flags 0x41] <function_decl 0x7fd34910a000 sprintf>) [0 S1 A8])
+            (const_int 0 [0x0]))) -1 (expr_list:REG_EH_REGION (const_int 0 [0x0])
+        (nil))
+    (expr_list:REG_DEP_TRUE (use (reg:QI 0 ax))
+        (expr_list:REG_DEP_TRUE (use (reg:DI 5 di))
+            (expr_list:REG_DEP_TRUE (use (reg:DI 4 si))
+                (expr_list:REG_DEP_TRUE (use (reg:DI 1 dx))
+                    (nil))))))
+
+;; Generating RTL for gimple basic block 16
+
+;; 
+
+(code_label 115 114 116 10 "" [0 uses])
+
+(note 116 115 0 NOTE_INSN_BASIC_BLOCK)
+
+;; D.2742 = (const char * restrict) "(skaddr),(sksize)";
+
+(insn 117 116 0 prog_stacksetup.c:123 (set (reg/f:DI 62 [ D.2742 ])
+        (symbol_ref/f:DI ("*.LC3") [flags 0x2] <string_cst 0x7fd3483b8f00>)) -1 (nil))
+
+;; __builtin_memcpy (&result, D.2742, 18);
+
+(insn 118 117 119 prog_stacksetup.c:123 (parallel [
+            (set (reg:DI 102)
+                (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                    (const_int -1040 [0xfffffffffffffbf0])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+
+(insn 119 118 120 prog_stacksetup.c:123 (set (reg:DI 1 dx)
+        (const_int 18 [0x12])) -1 (nil))
+
+(insn 120 119 121 prog_stacksetup.c:123 (set (reg:DI 4 si)
+        (reg/f:DI 62 [ D.2742 ])) -1 (nil))
+
+(insn 121 120 122 prog_stacksetup.c:123 (set (reg:DI 5 di)
+        (reg:DI 102)) -1 (nil))
+
+(call_insn 122 121 0 prog_stacksetup.c:123 (set (reg:DI 0 ax)
+        (call (mem:QI (symbol_ref:DI ("memcpy") [flags 0x41] <function_decl 0x7fd3490f9900 __builtin_memcpy>) [0 S1 A8])
+            (const_int 0 [0x0]))) -1 (expr_list:REG_EH_REGION (const_int 0 [0x0])
+        (nil))
+    (expr_list:REG_DEP_TRUE (use (reg:DI 5 di))
+        (expr_list:REG_DEP_TRUE (use (reg:DI 4 si))
+            (expr_list:REG_DEP_TRUE (use (reg:DI 1 dx))
+                (nil)))))
+
+;; Generating RTL for gimple basic block 17
+
+;; 
+
+(code_label 123 122 124 9 "" [0 uses])
+
+(note 124 123 0 NOTE_INSN_BASIC_BLOCK)
+
+;; D.2743 = (const char * restrict) "w";
+
+(insn 125 124 0 prog_stacksetup.c:125 (set (reg/f:DI 61 [ D.2743 ])
+        (symbol_ref/f:DI ("*.LC4") [flags 0x2] <string_cst 0x7fd3483bc990>)) -1 (nil))
+
+;; D.2744 = (const char * restrict) "conftestval";
+
+(insn 126 125 0 prog_stacksetup.c:125 (set (reg/f:DI 60 [ D.2744 ])
+        (symbol_ref/f:DI ("*.LC5") [flags 0x2] <string_cst 0x7fd3483b8f80>)) -1 (nil))
+
+;; f.3 = fopen (D.2744, D.2743);
+
+(insn 127 126 128 prog_stacksetup.c:125 (set (reg:DI 4 si)
+        (reg/f:DI 61 [ D.2743 ])) -1 (nil))
+
+(insn 128 127 129 prog_stacksetup.c:125 (set (reg:DI 5 di)
+        (reg/f:DI 60 [ D.2744 ])) -1 (nil))
+
+(call_insn 129 128 130 prog_stacksetup.c:125 (set (reg:DI 0 ax)
+        (call (mem:QI (symbol_ref:DI ("fopen") [flags 0x41] <function_decl 0x7fd348523300 fopen>) [0 S1 A8])
+            (const_int 0 [0x0]))) -1 (nil)
+    (expr_list:REG_DEP_TRUE (use (reg:DI 5 di))
+        (expr_list:REG_DEP_TRUE (use (reg:DI 4 si))
+            (nil))))
+
+(insn 130 129 0 prog_stacksetup.c:125 (set (reg/f:DI 59 [ f.3 ])
+        (reg:DI 0 ax)) -1 (nil))
+
+;; f = f.3;
+
+(insn 131 130 0 prog_stacksetup.c:125 (set (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1056 [0xfffffffffffffbe0])) [0 f+0 S8 A64])
+        (reg/f:DI 59 [ f.3 ])) -1 (nil))
+
+;; if (f == 0B)
+
+(insn 132 131 133 prog_stacksetup.c:125 (set (reg:CCZ 17 flags)
+        (compare:CCZ (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                    (const_int -1056 [0xfffffffffffffbe0])) [0 f+0 S8 A64])
+            (const_int 0 [0x0]))) -1 (nil))
+
+(jump_insn 133 132 0 prog_stacksetup.c:125 (set (pc)
+        (if_then_else (ne (reg:CCZ 17 flags)
+                (const_int 0 [0x0]))
+            (label_ref 0)
+            (pc))) -1 (nil))
+
+;; Generating RTL for gimple basic block 18
+
+;; exit (1);
+
+(insn 135 134 136 prog_stacksetup.c:126 (set (reg:SI 5 di)
+        (const_int 1 [0x1])) -1 (nil))
+
+(call_insn 136 135 137 prog_stacksetup.c:126 (call (mem:QI (symbol_ref:DI ("exit") [flags 0x41] <function_decl 0x7fd34911ac00 exit>) [0 S1 A8])
+        (const_int 0 [0x0])) -1 (expr_list:REG_NORETURN (const_int 0 [0x0])
+        (expr_list:REG_EH_REGION (const_int 0 [0x0])
+            (nil)))
+    (expr_list:REG_DEP_TRUE (use (reg:SI 5 di))
+        (nil)))
+
+(barrier 137 136 0)
+
+;; Generating RTL for gimple basic block 19
+
+;; 
+
+(code_label 138 137 139 11 "" [0 uses])
+
+(note 139 138 0 NOTE_INSN_BASIC_BLOCK)
+
+;; D.2748 = (const char * restrict) "%s\n";
+
+(insn 140 139 0 prog_stacksetup.c:127 (set (reg/f:DI 58 [ D.2748 ])
+        (symbol_ref/f:DI ("*.LC6") [flags 0x2] <string_cst 0x7fd3483bca20>)) -1 (nil))
+
+;; fprintf (f, D.2748, &result);
+
+(insn 141 140 142 prog_stacksetup.c:127 (parallel [
+            (set (reg:DI 103)
+                (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                    (const_int -1040 [0xfffffffffffffbf0])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+
+(insn 142 141 143 prog_stacksetup.c:127 (set (reg:DI 104)
+        (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1056 [0xfffffffffffffbe0])) [0 f+0 S8 A64])) -1 (nil))
+
+(insn 143 142 144 prog_stacksetup.c:127 (set (reg:DI 1 dx)
+        (reg:DI 103)) -1 (nil))
+
+(insn 144 143 145 prog_stacksetup.c:127 (set (reg:DI 4 si)
+        (reg/f:DI 58 [ D.2748 ])) -1 (nil))
+
+(insn 145 144 146 prog_stacksetup.c:127 (set (reg:DI 5 di)
+        (reg:DI 104)) -1 (nil))
+
+(insn 146 145 147 prog_stacksetup.c:127 (set (reg:QI 0 ax)
+        (const_int 0 [0x0])) -1 (nil))
+
+(call_insn 147 146 0 prog_stacksetup.c:127 (set (reg:SI 0 ax)
+        (call (mem:QI (symbol_ref:DI ("fprintf") [flags 0x41] <function_decl 0x7fd349101a00 fprintf>) [0 S1 A8])
+            (const_int 0 [0x0]))) -1 (nil)
+    (expr_list:REG_DEP_TRUE (use (reg:QI 0 ax))
+        (expr_list:REG_DEP_TRUE (use (reg:DI 5 di))
+            (expr_list:REG_DEP_TRUE (use (reg:DI 4 si))
+                (expr_list:REG_DEP_TRUE (use (reg:DI 1 dx))
+                    (nil))))))
+
+;; fclose (f);
+
+(insn 148 147 149 prog_stacksetup.c:128 (set (reg:DI 105)
+        (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1056 [0xfffffffffffffbe0])) [0 f+0 S8 A64])) -1 (nil))
+
+(insn 149 148 150 prog_stacksetup.c:128 (set (reg:DI 5 di)
+        (reg:DI 105)) -1 (nil))
+
+(call_insn 150 149 0 prog_stacksetup.c:128 (set (reg:SI 0 ax)
+        (call (mem:QI (symbol_ref:DI ("fclose") [flags 0x41] <function_decl 0x7fd348523000 fclose>) [0 S1 A8])
+            (const_int 0 [0x0]))) -1 (nil)
+    (expr_list:REG_DEP_TRUE (use (reg:DI 5 di))
+        (nil)))
+
+;; exit (0);
+
+(insn 151 150 152 prog_stacksetup.c:129 (set (reg:SI 5 di)
+        (const_int 0 [0x0])) -1 (nil))
+
+(call_insn 152 151 153 prog_stacksetup.c:129 (call (mem:QI (symbol_ref:DI ("exit") [flags 0x41] <function_decl 0x7fd34911ac00 exit>) [0 S1 A8])
+        (const_int 0 [0x0])) -1 (expr_list:REG_NORETURN (const_int 0 [0x0])
+        (expr_list:REG_EH_REGION (const_int 0 [0x0])
+            (nil)))
+    (expr_list:REG_DEP_TRUE (use (reg:SI 5 di))
+        (nil)))
+
+(barrier 153 152 0)
+
+
+;;
+;; Full RTL generated for this function:
+;;
+(note 1 0 6 NOTE_INSN_DELETED)
+
+;; Start of basic block ( 0) -> 2
+;; Pred edge  ENTRY (fallthru)
+(note 6 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK)
+
+(insn 2 6 3 2 prog_stacksetup.c:50 (set (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1076 [0xfffffffffffffbcc])) [0 argc+0 S4 A32])
+        (reg:SI 5 di [ argc ])) -1 (nil))
+
+(insn 3 2 4 2 prog_stacksetup.c:50 (set (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1088 [0xfffffffffffffbc0])) [0 argv+0 S8 A64])
+        (reg:DI 4 si [ argv ])) -1 (nil))
+
+(note 4 3 5 2 NOTE_INSN_FUNCTION_BEG)
+
+(insn 5 4 7 2 prog_stacksetup.c:50 (parallel [
+            (set (mem/v/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                        (const_int -8 [0xfffffffffffffff8])) [0 D.2750+0 S8 A64])
+                (unspec:DI [
+                        (const_int 40 [0x28])
+                    ] 102))
+            (set (scratch:DI)
+                (const_int 0 [0x0]))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+;; End of basic block 2 -> ( 3)
+
+;; Succ edge  3 [100.0%]  (fallthru)
+
+;; Start of basic block ( 2) -> 3
+;; Pred edge  2 [100.0%]  (fallthru)
+(note 7 5 8 3 [bb 3] NOTE_INSN_BASIC_BLOCK)
+
+(insn 8 7 9 3 prog_stacksetup.c:57 (set (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1044 [0xfffffffffffffbec])) [0 sksize+0 S4 A32])
+        (const_int 32768 [0x8000])) -1 (nil))
+
+(insn 9 8 10 3 prog_stacksetup.c:58 (set (reg:SI 89)
+        (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1044 [0xfffffffffffffbec])) [0 sksize+0 S4 A32])) -1 (nil))
+
+(insn 10 9 11 3 prog_stacksetup.c:58 (parallel [
+            (set (reg:SI 87 [ D.2704 ])
+                (ashift:SI (reg:SI 89)
+                    (const_int 1 [0x1])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (expr_list:REG_EQUAL (ashift:SI (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                    (const_int -1044 [0xfffffffffffffbec])) [0 sksize+0 S4 A32])
+            (const_int 1 [0x1]))
+        (nil)))
+
+(insn 11 10 12 3 prog_stacksetup.c:58 (set (reg:DI 86 [ D.2705 ])
+        (sign_extend:DI (reg:SI 87 [ D.2704 ]))) -1 (nil))
+
+(insn 12 11 13 3 prog_stacksetup.c:58 (parallel [
+            (set (reg:DI 85 [ D.2706 ])
+                (plus:DI (reg:DI 86 [ D.2705 ])
+                    (const_int 16 [0x10])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+
+(insn 13 12 14 3 prog_stacksetup.c:58 (set (reg:DI 5 di)
+        (reg:DI 85 [ D.2706 ])) -1 (nil))
+
+(call_insn 14 13 15 3 prog_stacksetup.c:58 (set (reg:DI 0 ax)
+        (call (mem:QI (symbol_ref:DI ("malloc") [flags 0x41] <function_decl 0x7fd349126700 malloc>) [0 S1 A8])
+            (const_int 0 [0x0]))) -1 (expr_list:REG_EH_REGION (const_int 0 [0x0])
+        (nil))
+    (expr_list:REG_DEP_TRUE (use (reg:DI 5 di))
+        (nil)))
+
+(insn 15 14 16 3 prog_stacksetup.c:58 (set (reg/f:DI 90)
+        (reg:DI 0 ax)) -1 (expr_list:REG_NOALIAS (reg/f:DI 90)
+        (nil)))
+
+(insn 16 15 17 3 prog_stacksetup.c:58 (set (reg/f:DI 84 [ D.2707 ])
+        (reg/f:DI 90)) -1 (nil))
+
+(insn 17 16 18 3 prog_stacksetup.c:58 (set (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1072 [0xfffffffffffffbd0])) [0 skbuf+0 S8 A64])
+        (reg/f:DI 84 [ D.2707 ])) -1 (nil))
+
+(insn 18 17 19 3 prog_stacksetup.c:59 (set (reg:CCZ 17 flags)
+        (compare:CCZ (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                    (const_int -1072 [0xfffffffffffffbd0])) [0 skbuf+0 S8 A64])
+            (const_int 0 [0x0]))) -1 (nil))
+
+(jump_insn 19 18 20 3 prog_stacksetup.c:59 (set (pc)
+        (if_then_else (ne (reg:CCZ 17 flags)
+                (const_int 0 [0x0]))
+            (label_ref 24)
+            (pc))) -1 (nil))
+;; End of basic block 3 -> ( 4 5)
+
+;; Succ edge  4 (fallthru)
+;; Succ edge  5
+
+;; Start of basic block ( 3) -> 4
+;; Pred edge  3 (fallthru)
+(note 20 19 21 4 [bb 4] NOTE_INSN_BASIC_BLOCK)
+
+(insn 21 20 22 4 prog_stacksetup.c:60 (set (reg:SI 5 di)
+        (const_int 1 [0x1])) -1 (nil))
+
+(call_insn 22 21 23 4 prog_stacksetup.c:60 (call (mem:QI (symbol_ref:DI ("exit") [flags 0x41] <function_decl 0x7fd34911ac00 exit>) [0 S1 A8])
+        (const_int 0 [0x0])) -1 (expr_list:REG_NORETURN (const_int 0 [0x0])
+        (expr_list:REG_EH_REGION (const_int 0 [0x0])
+            (nil)))
+    (expr_list:REG_DEP_TRUE (use (reg:SI 5 di))
+        (nil)))
+;; End of basic block 4 -> ()
+
+
+(barrier 23 22 24)
+
+;; Start of basic block ( 3) -> 5
+;; Pred edge  3
+(code_label 24 23 25 5 2 "" [1 uses])
+
+(note 25 24 26 5 [bb 5] NOTE_INSN_BASIC_BLOCK)
+
+(insn 26 25 27 5 prog_stacksetup.c:61 (set (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1048 [0xfffffffffffffbe8])) [0 i+0 S4 A64])
+        (const_int 0 [0x0])) -1 (nil))
+
+(jump_insn 27 26 28 5 prog_stacksetup.c:61 (set (pc)
+        (label_ref 35)) -1 (nil))
+;; End of basic block 5 -> ( 7)
+
+;; Succ edge  7
+
+(barrier 28 27 43)
+
+;; Start of basic block ( 7) -> 6
+;; Pred edge  7
+(code_label 43 28 29 6 4 "" [1 uses])
+
+(note 29 43 30 6 [bb 6] NOTE_INSN_BASIC_BLOCK)
+
+(insn 30 29 31 6 prog_stacksetup.c:62 (set (reg:SI 91)
+        (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1048 [0xfffffffffffffbe8])) [0 i+0 S4 A64])) -1 (nil))
+
+(insn 31 30 32 6 prog_stacksetup.c:62 (set (reg:DI 83 [ D.2710 ])
+        (sign_extend:DI (reg:SI 91))) -1 (nil))
+
+(insn 32 31 33 6 prog_stacksetup.c:62 (parallel [
+            (set (reg/f:DI 82 [ D.2711 ])
+                (plus:DI (reg:DI 83 [ D.2710 ])
+                    (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                            (const_int -1072 [0xfffffffffffffbd0])) [0 skbuf+0 S8 A64])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+
+(insn 33 32 34 6 prog_stacksetup.c:62 (set (mem:QI (reg/f:DI 82 [ D.2711 ]) [0 S1 A8])
+        (const_int 65 [0x41])) -1 (nil))
+
+(insn 34 33 35 6 prog_stacksetup.c:61 (parallel [
+            (set (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                        (const_int -1048 [0xfffffffffffffbe8])) [0 i+0 S4 A64])
+                (plus:SI (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                            (const_int -1048 [0xfffffffffffffbe8])) [0 i+0 S4 A64])
+                    (const_int 1 [0x1])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+;; End of basic block 6 -> ( 7)
+
+;; Succ edge  7 (fallthru)
+
+;; Start of basic block ( 5 6) -> 7
+;; Pred edge  5
+;; Pred edge  6 (fallthru)
+(code_label 35 34 36 7 3 "" [1 uses])
+
+(note 36 35 37 7 [bb 7] NOTE_INSN_BASIC_BLOCK)
+
+(insn 37 36 38 7 prog_stacksetup.c:61 (set (reg:SI 92)
+        (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1048 [0xfffffffffffffbe8])) [0 i+0 S4 A64])) -1 (nil))
+
+(insn 38 37 39 7 prog_stacksetup.c:61 (set (reg:DI 81 [ D.2712 ])
+        (sign_extend:DI (reg:SI 92))) -1 (nil))
+
+(insn 39 38 40 7 prog_stacksetup.c:61 (set (reg:SI 93)
+        (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1044 [0xfffffffffffffbec])) [0 sksize+0 S4 A32])) -1 (nil))
+
+(insn 40 39 41 7 prog_stacksetup.c:61 (parallel [
+            (set (reg:SI 80 [ D.2713 ])
+                (ashift:SI (reg:SI 93)
+                    (const_int 1 [0x1])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (expr_list:REG_EQUAL (ashift:SI (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                    (const_int -1044 [0xfffffffffffffbec])) [0 sksize+0 S4 A32])
+            (const_int 1 [0x1]))
+        (nil)))
+
+(insn 41 40 42 7 prog_stacksetup.c:61 (set (reg:DI 79 [ D.2714 ])
+        (sign_extend:DI (reg:SI 80 [ D.2713 ]))) -1 (nil))
+
+(insn 42 41 44 7 prog_stacksetup.c:61 (parallel [
+            (set (reg:DI 78 [ D.2715 ])
+                (plus:DI (reg:DI 79 [ D.2714 ])
+                    (const_int 16 [0x10])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+
+(insn 44 42 45 7 prog_stacksetup.c:61 (set (reg:CC 17 flags)
+        (compare:CC (reg:DI 81 [ D.2712 ])
+            (reg:DI 78 [ D.2715 ]))) -1 (nil))
+
+(jump_insn 45 44 46 7 prog_stacksetup.c:61 (set (pc)
+        (if_then_else (ltu (reg:CC 17 flags)
+                (const_int 0 [0x0]))
+            (label_ref 43)
+            (pc))) -1 (nil))
+;; End of basic block 7 -> ( 6 8)
+
+;; Succ edge  6
+;; Succ edge  8 (fallthru)
+
+;; Start of basic block ( 7) -> 8
+;; Pred edge  7 (fallthru)
+(note 46 45 47 8 [bb 8] NOTE_INSN_BASIC_BLOCK)
+
+(insn 47 46 48 8 prog_stacksetup.c:63 (set (reg/f:DI 95)
+        (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1072 [0xfffffffffffffbd0])) [0 skbuf+0 S8 A64])) -1 (nil))
+
+(insn 48 47 49 8 prog_stacksetup.c:63 (parallel [
+            (set (reg:DI 94)
+                (plus:DI (reg/f:DI 95)
+                    (const_int 8 [0x8])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+
+(insn 49 48 50 8 prog_stacksetup.c:63 (set (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1064 [0xfffffffffffffbd8])) [0 skaddr+0 S8 A64])
+        (reg:DI 94)) -1 (expr_list:REG_EQUAL (plus:DI (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                    (const_int -1072 [0xfffffffffffffbd0])) [0 skbuf+0 S8 A64])
+            (const_int 8 [0x8]))
+        (nil)))
+
+(insn 50 49 51 8 prog_stacksetup.c:108 (set (reg/f:DI 77 [ handler_addr.0 ])
+        (mem/f/c/i:DI (symbol_ref:DI ("handler_addr") [flags 0x2] <var_decl 0x7fd348575b40 handler_addr>) [0 handler_addr+0 S8 A64])) -1 (nil))
+
+(insn 51 50 52 8 prog_stacksetup.c:108 (set (reg:CCZ 17 flags)
+        (compare:CCZ (reg/f:DI 77 [ handler_addr.0 ])
+            (const_int 57005 [0xdead]))) -1 (nil))
+
+(jump_insn 52 51 53 8 prog_stacksetup.c:108 (set (pc)
+        (if_then_else (ne (reg:CCZ 17 flags)
+                (const_int 0 [0x0]))
+            (label_ref 57)
+            (pc))) -1 (nil))
+;; End of basic block 8 -> ( 9 10)
+
+;; Succ edge  9 (fallthru)
+;; Succ edge  10
+
+;; Start of basic block ( 8) -> 9
+;; Pred edge  8 (fallthru)
+(note 53 52 54 9 [bb 9] NOTE_INSN_BASIC_BLOCK)
+
+(insn 54 53 55 9 prog_stacksetup.c:109 (set (reg:SI 5 di)
+        (const_int 1 [0x1])) -1 (nil))
+
+(call_insn 55 54 56 9 prog_stacksetup.c:109 (call (mem:QI (symbol_ref:DI ("exit") [flags 0x41] <function_decl 0x7fd34911ac00 exit>) [0 S1 A8])
+        (const_int 0 [0x0])) -1 (expr_list:REG_NORETURN (const_int 0 [0x0])
+        (expr_list:REG_EH_REGION (const_int 0 [0x0])
+            (nil)))
+    (expr_list:REG_DEP_TRUE (use (reg:SI 5 di))
+        (nil)))
+;; End of basic block 9 -> ()
+
+
+(barrier 56 55 57)
+
+;; Start of basic block ( 8) -> 10
+;; Pred edge  8
+(code_label 57 56 58 10 5 "" [1 uses])
+
+(note 58 57 59 10 [bb 10] NOTE_INSN_BASIC_BLOCK)
+
+(insn 59 58 60 10 prog_stacksetup.c:110 (set (reg/f:DI 76 [ skaddr.1 ])
+        (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1064 [0xfffffffffffffbd8])) [0 skaddr+0 S8 A64])) -1 (nil))
+
+(insn 60 59 61 10 prog_stacksetup.c:110 (set (reg:SI 96)
+        (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1044 [0xfffffffffffffbec])) [0 sksize+0 S4 A32])) -1 (nil))
+
+(insn 61 60 62 10 prog_stacksetup.c:110 (set (reg:DI 75 [ D.2720 ])
+        (sign_extend:DI (reg:SI 96))) -1 (nil))
+
+(insn 62 61 63 10 prog_stacksetup.c:110 (parallel [
+            (set (reg/f:DI 74 [ D.2721 ])
+                (plus:DI (reg/f:DI 76 [ skaddr.1 ])
+                    (reg:DI 75 [ D.2720 ])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+
+(insn 63 62 64 10 prog_stacksetup.c:110 (set (reg/f:DI 73 [ handler_addr.2 ])
+        (mem/f/c/i:DI (symbol_ref:DI ("handler_addr") [flags 0x2] <var_decl 0x7fd348575b40 handler_addr>) [0 handler_addr+0 S8 A64])) -1 (nil))
+
+(insn 64 63 65 10 prog_stacksetup.c:110 (set (reg:CC 17 flags)
+        (compare:CC (reg/f:DI 74 [ D.2721 ])
+            (reg/f:DI 73 [ handler_addr.2 ]))) -1 (nil))
+
+(jump_insn 65 64 66 10 prog_stacksetup.c:110 (set (pc)
+        (if_then_else (leu (reg:CC 17 flags)
+                (const_int 0 [0x0]))
+            (label_ref 96)
+            (pc))) -1 (nil))
+;; End of basic block 10 -> ( 11 15)
+
+;; Succ edge  11 (fallthru)
+;; Succ edge  15
+
+;; Start of basic block ( 10) -> 11
+;; Pred edge  10 (fallthru)
+(note 66 65 67 11 [bb 11] NOTE_INSN_BASIC_BLOCK)
+
+(insn 67 66 68 11 prog_stacksetup.c:112 (set (reg:SI 97)
+        (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1044 [0xfffffffffffffbec])) [0 sksize+0 S4 A32])) -1 (nil))
+
+(insn 68 67 69 11 prog_stacksetup.c:112 (set (reg:DI 72 [ D.2725 ])
+        (sign_extend:DI (reg:SI 97))) -1 (nil))
+
+(insn 69 68 70 11 prog_stacksetup.c:112 (parallel [
+            (set (reg/f:DI 71 [ D.2726 ])
+                (plus:DI (reg:DI 72 [ D.2725 ])
+                    (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                            (const_int -1064 [0xfffffffffffffbd8])) [0 skaddr+0 S8 A64])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+
+(insn 70 69 71 11 prog_stacksetup.c:112 (set (reg:QI 70 [ D.2727 ])
+        (mem:QI (reg/f:DI 71 [ D.2726 ]) [0 S1 A8])) -1 (nil))
+
+(insn 71 70 72 11 prog_stacksetup.c:112 (set (reg:CCZ 17 flags)
+        (compare:CCZ (reg:QI 70 [ D.2727 ])
+            (const_int 65 [0x41]))) -1 (nil))
+
+(jump_insn 72 71 73 11 prog_stacksetup.c:112 (set (pc)
+        (if_then_else (eq (reg:CCZ 17 flags)
+                (const_int 0 [0x0]))
+            (label_ref 84)
+            (pc))) -1 (nil))
+;; End of basic block 11 -> ( 12 13)
+
+;; Succ edge  12 (fallthru)
+;; Succ edge  13
+
+;; Start of basic block ( 11) -> 12
+;; Pred edge  11 (fallthru)
+(note 73 72 74 12 [bb 12] NOTE_INSN_BASIC_BLOCK)
+
+(insn 74 73 75 12 prog_stacksetup.c:113 (set (reg/f:DI 69 [ D.2730 ])
+        (symbol_ref/f:DI ("*.LC0") [flags 0x2] <string_cst 0x7fd3483add20>)) -1 (nil))
+
+(insn 75 74 76 12 prog_stacksetup.c:113 (parallel [
+            (set (reg:DI 98)
+                (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                    (const_int -1040 [0xfffffffffffffbf0])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+
+(insn 76 75 77 12 prog_stacksetup.c:113 (set (reg:DI 2 cx)
+        (const_int 8 [0x8])) -1 (nil))
+
+(insn 77 76 78 12 prog_stacksetup.c:113 (set (reg:DI 1 dx)
+        (const_int 8 [0x8])) -1 (nil))
+
+(insn 78 77 79 12 prog_stacksetup.c:113 (set (reg:DI 4 si)
+        (reg/f:DI 69 [ D.2730 ])) -1 (nil))
+
+(insn 79 78 80 12 prog_stacksetup.c:113 (set (reg:DI 5 di)
+        (reg:DI 98)) -1 (nil))
+
+(insn 80 79 81 12 prog_stacksetup.c:113 (set (reg:QI 0 ax)
+        (const_int 0 [0x0])) -1 (nil))
+
+(call_insn 81 80 82 12 prog_stacksetup.c:113 (set (reg:SI 0 ax)
+        (call (mem:QI (symbol_ref:DI ("sprintf") [flags 0x41] <function_decl 0x7fd34910a000 sprintf>) [0 S1 A8])
+            (const_int 0 [0x0]))) -1 (expr_list:REG_EH_REGION (const_int 0 [0x0])
+        (nil))
+    (expr_list:REG_DEP_TRUE (use (reg:QI 0 ax))
+        (expr_list:REG_DEP_TRUE (use (reg:DI 5 di))
+            (expr_list:REG_DEP_TRUE (use (reg:DI 4 si))
+                (expr_list:REG_DEP_TRUE (use (reg:DI 1 dx))
+                    (expr_list:REG_DEP_TRUE (use (reg:DI 2 cx))
+                        (nil)))))))
+
+(jump_insn 82 81 83 12 prog_stacksetup.c:113 (set (pc)
+        (label_ref 92)) -1 (nil))
+;; End of basic block 12 -> ( 14)
+
+;; Succ edge  14
+
+(barrier 83 82 84)
+
+;; Start of basic block ( 11) -> 13
+;; Pred edge  11
+(code_label 84 83 85 13 7 "" [1 uses])
+
+(note 85 84 86 13 [bb 13] NOTE_INSN_BASIC_BLOCK)
+
+(insn 86 85 87 13 prog_stacksetup.c:116 (set (reg/f:DI 68 [ D.2732 ])
+        (symbol_ref/f:DI ("*.LC1") [flags 0x2] <string_cst 0x7fd3483b8d40>)) -1 (nil))
+
+(insn 87 86 88 13 prog_stacksetup.c:116 (parallel [
+            (set (reg:DI 99)
+                (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                    (const_int -1040 [0xfffffffffffffbf0])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+
+(insn 88 87 89 13 prog_stacksetup.c:116 (set (reg:DI 1 dx)
+        (const_int 27 [0x1b])) -1 (nil))
+
+(insn 89 88 90 13 prog_stacksetup.c:116 (set (reg:DI 4 si)
+        (reg/f:DI 68 [ D.2732 ])) -1 (nil))
+
+(insn 90 89 91 13 prog_stacksetup.c:116 (set (reg:DI 5 di)
+        (reg:DI 99)) -1 (nil))
+
+(call_insn 91 90 92 13 prog_stacksetup.c:116 (set (reg:DI 0 ax)
+        (call (mem:QI (symbol_ref:DI ("memcpy") [flags 0x41] <function_decl 0x7fd3490f9900 __builtin_memcpy>) [0 S1 A8])
+            (const_int 0 [0x0]))) -1 (expr_list:REG_EH_REGION (const_int 0 [0x0])
+        (nil))
+    (expr_list:REG_DEP_TRUE (use (reg:DI 5 di))
+        (expr_list:REG_DEP_TRUE (use (reg:DI 4 si))
+            (expr_list:REG_DEP_TRUE (use (reg:DI 1 dx))
+                (nil)))))
+;; End of basic block 13 -> ( 14)
+
+;; Succ edge  14 (fallthru)
+
+;; Start of basic block ( 12 13) -> 14
+;; Pred edge  12
+;; Pred edge  13 (fallthru)
+(code_label 92 91 93 14 8 "" [1 uses])
+
+(note 93 92 94 14 [bb 14] NOTE_INSN_BASIC_BLOCK)
+
+(jump_insn 94 93 95 14 prog_stacksetup.c:116 (set (pc)
+        (label_ref 123)) -1 (nil))
+;; End of basic block 14 -> ( 18)
+
+;; Succ edge  18
+
+(barrier 95 94 96)
+
+;; Start of basic block ( 10) -> 15
+;; Pred edge  10
+(code_label 96 95 97 15 6 "" [1 uses])
+
+(note 97 96 98 15 [bb 15] NOTE_INSN_BASIC_BLOCK)
+
+(insn 98 97 99 15 prog_stacksetup.c:120 (set (reg:SI 100)
+        (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1044 [0xfffffffffffffbec])) [0 sksize+0 S4 A32])) -1 (nil))
+
+(insn 99 98 100 15 prog_stacksetup.c:120 (parallel [
+            (set (reg:SI 67 [ D.2734 ])
+                (ashift:SI (reg:SI 100)
+                    (const_int 1 [0x1])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (expr_list:REG_EQUAL (ashift:SI (mem/c/i:SI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                    (const_int -1044 [0xfffffffffffffbec])) [0 sksize+0 S4 A32])
+            (const_int 1 [0x1]))
+        (nil)))
+
+(insn 100 99 101 15 prog_stacksetup.c:120 (set (reg:DI 66 [ D.2735 ])
+        (sign_extend:DI (reg:SI 67 [ D.2734 ]))) -1 (nil))
+
+(insn 101 100 102 15 prog_stacksetup.c:120 (parallel [
+            (set (reg/f:DI 65 [ D.2736 ])
+                (plus:DI (reg:DI 66 [ D.2735 ])
+                    (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                            (const_int -1064 [0xfffffffffffffbd8])) [0 skaddr+0 S8 A64])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+
+(insn 102 101 103 15 prog_stacksetup.c:120 (set (reg:QI 64 [ D.2737 ])
+        (mem:QI (reg/f:DI 65 [ D.2736 ]) [0 S1 A8])) -1 (nil))
+
+(insn 103 102 104 15 prog_stacksetup.c:120 (set (reg:CCZ 17 flags)
+        (compare:CCZ (reg:QI 64 [ D.2737 ])
+            (const_int 65 [0x41]))) -1 (nil))
+
+(jump_insn 104 103 105 15 prog_stacksetup.c:120 (set (pc)
+        (if_then_else (eq (reg:CCZ 17 flags)
+                (const_int 0 [0x0]))
+            (label_ref 115)
+            (pc))) -1 (nil))
+;; End of basic block 15 -> ( 16 17)
+
+;; Succ edge  16 (fallthru)
+;; Succ edge  17
+
+;; Start of basic block ( 15) -> 16
+;; Pred edge  15 (fallthru)
+(note 105 104 106 16 [bb 16] NOTE_INSN_BASIC_BLOCK)
+
+(insn 106 105 107 16 prog_stacksetup.c:121 (set (reg/f:DI 63 [ D.2740 ])
+        (symbol_ref/f:DI ("*.LC2") [flags 0x2] <string_cst 0x7fd3483b8e40>)) -1 (nil))
+
+(insn 107 106 108 16 prog_stacksetup.c:121 (parallel [
+            (set (reg:DI 101)
+                (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                    (const_int -1040 [0xfffffffffffffbf0])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+
+(insn 108 107 109 16 prog_stacksetup.c:121 (set (reg:DI 1 dx)
+        (const_int 8 [0x8])) -1 (nil))
+
+(insn 109 108 110 16 prog_stacksetup.c:121 (set (reg:DI 4 si)
+        (reg/f:DI 63 [ D.2740 ])) -1 (nil))
+
+(insn 110 109 111 16 prog_stacksetup.c:121 (set (reg:DI 5 di)
+        (reg:DI 101)) -1 (nil))
+
+(insn 111 110 112 16 prog_stacksetup.c:121 (set (reg:QI 0 ax)
+        (const_int 0 [0x0])) -1 (nil))
+
+(call_insn 112 111 113 16 prog_stacksetup.c:121 (set (reg:SI 0 ax)
+        (call (mem:QI (symbol_ref:DI ("sprintf") [flags 0x41] <function_decl 0x7fd34910a000 sprintf>) [0 S1 A8])
+            (const_int 0 [0x0]))) -1 (expr_list:REG_EH_REGION (const_int 0 [0x0])
+        (nil))
+    (expr_list:REG_DEP_TRUE (use (reg:QI 0 ax))
+        (expr_list:REG_DEP_TRUE (use (reg:DI 5 di))
+            (expr_list:REG_DEP_TRUE (use (reg:DI 4 si))
+                (expr_list:REG_DEP_TRUE (use (reg:DI 1 dx))
+                    (nil))))))
+
+(jump_insn 113 112 114 16 prog_stacksetup.c:121 (set (pc)
+        (label_ref 123)) -1 (nil))
+;; End of basic block 16 -> ( 18)
+
+;; Succ edge  18
+
+(barrier 114 113 115)
+
+;; Start of basic block ( 15) -> 17
+;; Pred edge  15
+(code_label 115 114 116 17 10 "" [1 uses])
+
+(note 116 115 117 17 [bb 17] NOTE_INSN_BASIC_BLOCK)
+
+(insn 117 116 118 17 prog_stacksetup.c:123 (set (reg/f:DI 62 [ D.2742 ])
+        (symbol_ref/f:DI ("*.LC3") [flags 0x2] <string_cst 0x7fd3483b8f00>)) -1 (nil))
+
+(insn 118 117 119 17 prog_stacksetup.c:123 (parallel [
+            (set (reg:DI 102)
+                (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                    (const_int -1040 [0xfffffffffffffbf0])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+
+(insn 119 118 120 17 prog_stacksetup.c:123 (set (reg:DI 1 dx)
+        (const_int 18 [0x12])) -1 (nil))
+
+(insn 120 119 121 17 prog_stacksetup.c:123 (set (reg:DI 4 si)
+        (reg/f:DI 62 [ D.2742 ])) -1 (nil))
+
+(insn 121 120 122 17 prog_stacksetup.c:123 (set (reg:DI 5 di)
+        (reg:DI 102)) -1 (nil))
+
+(call_insn 122 121 123 17 prog_stacksetup.c:123 (set (reg:DI 0 ax)
+        (call (mem:QI (symbol_ref:DI ("memcpy") [flags 0x41] <function_decl 0x7fd3490f9900 __builtin_memcpy>) [0 S1 A8])
+            (const_int 0 [0x0]))) -1 (expr_list:REG_EH_REGION (const_int 0 [0x0])
+        (nil))
+    (expr_list:REG_DEP_TRUE (use (reg:DI 5 di))
+        (expr_list:REG_DEP_TRUE (use (reg:DI 4 si))
+            (expr_list:REG_DEP_TRUE (use (reg:DI 1 dx))
+                (nil)))))
+;; End of basic block 17 -> ( 18)
+
+;; Succ edge  18 (fallthru)
+
+;; Start of basic block ( 14 16 17) -> 18
+;; Pred edge  14
+;; Pred edge  16
+;; Pred edge  17 (fallthru)
+(code_label 123 122 124 18 9 "" [2 uses])
+
+(note 124 123 125 18 [bb 18] NOTE_INSN_BASIC_BLOCK)
+
+(insn 125 124 126 18 prog_stacksetup.c:125 (set (reg/f:DI 61 [ D.2743 ])
+        (symbol_ref/f:DI ("*.LC4") [flags 0x2] <string_cst 0x7fd3483bc990>)) -1 (nil))
+
+(insn 126 125 127 18 prog_stacksetup.c:125 (set (reg/f:DI 60 [ D.2744 ])
+        (symbol_ref/f:DI ("*.LC5") [flags 0x2] <string_cst 0x7fd3483b8f80>)) -1 (nil))
+
+(insn 127 126 128 18 prog_stacksetup.c:125 (set (reg:DI 4 si)
+        (reg/f:DI 61 [ D.2743 ])) -1 (nil))
+
+(insn 128 127 129 18 prog_stacksetup.c:125 (set (reg:DI 5 di)
+        (reg/f:DI 60 [ D.2744 ])) -1 (nil))
+
+(call_insn 129 128 130 18 prog_stacksetup.c:125 (set (reg:DI 0 ax)
+        (call (mem:QI (symbol_ref:DI ("fopen") [flags 0x41] <function_decl 0x7fd348523300 fopen>) [0 S1 A8])
+            (const_int 0 [0x0]))) -1 (nil)
+    (expr_list:REG_DEP_TRUE (use (reg:DI 5 di))
+        (expr_list:REG_DEP_TRUE (use (reg:DI 4 si))
+            (nil))))
+
+(insn 130 129 131 18 prog_stacksetup.c:125 (set (reg/f:DI 59 [ f.3 ])
+        (reg:DI 0 ax)) -1 (nil))
+
+(insn 131 130 132 18 prog_stacksetup.c:125 (set (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1056 [0xfffffffffffffbe0])) [0 f+0 S8 A64])
+        (reg/f:DI 59 [ f.3 ])) -1 (nil))
+
+(insn 132 131 133 18 prog_stacksetup.c:125 (set (reg:CCZ 17 flags)
+        (compare:CCZ (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                    (const_int -1056 [0xfffffffffffffbe0])) [0 f+0 S8 A64])
+            (const_int 0 [0x0]))) -1 (nil))
+
+(jump_insn 133 132 134 18 prog_stacksetup.c:125 (set (pc)
+        (if_then_else (ne (reg:CCZ 17 flags)
+                (const_int 0 [0x0]))
+            (label_ref 138)
+            (pc))) -1 (nil))
+;; End of basic block 18 -> ( 19 20)
+
+;; Succ edge  19 (fallthru)
+;; Succ edge  20
+
+;; Start of basic block ( 18) -> 19
+;; Pred edge  18 (fallthru)
+(note 134 133 135 19 [bb 19] NOTE_INSN_BASIC_BLOCK)
+
+(insn 135 134 136 19 prog_stacksetup.c:126 (set (reg:SI 5 di)
+        (const_int 1 [0x1])) -1 (nil))
+
+(call_insn 136 135 137 19 prog_stacksetup.c:126 (call (mem:QI (symbol_ref:DI ("exit") [flags 0x41] <function_decl 0x7fd34911ac00 exit>) [0 S1 A8])
+        (const_int 0 [0x0])) -1 (expr_list:REG_NORETURN (const_int 0 [0x0])
+        (expr_list:REG_EH_REGION (const_int 0 [0x0])
+            (nil)))
+    (expr_list:REG_DEP_TRUE (use (reg:SI 5 di))
+        (nil)))
+;; End of basic block 19 -> ()
+
+
+(barrier 137 136 138)
+
+;; Start of basic block ( 18) -> 20
+;; Pred edge  18
+(code_label 138 137 139 20 11 "" [1 uses])
+
+(note 139 138 140 20 [bb 20] NOTE_INSN_BASIC_BLOCK)
+
+(insn 140 139 141 20 prog_stacksetup.c:127 (set (reg/f:DI 58 [ D.2748 ])
+        (symbol_ref/f:DI ("*.LC6") [flags 0x2] <string_cst 0x7fd3483bca20>)) -1 (nil))
+
+(insn 141 140 142 20 prog_stacksetup.c:127 (parallel [
+            (set (reg:DI 103)
+                (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                    (const_int -1040 [0xfffffffffffffbf0])))
+            (clobber (reg:CC 17 flags))
+        ]) -1 (nil))
+
+(insn 142 141 143 20 prog_stacksetup.c:127 (set (reg:DI 104)
+        (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1056 [0xfffffffffffffbe0])) [0 f+0 S8 A64])) -1 (nil))
+
+(insn 143 142 144 20 prog_stacksetup.c:127 (set (reg:DI 1 dx)
+        (reg:DI 103)) -1 (nil))
+
+(insn 144 143 145 20 prog_stacksetup.c:127 (set (reg:DI 4 si)
+        (reg/f:DI 58 [ D.2748 ])) -1 (nil))
+
+(insn 145 144 146 20 prog_stacksetup.c:127 (set (reg:DI 5 di)
+        (reg:DI 104)) -1 (nil))
+
+(insn 146 145 147 20 prog_stacksetup.c:127 (set (reg:QI 0 ax)
+        (const_int 0 [0x0])) -1 (nil))
+
+(call_insn 147 146 148 20 prog_stacksetup.c:127 (set (reg:SI 0 ax)
+        (call (mem:QI (symbol_ref:DI ("fprintf") [flags 0x41] <function_decl 0x7fd349101a00 fprintf>) [0 S1 A8])
+            (const_int 0 [0x0]))) -1 (nil)
+    (expr_list:REG_DEP_TRUE (use (reg:QI 0 ax))
+        (expr_list:REG_DEP_TRUE (use (reg:DI 5 di))
+            (expr_list:REG_DEP_TRUE (use (reg:DI 4 si))
+                (expr_list:REG_DEP_TRUE (use (reg:DI 1 dx))
+                    (nil))))))
+
+(insn 148 147 149 20 prog_stacksetup.c:128 (set (reg:DI 105)
+        (mem/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                (const_int -1056 [0xfffffffffffffbe0])) [0 f+0 S8 A64])) -1 (nil))
+
+(insn 149 148 150 20 prog_stacksetup.c:128 (set (reg:DI 5 di)
+        (reg:DI 105)) -1 (nil))
+
+(call_insn 150 149 151 20 prog_stacksetup.c:128 (set (reg:SI 0 ax)
+        (call (mem:QI (symbol_ref:DI ("fclose") [flags 0x41] <function_decl 0x7fd348523000 fclose>) [0 S1 A8])
+            (const_int 0 [0x0]))) -1 (nil)
+    (expr_list:REG_DEP_TRUE (use (reg:DI 5 di))
+        (nil)))
+
+(insn 151 150 152 20 prog_stacksetup.c:129 (set (reg:SI 5 di)
+        (const_int 0 [0x0])) -1 (nil))
+
+(call_insn 152 151 153 20 prog_stacksetup.c:129 (call (mem:QI (symbol_ref:DI ("exit") [flags 0x41] <function_decl 0x7fd34911ac00 exit>) [0 S1 A8])
+        (const_int 0 [0x0])) -1 (expr_list:REG_NORETURN (const_int 0 [0x0])
+        (expr_list:REG_EH_REGION (const_int 0 [0x0])
+            (nil)))
+    (expr_list:REG_DEP_TRUE (use (reg:SI 5 di))
+        (nil)))
+;; End of basic block 20 -> ()
+
+
+(barrier 153 152 167)
+
+;; Start of basic block () -> 21
+(note 167 153 156 21 [bb 21] NOTE_INSN_BASIC_BLOCK)
+
+(insn 156 167 157 21 prog_stacksetup.c:130 (clobber (reg/i:SI 0 ax)) -1 (nil))
+
+(insn 157 156 158 21 prog_stacksetup.c:130 (clobber (reg:SI 88 [ <result> ])) -1 (nil))
+
+(jump_insn 158 157 159 21 prog_stacksetup.c:130 (set (pc)
+        (label_ref 160)) -1 (nil))
+;; End of basic block 21 -> ( 23)
+
+;; Succ edge  23
+
+(barrier 159 158 154)
+
+;; Start of basic block () -> 22
+(code_label 154 159 168 22 1 "" [0 uses])
+
+(note 168 154 155 22 [bb 22] NOTE_INSN_BASIC_BLOCK)
+
+(insn 155 168 160 22 prog_stacksetup.c:130 (set (reg/i:SI 0 ax)
+        (reg:SI 88 [ <result> ])) -1 (nil))
+;; End of basic block 22 -> ( 23)
+
+;; Succ edge  23 (fallthru)
+
+;; Start of basic block ( 21 22) -> 23
+;; Pred edge  21
+;; Pred edge  22 (fallthru)
+(code_label 160 155 169 23 12 "" [1 uses])
+
+(note 169 160 161 23 [bb 23] NOTE_INSN_BASIC_BLOCK)
+
+(insn 161 169 162 23 prog_stacksetup.c:130 (parallel [
+            (set (reg:CCZ 17 flags)
+                (unspec:CCZ [
+                        (mem/v/f/c/i:DI (plus:DI (reg/f:DI 54 virtual-stack-vars)
+                                (const_int -8 [0xfffffffffffffff8])) [0 D.2750+0 S8 A64])
+                        (const_int 40 [0x28])
+                    ] 103))
+            (clobber (scratch:DI))
+        ]) -1 (nil))
+
+(jump_insn 162 161 170 23 prog_stacksetup.c:130 (set (pc)
+        (if_then_else (eq (reg:CCZ 17 flags)
+                (const_int 0 [0x0]))
+            (label_ref 165)
+            (pc))) -1 (nil))
+;; End of basic block 23 -> ( 25 24)
+
+;; Succ edge  25
+;; Succ edge  24 (fallthru)
+
+;; Start of basic block ( 23) -> 24
+;; Pred edge  23 (fallthru)
+(note 170 162 163 24 [bb 24] NOTE_INSN_BASIC_BLOCK)
+
+(call_insn 163 170 164 24 prog_stacksetup.c:130 (call (mem:QI (symbol_ref:DI ("__stack_chk_fail") [flags 0x41] <function_decl 0x7fd3483ca000 __stack_chk_fail>) [0 S1 A8])
+        (const_int 0 [0x0])) -1 (expr_list:REG_NORETURN (const_int 0 [0x0])
+        (expr_list:REG_EH_REGION (const_int 0 [0x0])
+            (nil)))
+    (nil))
+;; End of basic block 24 -> ()
+
+
+(barrier 164 163 165)
+
+;; Start of basic block ( 23) -> 25
+;; Pred edge  23
+(code_label 165 164 171 25 13 "" [1 uses])
+
+(note 171 165 166 25 [bb 25] NOTE_INSN_BASIC_BLOCK)
+
+(insn 166 171 0 25 prog_stacksetup.c:130 (use (reg/i:SI 0 ax)) -1 (nil))
+;; End of basic block 25 -> ( 1)
+
+;; Succ edge  EXIT [100.0%]  (fallthru)
+
diff --git a/buildtools/CPACK/tmp/prog_va_copy_test.c b/buildtools/CPACK/tmp/prog_va_copy_test.c
new file mode 100644 (file)
index 0000000..4eac6c6
--- /dev/null
@@ -0,0 +1,28 @@
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#define DO_VA_COPY(d, s) $1
+void test(char *str, ...)
+{
+    va_list ap, ap2;
+    int i;
+    va_start(ap, str);
+    DO_VA_COPY(ap2, ap);
+    for (i = 1; i <= 9; i++) {
+        int k = (int)va_arg(ap, int);
+        if (k != i)
+            abort();
+    }
+    DO_VA_COPY(ap, ap2);
+    for (i = 1; i <= 9; i++) {
+        int k = (int)va_arg(ap, int);
+        if (k != i)
+            abort();
+    }
+    va_end(ap);
+}
+int main(int argc, char *argv[])
+{
+    test("test", 1, 2, 3, 4, 5, 6, 7, 8, 9);
+    exit(0);
+}
diff --git a/buildtools/CPACK/tmp/prog_vsnprintf.c b/buildtools/CPACK/tmp/prog_vsnprintf.c
new file mode 100644 (file)
index 0000000..d33e3a7
--- /dev/null
@@ -0,0 +1,26 @@
+#include <stdio.h>
+#include <stdarg.h>
+
+int my_vsnprintf (char *buf, const char *tmpl, ...)
+{
+    int i;
+    va_list args;
+    va_start (args, tmpl);
+    i = vsnprintf (buf, 2, tmpl, args);
+    va_end (args);
+    return i;
+}
+
+int main(void)
+{
+    char bufs[5] = { 'x', 'x', 'x', '\0', '\0' };
+    char bufd[5] = { 'x', 'x', 'x', '\0', '\0' };
+    int i;
+    i = my_vsnprintf (bufs, "%s", "111");
+    if (strcmp (bufs, "1")) exit (1);
+    if (i != 3) exit (1);
+    i = my_vsnprintf (bufd, "%d", 111);
+    if (strcmp (bufd, "1")) exit (1);
+    if (i != 3) exit (1);
+    exit(0);
+}