// RUN: %clang_cc1 %s -emit-llvm -triple x86_64-apple-darwin -fobjc-fragile-abi -o - | FileCheck %s
// Bitfield references must not touch memory outside of the enclosing
// struct.   Radar 7639995
typedef signed char BOOL;
@protocol NSObject
- (id)init;
@end
@interface NSObject <NSObject> {}
@end
@interface IMAVChatParticipant : NSObject {
  int _ardRole;
  int _state;
  int _avRelayStatus;
  int _chatEndedReason;
  int _chatError;
  unsigned _sendingAudio:1;
  unsigned _sendingVideo:1;
  unsigned _sendingAuxVideo:1;
  unsigned _audioMuted:1;
  unsigned _videoPaused:1;
  unsigned _networkStalled:1;
  unsigned _isInitiator:1;
  unsigned _isAOLInterop:1;
  unsigned _isRecording:1;
  unsigned _isUsingICE:1;
}
@end
@implementation IMAVChatParticipant
- (id) init {
  self = [super init];
  if ( self ) {
    BOOL blah = (BOOL)1;
    // We're expecting these three bitfield assignments will generate i8 stores.
    _sendingAudio = (BOOL)1;
    _isUsingICE = (BOOL)1;
    _isUsingICE = blah;
    // CHECK: store i8
    // CHECK: store i8
    // CHECK: store i8
  }
  return self;
}
@end
