- int failed = 0;
-
- for (const auto &f : gdbarch_tests)
- {
- const char **arches = gdbarch_printable_names ();
-
- for (int i = 0; arches[i] != NULL; i++)
- {
- if (strcmp ("fr300", arches[i]) == 0)
- {
- /* PR 20946 */
- continue;
- }
- else if (strcmp ("powerpc:EC603e", arches[i]) == 0
- || strcmp ("powerpc:e500mc", arches[i]) == 0
- || strcmp ("powerpc:e500mc64", arches[i]) == 0
- || strcmp ("powerpc:titan", arches[i]) == 0
- || strcmp ("powerpc:vle", arches[i]) == 0
- || strcmp ("powerpc:e5500", arches[i]) == 0
- || strcmp ("powerpc:e6500", arches[i]) == 0)
- {
- /* PR 19797 */
- continue;
- }
-
- QUIT;
-
- TRY
- {
- struct gdbarch_info info;
-
- gdbarch_info_init (&info);
- info.bfd_arch_info = bfd_scan_arch (arches[i]);
-
- struct gdbarch *gdbarch = gdbarch_find_by_info (info);
- SELF_CHECK (gdbarch != NULL);
- f (gdbarch);
- }
- CATCH (ex, RETURN_MASK_ERROR)
- {
- ++failed;
- exception_fprintf (gdb_stderr, ex,
- _("Self test failed: arch %s: "), arches[i]);
- }
- END_CATCH
-
- /* Clear GDB internal state. */
- registers_changed ();
- reinit_frame_cache ();
- }
- }
-
- SELF_CHECK (failed == 0);