# Check that we detect re-optimization attempt.

# This test uses the clang driver without target flags and will only succeed
# on Linux systems where the host triple matches the target.
REQUIRES: system-linux

RUN: %clang %cflags %S/Inputs/icf-jump-tables.c -o %t.exe
RUN: llvm-bolt %t.exe -o %t 2>&1 > /dev/null
RUN: not llvm-bolt %t -o %t.bolt 2>&1 | FileCheck %s

CHECK: BOLT-ERROR: input file was processed by BOLT. Cannot re-optimize.
