187c300738174924453648c3b2d6f366c8284fac4Douglas Gregor// RUN: %clang_cc1 %s -fsyntax-only -verify 28e8fb3be5bd78f0564444eca02b404566a5f3b5dAndy Gibbs// expected-no-diagnostics 35f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer 45f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer// Test the X can be overloaded inside the struct. 55f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencertypedef int X; 65f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencerstruct Y { short X; }; 75f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer 8f26d510f49ddcd1a35e4e9af8978c5b6cb7099c2Chris Lattner// Variable shadows type, PR3872 9f26d510f49ddcd1a35e4e9af8978c5b6cb7099c2Chris Lattner 10f26d510f49ddcd1a35e4e9af8978c5b6cb7099c2Chris Lattnertypedef struct foo { int x; } foo; 11f26d510f49ddcd1a35e4e9af8978c5b6cb7099c2Chris Lattnervoid test() { 12f26d510f49ddcd1a35e4e9af8978c5b6cb7099c2Chris Lattner foo *foo; 13f26d510f49ddcd1a35e4e9af8978c5b6cb7099c2Chris Lattner foo->x = 0; 14f26d510f49ddcd1a35e4e9af8978c5b6cb7099c2Chris Lattner} 15f26d510f49ddcd1a35e4e9af8978c5b6cb7099c2Chris Lattner 16