[llvm-bugs] [Bug 33157] New: Assertion failed: ("conflicting locations for variable")

via llvm-bugs llvm-bugs at lists.llvm.org
Wed May 24 10:04:57 PDT 2017


https://bugs.llvm.org/show_bug.cgi?id=33157

            Bug ID: 33157
           Summary: Assertion failed: ("conflicting locations for
                    variable")
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: DebugInfo
          Assignee: unassignedbugs at nondot.org
          Reporter: aprantl at apple.com
                CC: llvm-bugs at lists.llvm.org

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 <NSObject>
@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 PR32977.

git-original-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302544

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20170524/731e3e47/attachment.html>


More information about the llvm-bugs mailing list