[LLVMbugs] [Bug 8742] New: assert in clang after commit r120890 when compiling some valid obj-c code.

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon Dec 6 02:28:05 PST 2010


           Summary: assert in clang after commit r120890 when compiling
                    some valid obj-c code.
           Product: clang
           Version: trunk
          Platform: Macintosh
        OS/Version: MacOS X
            Status: NEW
          Severity: release blocker
          Priority: P
         Component: -New Bugs
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: devlists at shadowlab.org
                CC: llvmbugs at cs.uiuc.edu

Created an attachment (id=5874)
 --> (http://llvm.org/bugs/attachment.cgi?id=5874)
File that clang cannot compile

r120890 by rjmccall, 04:47
“Although we currently have explicit lvalue-to-rvalue conversions, they're not
actually frequently used, because ImpCastExprToType only creates a node if the
types differ…”

After this commit, clang asserts while compiling the following code.

extern int printf(const char *, ...);

@interface WBGradientStep  {}
@property float start;

void wb_checkLocation() {
  WBGradientStep *step = 0;
  printf("%.2f", step.start);

> clang --version
clang version 2.9 (trunk 120890)
Target: x86_64-apple-darwin10
Thread model: posix

> clang -c test.m
Assertion failed: (E->getObjectKind() == OK_Ordinary && "reached property
reference without lvalue-to-rvalue"), function VisitObjCPropertyRefExpr, file
line 241.
0  clang             0x0000000100e68a62 PrintStackTrace(void*) + 34
1  clang             0x0000000100e69009 SignalHandler(int) + 857
2  libSystem.B.dylib 0x00007fff8326667a _sigtramp + 26
3  libSystem.B.dylib 000000000000000000 _sigtramp + 2094635424
4  clang             0x0000000100011a76 abort + 22
5  clang             0x0000000100011a38 __assert_rtn + 56
6  clang             0x000000010019d9e9 clang::StmtVisitor<(anonymous
namespace)::ScalarExprEmitter, llvm::Value*>::Visit(clang::Stmt*) + 41449
7  clang             0x000000010019f7e6 (anonymous
namespace)::ScalarExprEmitter::EmitCastExpr(clang::CastExpr*) + 4550

Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

More information about the llvm-bugs mailing list