blob: 5b45f0b6f8479af6985b10aae4456637f95d9b1a [file] [log] [blame]
Pirama Arumuga Nainarcdce50b2015-07-01 12:26:56 -07001// FIXME: https://code.google.com/p/address-sanitizer/issues/detail?id=316
2// XFAIL: android
3
Pirama Arumuga Nainar799172d2016-03-03 15:50:30 -08004// The globs below do not work in the lit shell.
5// REQUIRES: shell
6
Pirama Arumuga Nainarcdce50b2015-07-01 12:26:56 -07007// RUN: %clangxx -fsanitize=undefined %s -O1 -o %t
8
9// Regular run.
10// RUN: %run %t -4 2> %t.out
11// RUN: FileCheck %s --check-prefix=CHECK-ERROR < %t.out
12
13// Good log_path.
14// RUN: rm -f %t.log.*
Pirama Arumuga Nainar799172d2016-03-03 15:50:30 -080015// RUN: %env_ubsan_opts=log_path='"%t.log"' %run %t -4 2> %t.out
Pirama Arumuga Nainarcdce50b2015-07-01 12:26:56 -070016// RUN: FileCheck %s --check-prefix=CHECK-ERROR < %t.log.*
17
18// Run w/o errors should not produce any log.
19// RUN: rm -f %t.log.*
Pirama Arumuga Nainar799172d2016-03-03 15:50:30 -080020// RUN: %env_ubsan_opts=log_path='"%t.log"' %run %t 4
Pirama Arumuga Nainarcdce50b2015-07-01 12:26:56 -070021// RUN: not cat %t.log.*
22
23// FIXME: log_path is not supported on Windows yet.
24// XFAIL: win32
25
26#include <stdio.h>
27#include <stdlib.h>
28int main(int argc, char *argv[]) {
29 double a = atof(argv[1]);
30 unsigned int ai = (unsigned int) a;
31 printf("%f %u\n", a, ai);
32 return 0;
33}
34
35// CHECK-ERROR: runtime error: value -4 is outside the range of representable values of type 'unsigned int'
36