125b3c049e70834cf33790a28643ab058b507b35cBen Cheng// RUN: %clang_cc1 -fsyntax-only -pedantic -verify %s 225b3c049e70834cf33790a28643ab058b507b35cBen Cheng// RUN: cp %s %t 325b3c049e70834cf33790a28643ab058b507b35cBen Cheng// RUN: not %clang_cc1 -pedantic -fixit -x c %t 425b3c049e70834cf33790a28643ab058b507b35cBen Cheng// RUN: %clang_cc1 -pedantic -Werror -x c %t 525b3c049e70834cf33790a28643ab058b507b35cBen Cheng 625b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* This is a test of the various code modification hints that are 725b3c049e70834cf33790a28643ab058b507b35cBen Cheng provided as part of warning or extension diagnostics. All of the 825b3c049e70834cf33790a28643ab058b507b35cBen Cheng warnings will be fixed by -fixit, and the resulting file should 925b3c049e70834cf33790a28643ab058b507b35cBen Cheng compile cleanly with -Werror -pedantic. */ 1025b3c049e70834cf33790a28643ab058b507b35cBen Cheng 1125b3c049e70834cf33790a28643ab058b507b35cBen Chengstruct s; // expected-note{{previous use is here}} 1225b3c049e70834cf33790a28643ab058b507b35cBen Cheng 1325b3c049e70834cf33790a28643ab058b507b35cBen Chengunion s *s1; // expected-error{{use of 's' with tag type that does not match previous declaration}} 1425b3c049e70834cf33790a28643ab058b507b35cBen Cheng 1525b3c049e70834cf33790a28643ab058b507b35cBen Chengstruct Point { 1625b3c049e70834cf33790a28643ab058b507b35cBen Cheng float x, y, z; 1725b3c049e70834cf33790a28643ab058b507b35cBen Cheng}; 1825b3c049e70834cf33790a28643ab058b507b35cBen Cheng 1925b3c049e70834cf33790a28643ab058b507b35cBen Chengstruct Point *get_origin(); 2025b3c049e70834cf33790a28643ab058b507b35cBen Cheng 2125b3c049e70834cf33790a28643ab058b507b35cBen Chengvoid test_point() { 2225b3c049e70834cf33790a28643ab058b507b35cBen Cheng (void)get_origin->x; // expected-error {{base of member reference is a function; perhaps you meant to call it with no arguments?}} 2325b3c049e70834cf33790a28643ab058b507b35cBen Cheng} 2425b3c049e70834cf33790a28643ab058b507b35cBen Cheng