Skip to content

Commit cd8924e

Browse files
committed
tests: skip varargs in function_pointers.c on aarch64
1 parent 2f3cd23 commit cd8924e

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

tests/pointers/src/function_pointers.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,18 @@ int negintval(const char c) { return -c; }
1616

1717
int varargs_intval(const char c, ...) { return c; }
1818

19+
// See #1281. Varargs don't yet work on aarch64.
20+
#ifndef __aarch64__
21+
1922
int varargs_fp(const int c, ...) {
2023
va_list arg;
2124
va_start(arg, c);
2225
char_to_int *fp = va_arg(arg, char_to_int *);
2326
return fp((char)c);
2427
}
2528

29+
#endif
30+
2631
void entry3(const unsigned sz, int buffer[const]) {
2732
int i = 0;
2833

@@ -68,9 +73,11 @@ void entry3(const unsigned sz, int buffer[const]) {
6873
j = p4 != 0;
6974
j = 0 != p4;
7075

76+
#ifndef __aarch64__
7177
va_char_to_int_fp p8 = varargs_intval;
7278
buffer[i++] = p8('A');
7379
buffer[i++] = (*p8)('B', 'C');
80+
#endif
7481

7582
// Test valid casts between function pointers
7683
// with additional parameters
@@ -90,6 +97,8 @@ void entry3(const unsigned sz, int buffer[const]) {
9097
buffer[i++] = (*(s).fn)(('a'));
9198

9299
buffer[i++] = p2 == intval;
100+
#ifndef __aarch64__
93101
buffer[i++] = varargs_fp('a', intval);
94102
buffer[i++] = varargs_fp('b', p2);
103+
#endif
95104
}

0 commit comments

Comments
 (0)