// RUN: %clang_cc1 -fsyntax-only -verify -triple x86_64-linux-gnu %s #define NODEREF __attribute__((noderef)) void Func() { int NODEREF i; // expected-warning{{'noderef' can only be used on an array or pointer type}} int NODEREF *i_ptr; // There should be no difference whether a macro defined type is used or not. auto __attribute__((noderef)) *auto_i_ptr = i_ptr; auto __attribute__((noderef)) auto_i = i; // expected-warning{{'noderef' can only be used on an array or pointer type}} auto NODEREF *auto_i_ptr2 = i_ptr; auto NODEREF auto_i2 = i; // expected-warning{{'noderef' can only be used on an array or pointer type}} } // Added test for fix for P41835 #define _LIBCPP_FLOAT_ABI __attribute__((pcs("aapcs"))) struct A { _LIBCPP_FLOAT_ABI int operator()() throw(); // expected-warning{{'pcs' calling convention is not supported for this target}} };