-# Copyright 2018-2019 Free Software Foundation, Inc.
+# Copyright 2018-2020 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
unsigned a_int3 = alignof (int[3]);
+#if !defined (__clang__)
unsigned a_void = alignof (void);
+#endif
struct base { char c; };
struct derived : public virtual base { int i; };
set expected [get_integer_valueof a_int3 0]
gdb_test "print alignof(int\[3\])" " = $expected"
-set expected [get_integer_valueof a_void 0]
+
+# As an extension, GCC allows void pointer arithmetic, with
+# sizeof(void) and alignof(void) both 1. This test checks
+# GDB's support of GCC's extension.
+if [test_compiler_info clang*] {
+ # Clang doesn't support GCC's extension.
+ set expected 1
+} else {
+ set expected [get_integer_valueof a_void 0]
+}
gdb_test "print alignof(void)" " = $expected"