1 // RUN: %clangxx_hwasan -fsanitize=cfi -fno-sanitize-trap=cfi -flto -fvisibility=hidden %s -o %t
2 // RUN: not %run %t 2>&1 | FileCheck %s
3 
4 // REQUIRES: android
5 
6 // Smoke test for CFI + HWASAN.
7 
8 struct A {
9   virtual void f();
10 };
11 
f()12 void A::f() {}
13 
main()14 int main() {
15   // CHECK: control flow integrity check for type {{.*}} failed during cast to unrelated type
16   A *a = reinterpret_cast<A *>(reinterpret_cast<void *>(&main));
17   (void)a;
18 }
19