// RUN: %llvmgcc %s -m64 -S -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
