xref: /minix3/external/bsd/llvm/dist/clang/test/Sema/varargs_unreachable.c (revision f4a2713ac843a11c696ec80c0a5e3e5d80b4d338)
1*f4a2713aSLionel Sambuc // RUN: %clang_cc1 -fsyntax-only -verify %s -triple x86_64-apple-darwin9
2*f4a2713aSLionel Sambuc // expected-no-diagnostics
3*f4a2713aSLionel Sambuc 
4*f4a2713aSLionel Sambuc // From <rdar://problem/12322000>.  Do not warn about undefined behavior of parameter
5*f4a2713aSLionel Sambuc // argument types in unreachable code in a macro.
6*f4a2713aSLionel Sambuc #define VA_ARG_RDAR12322000(Marker, TYPE)         ((sizeof (TYPE) < sizeof (UINTN_RDAR12322000)) ? (TYPE)(__builtin_va_arg (Marker, UINTN_RDAR12322000)) : (TYPE)(__builtin_va_arg (Marker, TYPE)))
7*f4a2713aSLionel Sambuc 
8*f4a2713aSLionel Sambuc // 64-bit system
9*f4a2713aSLionel Sambuc typedef unsigned long long  UINTN_RDAR12322000;
10*f4a2713aSLionel Sambuc 
test_VA_ARG_RDAR12322000(__builtin_va_list Marker)11*f4a2713aSLionel Sambuc int test_VA_ARG_RDAR12322000 (__builtin_va_list Marker)
12*f4a2713aSLionel Sambuc {
13*f4a2713aSLionel Sambuc   return VA_ARG_RDAR12322000 (Marker, short); // no-warning
14*f4a2713aSLionel Sambuc }