16eed7e7eSNico Weber // FIXME: https://code.google.com/p/address-sanitizer/issues/detail?id=316
26eed7e7eSNico Weber // XFAIL: android
36eed7e7eSNico Weber 
46eed7e7eSNico Weber // The globs below do not work in the lit shell.
56eed7e7eSNico Weber // REQUIRES: shell
66eed7e7eSNico Weber 
76eed7e7eSNico Weber // RUN: %clangxx -fsanitize=undefined %s -O1 -o %t
86eed7e7eSNico Weber 
96eed7e7eSNico Weber // Regular run.
106eed7e7eSNico Weber // RUN: %run %t -4 2> %t.out
116eed7e7eSNico Weber // RUN: FileCheck %s --check-prefix=CHECK-ERROR < %t.out
126eed7e7eSNico Weber 
136eed7e7eSNico Weber // Good log_path.
146eed7e7eSNico Weber // RUN: rm -f %t.log.*
156eed7e7eSNico Weber // RUN: %device_rm -f '%t.log.*'
166eed7e7eSNico Weber // RUN: %env_ubsan_opts=log_path='"%t.log"' %run %t -4 2> %t.out
176eed7e7eSNico Weber // RUN: FileCheck %s --check-prefix=CHECK-ERROR < %t.log.*
186eed7e7eSNico Weber 
196eed7e7eSNico Weber // Run w/o errors should not produce any log.
206eed7e7eSNico Weber // RUN: rm -f %t.log.*
216eed7e7eSNico Weber // RUN: %device_rm -f '%t.log.*'
226eed7e7eSNico Weber // RUN: %env_ubsan_opts=log_path='"%t.log"'  %run %t 4
236eed7e7eSNico Weber // RUN: not cat %t.log.*
246eed7e7eSNico Weber 
256eed7e7eSNico Weber // FIXME: log_path is not supported on Windows yet.
266eed7e7eSNico Weber // XFAIL: windows-msvc
276eed7e7eSNico Weber 
28*b63ca0a0SRainer Orth // Issue #41838
29*b63ca0a0SRainer Orth // XFAIL: sparc-target-arch && solaris
30*b63ca0a0SRainer Orth 
316eed7e7eSNico Weber #include <stdio.h>
326eed7e7eSNico Weber #include <stdlib.h>
main(int argc,char * argv[])336eed7e7eSNico Weber int main(int argc, char *argv[]) {
346eed7e7eSNico Weber   double a = atof(argv[1]);
356eed7e7eSNico Weber   unsigned int ai = (unsigned int) a;
366eed7e7eSNico Weber   printf("%f %u\n", a, ai);
376eed7e7eSNico Weber   return 0;
386eed7e7eSNico Weber }
396eed7e7eSNico Weber 
406eed7e7eSNico Weber // CHECK-ERROR: runtime error: -4 is outside the range of representable values of type 'unsigned int'
416eed7e7eSNico Weber 
42