1*0f43b929SPeter Collingbourne // REQUIRES: android 2*0f43b929SPeter Collingbourne 3*0f43b929SPeter Collingbourne // Tests that ubsan can detect errors on Android if libc appears before the 4*0f43b929SPeter Collingbourne // runtime in the library search order, which means that we cannot intercept 5*0f43b929SPeter Collingbourne // symbols. 6*0f43b929SPeter Collingbourne 7*0f43b929SPeter Collingbourne // RUN: %clangxx %p/Inputs/no-interception-dso.c -fsanitize=undefined -fPIC -shared -o %dynamiclib %ld_flags_rpath_so 8*0f43b929SPeter Collingbourne 9*0f43b929SPeter Collingbourne // Make sure that libc is first in DT_NEEDED. 10*0f43b929SPeter Collingbourne // RUN: %clangxx %s -lc -o %t %ld_flags_rpath_exe 11*0f43b929SPeter Collingbourne // RUN: %run %t 2>&1 | FileCheck %s 12*0f43b929SPeter Collingbourne 13*0f43b929SPeter Collingbourne #include <limits.h> 14*0f43b929SPeter Collingbourne 15*0f43b929SPeter Collingbourne int dso_function(int); 16*0f43b929SPeter Collingbourne main(int argc,char ** argv)17*0f43b929SPeter Collingbourneint main(int argc, char **argv) { 18*0f43b929SPeter Collingbourne // CHECK: signed integer overflow 19*0f43b929SPeter Collingbourne dso_function(INT_MAX); 20*0f43b929SPeter Collingbourne } 21