12d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines// RUN: %clangxx -fsanitize=undefined %s -o %t && %run %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"); 14799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar fflush(stderr); 152af552f98f980178db37eed28a609b6bf55f6df8Will Dietz 162af552f98f980178db37eed28a609b6bf55f6df8Will Dietz // CHECK: runtime error 172af552f98f980178db37eed28a609b6bf55f6df8Will Dietz // CHECK-NOT: runtime error 182af552f98f980178db37eed28a609b6bf55f6df8Will Dietz // CHECK-NOT: runtime error 192af552f98f980178db37eed28a609b6bf55f6df8Will Dietz overflow(); 202af552f98f980178db37eed28a609b6bf55f6df8Will Dietz overflow(); 212af552f98f980178db37eed28a609b6bf55f6df8Will Dietz overflow(); 222af552f98f980178db37eed28a609b6bf55f6df8Will Dietz 232af552f98f980178db37eed28a609b6bf55f6df8Will Dietz // CHECK: End 242af552f98f980178db37eed28a609b6bf55f6df8Will Dietz fprintf(stderr, "End\n"); 252af552f98f980178db37eed28a609b6bf55f6df8Will Dietz return 0; 262af552f98f980178db37eed28a609b6bf55f6df8Will Dietz} 27