[LLVMbugs] [Bug 22672] New: Parser crash on typo-corrected code

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon Feb 23 20:17:16 PST 2015


http://llvm.org/bugs/show_bug.cgi?id=22672

            Bug ID: 22672
           Summary: Parser crash on typo-corrected code
           Product: clang
           Version: 3.6
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Frontend
          Assignee: unassignedclangbugs at nondot.org
          Reporter: matt.giuca at gmail.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Created attachment 13932
  --> http://llvm.org/bugs/attachment.cgi?id=13932&action=edit
Output / crash backtrace

Clang++ crashed while attempting to fix up a typo. I managed to reduce it down
to a minimal reproduction example:

class MyClass {
 public:
  void foo();
  int bar();
};

class Main {
 public:
  MyClass* myfield() const;
  void MyMethod();
};

void Main::MyMethod() {
  myfield_->foo();
  int x = myfield_->bar();
}

It tries to rename myfield_ ("use of undeclared identifier 'myfield_'; did you
mean 'myfield'?") to myfield, and then tries to turn that into a method call
("reference to non-static member function must be called; did you mean to call
it with no arguments?"). Then it crashes in the parser.

The crash seems to require both of the above automatic rewrites, as well as two
calls to myfield_ methods, the latter of which must be assigned to a variable.
If I simplify the example further, the crash goes away.

Note that I am using the version of Clang which is set up by the Chromium
project (I am not sure if it has been modified), but that I have removed all of
the Chromium-specific compiler flags (this example repros when compiled without
any arguments).

clang version 3.6.0 (trunk 223108)
Target: x86_64-unknown-linux-gnu
Thread model: posix

The same code, compiled with "Ubuntu clang version 3.4-1ubuntu3", does not
crash the compiler (it just gives the appropriate parse errors and terminates).

-- 
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/20150224/48e13662/attachment.html>


More information about the llvm-bugs mailing list