Description
Bugzilla Link | 33157 |
Resolution | FIXED |
Resolved on | Jun 13, 2017 01:44 |
Version | trunk |
OS | All |
CC | @adrian-prantl,@mveriksson,@pogo59,@rnk |
Extended Description
Assertion failure when compiling Adium.
$ cat test.mi
typedef signed char BOOL;
@protocol NSObject
@end
typedef double CGFloat;
struct CGPoint {
CGFloat x;
CGFloat y;
};
typedef struct CGPoint CGPoint;
struct CGSize {
CGFloat width;
CGFloat height;
};
typedef struct CGSize CGSize;
struct CGRect {
CGPoint origin;
CGSize size;
};
typedef struct CGRect CGRect;
typedef CGRect NSRect;
CGRect NSMakeRect(CGFloat x, CGFloat y, CGFloat w, CGFloat h) {
CGRect r;
r.origin.x = x;
r.size.width = w;
return r;
}
CGFloat NSMaxX(NSRect aRect) { return (aRect.origin.x + aRect.size.width); }
@protocol NSAccessibilityElement
@end
@interface NSView
@end
@interface KNShelfSplitView : NSView {
CGSize backgroundSize;
}
@end
@implementation KNShelfSplitView
- (void)
:(NSRect)aRect active:(BOOL)isActive {
NSRect sourceRect =
NSMakeRect(0, 0, backgroundSize.width, backgroundSize.height);
NSRect destRect = NSMakeRect(aRect.origin.x, aRect.origin.y,
sourceRect.size.width, aRect.size.height);
while ((destRect.origin.x < NSMaxX(aRect)) && destRect.size.width > 0) {
if (NSMaxX(destRect) > NSMaxX(aRect)) {
sourceRect.size.width = NSWidth(destRect);
}
}
}
@end
$ clang -cc1 -triple x86_64-apple-macosx10.6.0 -emit-obj -dwarf-column-info -debug-info-kind=standalone -dwarf-version=4 -debugger-tuning=lldb -Os -std=gnu99 -fblocks -x objective-c test.mi 2>&1 | grep all_of
Assertion failed: (all_of(FrameIndexExprs, [](FrameIndexExpr &FIE) { return FIE.Expr && FIE.Expr->isFragment(); }) && "conflicting locations for variable"), function addMMIEntry, file ../lib/CodeGen/AsmPrinter/DwarfDebug.h, line 142.
This started failing with r302544:
Re-land "Use the frame index side table for byval and inalloca arguments"
This re-lands r302483. It was not the cause of #32324 .
git-original-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302544