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

             Bug #: 14064
           Summary: segfault in destructor of aggregate struct in
                    statically initialized global array
           Product: new-bugs
           Version: 3.1
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
        AssignedTo: [email protected]
        ReportedBy: [email protected]
                CC: [email protected]
    Classification: Unclassified


struct foo
{
  ~foo()
  {
    if (str)
    {}
  }
  const char* str;
  bool ok;
};

foo foos[] = {
  { "test", 0 }
};

int main()
{
  return 0;
}

$ clang++ -v
Debian clang version 3.1-4ppa3 (branches/release_31) (based on LLVM 3.1)
Target: x86_64-pc-linux-gnu
Thread model: posix

This segfaults in ~foo with an obviously invalid 'this':

Program received signal SIGSEGV, Segmentation fault.
foo::~foo (this=0x2460b540) at test.cpp:8
8        if (str)
(gdb) p &foos[0]
$2 = (foo *) 0x601050


I also reproduce it on MacOS with the Apple version:
Apple clang version 4.0 (tags/Apple/clang-421.0.60) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin12.2.0
Thread model: posix

-- 
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.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to