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