+2019-01-08 Iain Sandoe <iain@sandoe.co.uk>
+
+ * c-c++-common/builtin-has-attribute-3.c: Skip tests requiring symbol
+ alias support.
+ * c-c++-common/builtin-has-attribute-4.c: Likewise.
+ Append match for warning that ‘protected’ attribute is not supported.
+
2019-01-08 Iain Sandoe <iain@sandoe.co.uk>
* gcc.dg/Wmissing-attributes.c: Require alias support.
/* Verify __builtin_has_attribute return value for functions.
{ dg-do compile }
{ dg-options "-Wall -ftrack-macro-expansion=0" }
- { dg-options "-Wall -Wno-narrowing -Wno-unused-local-typedefs -ftrack-macro-expansion=0" { target c++ } } */
+ { dg-options "-Wall -Wno-narrowing -Wno-unused-local-typedefs -ftrack-macro-expansion=0" { target c++ } }
+ { dg-additional-options "-DSKIP_ALIAS" { target *-*-darwin* } }
+*/
#define ATTR(...) __attribute__ ((__VA_ARGS__))
#endif
ATTR (noreturn) void fnoreturn (void) { __builtin_abort (); }
+#ifndef SKIP_ALIAS
ATTR (alias ("fnoreturn")) void falias (void);
+#endif
#define A(expect, sym, attr) \
typedef int Assert [1 - 2 * !(__builtin_has_attribute (sym, attr) == expect)]
A (1, fmalloc_size_3, malloc);
}
-
+#ifndef SKIP_ALIAS
void test_alias (void)
{
A (0, fnoreturn, alias);
A (0, falias, alias ("falias"));
A (0, falias, alias ("fnone"));
}
-
+#endif
void test_cold_hot (void)
{
/* Verify __builtin_has_attribute return value for variables.
{ dg-do compile }
{ dg-options "-Wall -ftrack-macro-expansion=0" }
- { dg-options "-Wall -Wno-narrowing -Wno-unused -ftrack-macro-expansion=0" { target c++ } } */
+ { dg-options "-Wall -Wno-narrowing -Wno-unused -ftrack-macro-expansion=0" { target c++ } }
+ { dg-additional-options "-DSKIP_ALIAS" { target *-*-darwin* } }
+*/
#define ATTR(...) __attribute__ ((__VA_ARGS__))
}
+#ifndef SKIP_ALIAS
int vtarget;
extern ATTR (alias ("vtarget")) int valias;
A (1, valias, alias ("vtarget"));
A (0, valias, alias ("vnone"));
}
-
+#endif
void test_cleanup (void)
{
A (1, var_init_weak, weak);
A (1, var_uninit_weak, weak);
-}
+} /* { dg-warning "protected visibility attribute not supported" "" { target { *-*-darwin* } } } */
/* { dg-prune-output "specifies less restrictive attribute" } */