| // 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}} |
| }; |