// RUN: %clangxx -w -fsanitize=signed-integer-overflow,nullability-return,returns-nonnull-attribute -fsanitize-recover=all %s -o %t && %run %t 2>&1 | FileCheck %s

#include <stdint.h>
#include <stdio.h>

int *_Nonnull h() {
  // CHECK: nullability-return
  return NULL;
}

__attribute__((returns_nonnull))
int *i() {
  // CHECK: nonnull-return
  return NULL;
}

__attribute__((noinline))
int f(int x, int y) {
  // CHECK: mul-overflow
  return x * y;
}

__attribute__((noinline))
int g(int x, int y) {
  // CHECK: mul-overflow
  return x * (y + 1);
}

int main() {
  h();
  i();
  int x = 2;
  for (int i = 0; i < 10; ++i)
    x = f(x, x);
  x = 2;
  for (int i = 0; i < 10; ++i)
    x = g(x, x);
  // CHECK-NOT: mul-overflow
}
