// 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 {} @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