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 Sambucint 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 }