blob: 9cbce5d8fd8007136f1550c79cd4a0097c848d95 [file] [log] [blame]
#include <stdlib.h>
#include <stdio.h>
#import <Foundation/NSObject.h>
@interface class_o_bitfields: NSObject {
unsigned _wasSearchActive:1;
unsigned _wasSearchBarFirstResponder:1;
unsigned _isOutgoingMailbox:1;
unsigned _isDraftsMailbox:1;
unsigned _isEditableMailbox:1;
unsigned _isOutbox:1;
unsigned _inEditMode:1;
unsigned _messageLayerShouldPurge:1;
unsigned _isShowingSwipeDeleteConfirmation:1;
unsigned _settingSearchText:1;
unsigned _isDismissing:1;
unsigned _shouldSelectInitialMessage:1;
unsigned _shouldKeepSelectionVisible:2;
unsigned _searchResultsTableViewIsLoaded:1;
unsigned _currentMessageOutsideSearchResults:1;
unsigned _savedContentOffsetIsValid:1;
unsigned _userChoseSearchType:1;
unsigned _isDeletingMessages:1;
unsigned _anySourceSupportsSearch:1;
unsigned _isMovingAllMessages:1;
unsigned _isMarkingMessages:1;
unsigned _isShowingMainLoadMoreButton:1;
unsigned _isShowingSearchLoadMoreButton:1;
unsigned _isThreadedMCVC:1;
unsigned _willPop:1;
unsigned _shouldFadeOutSelectionOnDisappear:1;
unsigned _didFadeOutSelectionOnDisappear:1;
unsigned _preventNextScrollbarFlash:1;
unsigned _preventScrollOnNextAppear:1;
unsigned _preventMessageSelection:1;
unsigned _ignoringUserInteractionForDelete:1;
unsigned _ignoringUserInteractionForDraftRefresh:1;
unsigned _useSpecialDeleteAnimation:1;
@public
unsigned _deselectingDeletedRow:1;
unsigned _isDismissingActionSheet:1;
unsigned _viewIsVisible:1;
}
@end
int foo_was_called = 0;
void __attribute__ ((__noinline__)) foo() {
foo_was_called = 1;
}
@implementation class_o_bitfields
- (void)test_a_bitfield {
if (_useSpecialDeleteAnimation) // This should always be false.
return;
@try {
foo();
}
@catch (class_o_bitfields *x) {
foo();
}
}
@end
int
main() {
class_o_bitfields *mcvc = [class_o_bitfields alloc];
mcvc->_deselectingDeletedRow = 1;
[mcvc test_a_bitfield];
if (!foo_was_called) {
printf("bitfield read error!\n");
abort();
}
return 0;
}