// are different. It currently does so because bitset names have global scope
// so we have to mangle the file path into the bitset name.
+// REQUIRES: cxxabi
+
#include <stdio.h>
#include "utils.h"
// Tests that the CFI enforcement detects bad casts.
+// REQUIRES: cxxabi
+
#include <stdio.h>
#include "utils.h"
// Tests that the CFI mechanism is sensitive to multiple inheritance and only
// permits calls via virtual tables for the correct base class.
+// REQUIRES: cxxabi
+
#include <stdio.h>
#include "utils.h"
// call to an object of the wrong class, by casting a pointer to such an object
// and attempting to make a call through it.
+// REQUIRES: cxxabi
+
#include <stdio.h>
#include "utils.h"
// any class, by manually overwriting the virtual table of an object and
// attempting to make a call through it.
+// REQUIRES: cxxabi
+
#include <stdio.h>
#include "utils.h"
// to an object of the wrong class but with a compatible vtable, by casting a
// pointer to such an object and attempting to make a call through it.
+// REQUIRES: cxxabi
+
#include <stdio.h>
#include "utils.h"
// Tests that the CFI enforcement also applies to virtual destructor calls made
// via 'delete'.
+// REQUIRES: cxxabi
+
#include <stdio.h>
#include "utils.h"