// RUN: %clang_cc1 -S -emit-llvm -debug-info-kind=limited %s -o - | FileCheck %s
// Checks debug info for properties from class extensions for a few cases.
// Readonly property in interface made readwrite in a category, with @impl
// The interesting bit is that when the ivar debug info is generated, the corresponding
// property is looked up and also gets debug info. If the debug info from the interface's
// declaration and from the ivar doesn't match, this will end up with two DIObjCProperty
// entries which would be bad.
// Simple property from a class extension:
// There's intentionally no @implementation for Foo, because that would
// generate debug info for the property via the backing ivar.
// Readonly property in interface made readwrite in a category:
// This references types in this file to force emission of their debug info.
void