Changes the default Windows target triple returned by GetHostTriple.cmake from the old environment names (which we wanted to move away from) to newer, normalized ones. This also requires updating all tests to use the new systems names in constraints. Differential Revision: https://reviews.llvm.org/D47381 llvm-svn: 339307
45 lines
1.3 KiB
C++
45 lines
1.3 KiB
C++
// RUN: %clangxx -w -fsanitize=bool %s -o %t
|
|
// RUN: %run %t 2>&1 | FileCheck %s
|
|
|
|
// __ubsan_on_report is not defined as weak. Redefining it here isn't supported
|
|
// on Windows.
|
|
//
|
|
// UNSUPPORTED: windows-msvc
|
|
// Linkage issue
|
|
// XFAIL: openbsd
|
|
|
|
#include <cstdio>
|
|
|
|
extern "C" {
|
|
void __ubsan_get_current_report_data(const char **OutIssueKind,
|
|
const char **OutMessage,
|
|
const char **OutFilename,
|
|
unsigned *OutLine, unsigned *OutCol,
|
|
char **OutMemoryAddr);
|
|
|
|
// Override the definition of __ubsan_on_report from the runtime, just for
|
|
// testing purposes.
|
|
void __ubsan_on_report(void) {
|
|
const char *IssueKind, *Message, *Filename;
|
|
unsigned Line, Col;
|
|
char *Addr;
|
|
__ubsan_get_current_report_data(&IssueKind, &Message, &Filename, &Line, &Col,
|
|
&Addr);
|
|
|
|
printf("Issue: %s\n", IssueKind);
|
|
printf("Location: %s:%u:%u\n", Filename, Line, Col);
|
|
printf("Message: %s\n", Message);
|
|
|
|
(void)Addr;
|
|
}
|
|
}
|
|
|
|
int main() {
|
|
char C = 3;
|
|
bool B = *(bool *)&C;
|
|
// CHECK: Issue: invalid-bool-load
|
|
// CHECK-NEXT: Location: {{.*}}monitor.cpp:[[@LINE-2]]:12
|
|
// CHECK-NEXT: Message: Load of value 3, which is not a valid value for type 'bool'
|
|
return 0;
|
|
}
|