12af552f98f980178db37eed28a609b6bf55f6df8Will Dietz// RUN: %clang -fsanitize=undefined %s -o %t && %t 2>&1 | FileCheck %s 22af552f98f980178db37eed28a609b6bf55f6df8Will Dietz// Verify deduplication works by ensuring only one diag is emitted. 32af552f98f980178db37eed28a609b6bf55f6df8Will Dietz#include <limits.h> 42af552f98f980178db37eed28a609b6bf55f6df8Will Dietz#include <stdio.h> 52af552f98f980178db37eed28a609b6bf55f6df8Will Dietz 62af552f98f980178db37eed28a609b6bf55f6df8Will Dietzvoid overflow() { 72af552f98f980178db37eed28a609b6bf55f6df8Will Dietz int i = INT_MIN; 82af552f98f980178db37eed28a609b6bf55f6df8Will Dietz --i; 92af552f98f980178db37eed28a609b6bf55f6df8Will Dietz} 102af552f98f980178db37eed28a609b6bf55f6df8Will Dietz 112af552f98f980178db37eed28a609b6bf55f6df8Will Dietzint main() { 122af552f98f980178db37eed28a609b6bf55f6df8Will Dietz // CHECK: Start 132af552f98f980178db37eed28a609b6bf55f6df8Will Dietz fprintf(stderr, "Start\n"); 142af552f98f980178db37eed28a609b6bf55f6df8Will Dietz 152af552f98f980178db37eed28a609b6bf55f6df8Will Dietz // CHECK: runtime error 162af552f98f980178db37eed28a609b6bf55f6df8Will Dietz // CHECK-NOT: runtime error 172af552f98f980178db37eed28a609b6bf55f6df8Will Dietz // CHECK-NOT: runtime error 182af552f98f980178db37eed28a609b6bf55f6df8Will Dietz overflow(); 192af552f98f980178db37eed28a609b6bf55f6df8Will Dietz overflow(); 202af552f98f980178db37eed28a609b6bf55f6df8Will Dietz overflow(); 212af552f98f980178db37eed28a609b6bf55f6df8Will Dietz 222af552f98f980178db37eed28a609b6bf55f6df8Will Dietz // CHECK: End 232af552f98f980178db37eed28a609b6bf55f6df8Will Dietz fprintf(stderr, "End\n"); 242af552f98f980178db37eed28a609b6bf55f6df8Will Dietz return 0; 252af552f98f980178db37eed28a609b6bf55f6df8Will Dietz} 26