@@ -161,8 +161,10 @@ else
161161 STACKDIR=` echo " #include <stdlib.h>#include <stdio.h>void a2(int *a, int b, int c) { printf(\\ " %d\\ " , (int)((&b - a) / abs(&b - a))); }void a1(int a) { a2(&a,a+4,a+2); }int main() { a1(9); return 0; }" > $AC && $CCEX && $AOUT && rm -f $AOUT `
162162 fi
163163 # ARGDIR=`echo "#include <stdio.h>void a2(int *a, int b, int c) { printf(\\"%d\\", (int)(&c - &b)); }void a1(int a) { a2(&a,a+4,a+2); }int main() { a1(9); return 0; }" > $AC && $CCEX && $AOUT && rm -f $AOUT`
164- HAVE_ASAN=` echo " #include <stdio.h>__attribute__((no_address_safety_analysis)) int main() { puts(\\ " 1\\ " ); return 0; }" > $AC && $CCEX -Werror 3ドル 2>&1 && $AOUT && rm -f $AOUT `
164+ HAVE_ASAN=` echo " #include <stdio.h>__attribute__((no_address_safety_analysis)) int main() { puts(\\ " 1\\ " ); return 0; }" > $AC && $CCEX -Werror 3ドル 2>&1 && $AOUT && rm -f $AOUT `
165165 if [ " $HAVE_ASAN " = " 1" ]; then HAVE_ASAN=1; else HAVE_ASAN=0; fi
166+ HAVE_ATTRIBUTE_ELEMENT_COUNT=` echo " #include <stdio.h>struct{int size;int flex[] __attribute__((__element_count__(siz)));}x;int main() { puts(\\ " 1\\ " ); return 0; }" > $AC && $CCEX -Werror 3ドル 2>&1 && $AOUT && rm -f $AOUT `
167+ if [ " $HAVE_ATTRIBUTE_ELEMENT_COUNT " = " 1" ]; then HAVE_ATTRIBUTE_ELEMENT_COUNT=1; else HAVE_ATTRIBUTE_ELEMENT_COUNT=0; fi
166168 else
167169 # hard coded win32 values
168170 if [ " $JIT_X86_64 " != " " -o " $JIT_AMD64 " != " " ]; then
186188 fi
187189 STACKDIR=" -1"
188190 HAVE_ASAN=" 0"
191+ HAVE_ATTRIBUTE_ELEMENT_COUNT=" 0"
189192 fi
190193
191194 echo " #define POTION_PLATFORM \" $TARGET \" "
203206 echo " #define POTION_STACK_DIR $STACKDIR "
204207 # echo "#define POTION_ARGS_DIR $ARGDIR"
205208 echo " #define HAVE_ASAN_ATTR $HAVE_ASAN "
209+ echo " #define HAVE_ATTRIBUTE_ELEMENT_COUNT $HAVE_ATTRIBUTE_ELEMENT_COUNT "
206210 echo " #ifndef SANDBOX"
207211 echo " #define WITH_EXTERN 1"
208212 echo " #endif"
0 commit comments