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 Collingbourne int main(int argc, char **argv) {
18*0f43b929SPeter Collingbourne   // CHECK: signed integer overflow
19*0f43b929SPeter Collingbourne   dso_function(INT_MAX);
20*0f43b929SPeter Collingbourne }
21