mailing list of musl libc
 help / color / mirror / code / Atom feed
From: ojab <ojab@ojab.ru>
To: musl@lists.openwall.com
Subject: Re: LLVM testsuite, close-stderr.ll hangs
Date: Tue, 18 Dec 2012 09:55:54 +0400	[thread overview]
Message-ID: <50D0056A.4090303@ojab.ru> (raw)
In-Reply-To: <20121217172227.GU20323@brightrain.aerifal.cx>

[-- Attachment #1: Type: text/plain, Size: 1000 bytes --]

On 17.12.2012 21:22, Rich Felker wrote:
> On Mon, Dec 17, 2012 at 11:58:29AM -0500, Rich Felker wrote:
> To track this down, you could run under gdb and just interrupt the
> program and look at a backtrace once it hangs. This should make it
> clear whether exit was called recursively.
>
> Rich
>

Looks something like that (gdb output in the attached file, `bt` while 
`opt` hangs in the bottom): I've set `break exit` and stepped till it 
hangs, first exit() happens in command line parsing 
(https://github.com/llvm-mirror/llvm/blob/master/lib/Support/CommandLine.cpp#L846), 
which calls report_fatal_error("IO failure on output stream.");, which 
calls exit itself.

Looks like (note that I'm barely know C/C++) something wrong in ostream 
destruction: after changing ifdef to ifndef @
https://github.com/llvm-mirror/llvm/blob/master/lib/Support/raw_ostream.cpp#L501 
all works as it should:
> ~ # /root/llvm-build/Release+Asserts/bin/opt --reject-this-option 2>&-
> ~ # echo $?
> 1

//wbr ojab


[-- Attachment #2: gdb_stderr.log --]
[-- Type: text/plain, Size: 42334 bytes --]

~ # \r~ # gdb --args /root/llvm-build/Release+Asserts/bin/opt --reject-this-option 2>&-^[[J
GNU gdb (GDB) 7.4
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /root/llvm-build/Release+Asserts/bin/opt...done.
(gdb) break exit
Breakpoint 1 at 0x844e30
(gdb) run
Starting program: /root/llvm-build/Release+Asserts/bin/opt --reject-this-option

Breakpoint 1, 0x00007f96637777e5 in exit () from /lib/ld-musl-x86_64.so.1
(gdb) bt
#0  0x00007f96637777e5 in exit () from /lib/ld-musl-x86_64.so.1
#1  0x00000000014091f9 in llvm::cl::ParseCommandLineOptions (argc=2, argv=0x34f01c0, Overview=0x1460678 "llvm .bc -> .bc modular optimizer and analysis printer\n")
    at /root/llvm/lib/Support/CommandLine.cpp:846
#2  0x00000000008546f6 in main (argc=2, argv=0x7fff90b6a348) at /root/llvm/tools/opt/opt.cpp:586
(gdb) step
Single stepping until exit from function exit,
which has no line number information.
llvm::raw_fd_ostream::~raw_fd_ostream (this=0x7fff90b69e58, __in_chrg=<optimized out>) at /root/llvm/lib/Support/raw_ostream.cpp:490
490	raw_fd_ostream::~raw_fd_ostream() {
(gdb) 
491	  if (FD >= 0) {
(gdb) 
492	    flush();
(gdb) 
llvm::raw_ostream::flush (this=0x34efc20) at /root/llvm/include/llvm/Support/raw_ostream.h:129
129	  void flush() {
(gdb) 
130	    if (OutBufCur != OutBufStart)
(gdb) 
132	  }
(gdb) 
llvm::raw_fd_ostream::~raw_fd_ostream (this=0x1b50880, __in_chrg=<optimized out>) at /root/llvm/lib/Support/raw_ostream.cpp:493
493	    if (ShouldClose)
(gdb) 
513	  if (has_error())
(gdb) 
llvm::raw_fd_ostream::has_error (this=0x21) at /root/llvm/include/llvm/Support/raw_ostream.h:406
406	  bool has_error() const {
(gdb) 
407	    return Error;
(gdb) 
408	  }
(gdb) 
llvm::raw_fd_ostream::~raw_fd_ostream (this=0x1b50880, __in_chrg=<optimized out>) at /root/llvm/lib/Support/raw_ostream.cpp:514
514	    report_fatal_error("IO failure on output stream.");
(gdb) 
llvm::report_fatal_error (Reason=0x40 <Address 0x40 out of bounds>) at /root/llvm/lib/Support/ErrorHandling.cpp:52
52	void llvm::report_fatal_error(const char *Reason) {
(gdb) 
53	  report_fatal_error(Twine(Reason));
(gdb) 
llvm::Twine::Twine (this=0x34f01d0, Str=0x0) at /root/llvm/include/llvm/ADT/Twine.h:263
263	    /*implicit*/ Twine(const char *Str)
(gdb) 
264	      : RHSKind(EmptyKind) {
(gdb) 
265	      if (Str[0] != '\0') {
(gdb) 
266	        LHS.cString = Str;
(gdb) 
267	        LHSKind = CStringKind;
(gdb) 
271	      assert(isValid() && "Invalid twine!");
(gdb) 
llvm::Twine::isValid (this=0x7f966377e148) at /root/llvm/include/llvm/ADT/Twine.h:212
212	    bool isValid() const {
(gdb) 
214	      if (isNullary() && getRHSKind() != EmptyKind)
(gdb) 
llvm::Twine::isNullary (this=0xdf0418) at /root/llvm/include/llvm/ADT/Twine.h:196
196	    bool isNullary() const {
(gdb) 
197	      return isNull() || isEmpty();
(gdb) 
llvm::Twine::isNull (this=0xdf07b0) at /root/llvm/include/llvm/ADT/Twine.h:186
186	    bool isNull() const {
(gdb) 
187	      return getLHSKind() == NullKind;
(gdb) 
llvm::Twine::getLHSKind (this=0xfffffffffffffffe) at /root/llvm/include/llvm/ADT/Twine.h:237
237	    NodeKind getLHSKind() const { return (NodeKind) LHSKind; }
(gdb) 
llvm::Twine::isNull (this=0x7fff90b69bf0) at /root/llvm/include/llvm/ADT/Twine.h:188
188	    }
(gdb) 
llvm::Twine::isEmpty (this=0x7fff90b69bf0) at /root/llvm/include/llvm/ADT/Twine.h:191
191	    bool isEmpty() const {
(gdb) 
192	      return getLHSKind() == EmptyKind;
(gdb) 
llvm::Twine::getLHSKind (this=0x7fff90b69bf0) at /root/llvm/include/llvm/ADT/Twine.h:237
237	    NodeKind getLHSKind() const { return (NodeKind) LHSKind; }
(gdb) 
llvm::Twine::isEmpty (this=0x7fff90b69bf0) at /root/llvm/include/llvm/ADT/Twine.h:193
193	    }
(gdb) 
llvm::Twine::isNullary (this=0x7fff90b69bf0) at /root/llvm/include/llvm/ADT/Twine.h:198
198	    }
(gdb) 
llvm::Twine::isValid (this=0x7fff90b69bf0) at /root/llvm/include/llvm/ADT/Twine.h:218
218	      if (getRHSKind() == NullKind)
(gdb) 
llvm::Twine::getRHSKind (this=0x8545ce) at /root/llvm/include/llvm/ADT/Twine.h:240
240	    NodeKind getRHSKind() const { return (NodeKind) RHSKind; }
(gdb) 
llvm::Twine::isValid (this=0x7fff90b69bf0) at /root/llvm/include/llvm/ADT/Twine.h:222
222	      if (getRHSKind() != EmptyKind && getLHSKind() == EmptyKind)
(gdb) 
llvm::Twine::getRHSKind (this=0x7fff90b69bf0) at /root/llvm/include/llvm/ADT/Twine.h:240
240	    NodeKind getRHSKind() const { return (NodeKind) RHSKind; }
(gdb) 
llvm::Twine::isValid (this=0x7fff90b69bf0) at /root/llvm/include/llvm/ADT/Twine.h:226
226	      if (getLHSKind() == TwineKind &&
(gdb) 
llvm::Twine::getLHSKind (this=0x7fff90b69bf0) at /root/llvm/include/llvm/ADT/Twine.h:237
237	    NodeKind getLHSKind() const { return (NodeKind) LHSKind; }
(gdb) 
llvm::Twine::isValid (this=0x7fff90b69bf0) at /root/llvm/include/llvm/ADT/Twine.h:229
229	      if (getRHSKind() == TwineKind &&
(gdb) 
llvm::Twine::getRHSKind (this=0x7fff90b69bf0) at /root/llvm/include/llvm/ADT/Twine.h:240
240	    NodeKind getRHSKind() const { return (NodeKind) RHSKind; }
(gdb) 
llvm::Twine::isValid (this=0x7fff90b69bf0) at /root/llvm/include/llvm/ADT/Twine.h:233
233	      return true;
(gdb) 
234	    }
(gdb) 
llvm::Twine::Twine (this=0x7fff90b69bf0, Str=0x1628dd3 "IO failure on output stream.") at /root/llvm/include/llvm/ADT/Twine.h:272
272	    }
(gdb) 
llvm::report_fatal_error (Reason=...) at /root/llvm/lib/Support/ErrorHandling.cpp:64
64	void llvm::report_fatal_error(const Twine &Reason) {
(gdb) 
65	  if (ErrorHandler) {
(gdb) 
71	    SmallVector<char, 64> Buffer;
(gdb) 
llvm::SmallVector<char, 64u>::SmallVector (this=0x1460128) at /root/llvm/include/llvm/ADT/SmallVector.h:878
878	  SmallVector() : SmallVectorImpl<T>(N) {
(gdb) 
llvm::SmallVectorImpl<char>::SmallVectorImpl (this=0x12, N=0) at /root/llvm/include/llvm/ADT/SmallVector.h:375
375	  explicit SmallVectorImpl(unsigned N)
(gdb) 
376	    : SmallVectorTemplateBase<T, isPodLike<T>::value>(N*sizeof(T)) {
(gdb) 
llvm::SmallVectorTemplateBase<char, true>::SmallVectorTemplateBase (this=0x14066dc, Size=140735621274560) at /root/llvm/include/llvm/ADT/SmallVector.h:292
292	  SmallVectorTemplateBase(size_t Size) : SmallVectorTemplateCommon<T>(Size) {}
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::SmallVectorTemplateCommon (this=0x1614b4f, Size=21033176) at /root/llvm/include/llvm/ADT/SmallVector.h:77
77	  SmallVectorTemplateCommon(size_t Size) : SmallVectorBase(&FirstEl, Size) {}
(gdb) 
llvm::SmallVectorBase::SmallVectorBase (this=0x7fff90b69bc0, FirstEl=0x1410697, Size=21031949) at /root/llvm/include/llvm/ADT/SmallVector.h:37
37	  SmallVectorBase(void *FirstEl, size_t Size)
(gdb) 
38	    : BeginX(FirstEl), EndX(FirstEl), CapacityX((char*)FirstEl+Size) {}
(gdb) 
llvm::SmallVectorImpl<char>::SmallVectorImpl (this=0x7fff90b69b20, N=64) at /root/llvm/include/llvm/ADT/SmallVector.h:377
377	  }
(gdb) 
llvm::SmallVector<char, 64u>::SmallVector (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:879
879	  }
(gdb) 
llvm::report_fatal_error (Reason=...) at /root/llvm/lib/Support/ErrorHandling.cpp:72
72	    raw_svector_ostream OS(Buffer);
(gdb) 
llvm::raw_svector_ostream::raw_svector_ostream (this=0x7fff90b69b20, O=...) at /root/llvm/lib/Support/raw_ostream.cpp:709
709	raw_svector_ostream::raw_svector_ostream(SmallVectorImpl<char> &O) : OS(O) {
(gdb) 
llvm::raw_ostream::raw_ostream (this=0x34e3a00, unbuffered=255) at /root/llvm/include/llvm/Support/raw_ostream.h:76
76	  explicit raw_ostream(bool unbuffered=false)
(gdb) 
77	    : BufferMode(unbuffered ? Unbuffered : InternalBuffer) {
(gdb) 
79	    OutBufStart = OutBufEnd = OutBufCur = 0;
(gdb) 
80	  }
(gdb) 
llvm::raw_svector_ostream::raw_svector_ostream (this=0x7fff90b69b80, O=...) at /root/llvm/lib/Support/raw_ostream.cpp:714
714	  OS.reserve(OS.size() + 128);
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::size (this=0x7f0090b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:126
126	  size_type size() const { return end()-begin(); }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::end (this=0x7fff90b69e30) at /root/llvm/include/llvm/ADT/SmallVector.h:114
114	  const_iterator end() const { return (const_iterator)this->EndX; }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::begin (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:112
112	  const_iterator begin() const { return (const_iterator)this->BeginX; }
(gdb) 
llvm::SmallVectorImpl<char>::reserve (this=0x7fff90b69b20, N=64) at /root/llvm/include/llvm/ADT/SmallVector.h:419
419	  void reserve(unsigned N) {
(gdb) 
420	    if (this->capacity() < N)
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::capacity (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:131
131	  size_t capacity() const { return capacity_ptr() - begin(); }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::capacity_ptr (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:117
117	  const_iterator capacity_ptr() const { return (const_iterator)this->CapacityX;}
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::begin (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:112
112	  const_iterator begin() const { return (const_iterator)this->BeginX; }
(gdb) 
llvm::SmallVectorImpl<char>::reserve (this=0x7fff90b69b20, N=128) at /root/llvm/include/llvm/ADT/SmallVector.h:421
421	      this->grow(N);
(gdb) 
llvm::SmallVectorTemplateBase<char, true>::grow (this=0x7fff90b69b20, MinSize=64) at /root/llvm/include/llvm/ADT/SmallVector.h:340
340	  void grow(size_t MinSize = 0) {
(gdb) 
341	    this->grow_pod(MinSize*sizeof(T), sizeof(T));
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::grow_pod (this=0x40, MinSizeInBytes=12387808, TSize=140735621274400) at /root/llvm/include/llvm/ADT/SmallVector.h:79
79	  void grow_pod(size_t MinSizeInBytes, size_t TSize) {
(gdb) 
80	    SmallVectorBase::grow_pod(&FirstEl, MinSizeInBytes, TSize);
(gdb) 
llvm::SmallVectorBase::grow_pod (this=0x34e3eb8, FirstEl=0x1614b4f, MinSizeInBytes=140735621273868, TSize=140735621273792)
    at /root/llvm/lib/Support/SmallVector.cpp:20
20	                               size_t TSize) {
(gdb) 
21	  size_t CurSizeBytes = size_in_bytes();
(gdb) 
llvm::SmallVectorBase::size_in_bytes (this=0x27) at /root/llvm/include/llvm/ADT/SmallVector.h:46
46	  size_t size_in_bytes() const {
(gdb) 
47	    return size_t((char*)EndX - (char*)BeginX);
(gdb) 
48	  }
(gdb) 
llvm::SmallVectorBase::grow_pod (this=0x7fff90b69b20, FirstEl=0x7fff90b69b38, MinSizeInBytes=128, TSize=1) at /root/llvm/lib/Support/SmallVector.cpp:22
22	  size_t NewCapacityInBytes = 2 * capacity_in_bytes() + TSize; // Always grow.
(gdb) 
llvm::SmallVectorBase::capacity_in_bytes (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:51
51	  size_t capacity_in_bytes() const {
(gdb) 
52	    return size_t((char*)CapacityX - (char*)BeginX);
(gdb) 
53	  }
(gdb) 
llvm::SmallVectorBase::grow_pod (this=0x7fff90b69b20, FirstEl=0x7fff90b69b38, MinSizeInBytes=128, TSize=1) at /root/llvm/lib/Support/SmallVector.cpp:23
23	  if (NewCapacityInBytes < MinSizeInBytes)
(gdb) 
27	  if (BeginX == FirstEl) {
(gdb) 
28	    NewElts = malloc(NewCapacityInBytes);
(gdb) 
31	    memcpy(NewElts, this->BeginX, CurSizeBytes);
(gdb) 
37	  this->EndX = (char*)NewElts+CurSizeBytes;
(gdb) 
38	  this->BeginX = NewElts;
(gdb) 
39	  this->CapacityX = (char*)this->BeginX + NewCapacityInBytes;
(gdb) 
40	}
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::grow_pod (this=0x7fff90b69b20, MinSizeInBytes=128, TSize=1) at /root/llvm/include/llvm/ADT/SmallVector.h:81
81	  }
(gdb) 
llvm::SmallVectorTemplateBase<char, true>::grow (this=0x7fff90b69b20, MinSize=128) at /root/llvm/include/llvm/ADT/SmallVector.h:342
342	  }
(gdb) 
llvm::SmallVectorImpl<char>::reserve (this=0x7fff90b69b20, N=128) at /root/llvm/include/llvm/ADT/SmallVector.h:422
422	  }
(gdb) 
llvm::raw_svector_ostream::raw_svector_ostream (this=0x7fff90b69b80, O=...) at /root/llvm/lib/Support/raw_ostream.cpp:715
715	  SetBuffer(OS.end(), OS.capacity() - OS.size());
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::capacity (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:131
131	  size_t capacity() const { return capacity_ptr() - begin(); }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::capacity_ptr (this=0x1e) at /root/llvm/include/llvm/ADT/SmallVector.h:117
117	  const_iterator capacity_ptr() const { return (const_iterator)this->CapacityX;}
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::begin (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:112
112	  const_iterator begin() const { return (const_iterator)this->BeginX; }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::size (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:126
126	  size_type size() const { return end()-begin(); }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::end (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:114
114	  const_iterator end() const { return (const_iterator)this->EndX; }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::begin (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:112
112	  const_iterator begin() const { return (const_iterator)this->BeginX; }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::end (this=0x81) at /root/llvm/include/llvm/ADT/SmallVector.h:113
113	  iterator end() { return (iterator)this->EndX; }
(gdb) 
llvm::raw_ostream::SetBuffer (this=0x7fff90b69b20, BufferStart=0x80034f0762 <Address 0x80034f0762 out of bounds>, Size=12373777)
    at /root/llvm/include/llvm/Support/raw_ostream.h:275
275	  void SetBuffer(char *BufferStart, size_t Size) {
(gdb) 
276	    SetBufferAndMode(BufferStart, Size, ExternalBuffer);
(gdb) 
llvm::raw_ostream::SetBufferAndMode (this=0xcbc5dc, BufferStart=0x1e <Address 0x1e out of bounds>, Size=140735621274400, Mode=llvm::raw_ostream::Unbuffered)
    at /root/llvm/lib/Support/raw_ostream.cpp:88
88	                                   BufferKind Mode) {
(gdb) 
91	         "stream must be unbuffered or have at least one byte");
(gdb) 
94	  assert(GetNumBytesInBuffer() == 0 && "Current buffer is non-empty!");
(gdb) 
llvm::raw_ostream::GetNumBytesInBuffer (this=0x7fff90b69b38) at /root/llvm/include/llvm/Support/raw_ostream.h:121
121	  size_t GetNumBytesInBuffer() const {
(gdb) 
122	    return OutBufCur - OutBufStart;
(gdb) 
123	  }
(gdb) 
llvm::raw_ostream::SetBufferAndMode (this=0x7fff90b69b80, BufferStart=0x34efc60 "\320\001O\003", Size=129, Mode=llvm::raw_ostream::ExternalBuffer)
    at /root/llvm/lib/Support/raw_ostream.cpp:96
96	  if (BufferMode == InternalBuffer)
(gdb) 
97	    delete [] OutBufStart;
(gdb) 
98	  OutBufStart = BufferStart;
(gdb) 
99	  OutBufEnd = OutBufStart+Size;
(gdb) 
100	  OutBufCur = OutBufStart;
(gdb) 
101	  BufferMode = Mode;
(gdb) 
103	  assert(OutBufStart <= OutBufEnd && "Invalid size!");
(gdb) 
104	}
(gdb) 
llvm::raw_ostream::SetBuffer (this=0x7fff90b69b80, BufferStart=0x34efc60 "\320\001O\003", Size=129) at /root/llvm/include/llvm/Support/raw_ostream.h:277
277	  }
(gdb) 
llvm::raw_svector_ostream::raw_svector_ostream (this=0x7fff90b69b80, O=...) at /root/llvm/lib/Support/raw_ostream.cpp:716
716	}
(gdb) 
llvm::report_fatal_error (Reason=...) at /root/llvm/lib/Support/ErrorHandling.cpp:73
73	    OS << "LLVM ERROR: " << Reason << "\n";
(gdb) 
llvm::raw_ostream::operator<< (this=0x145205f, Str=0x81 <Address 0x81 out of bounds>) at /root/llvm/include/llvm/Support/raw_ostream.h:168
168	  raw_ostream &operator<<(const char *Str) {
(gdb) 
172	    return this->operator<<(StringRef(Str));
(gdb) 
llvm::StringRef::StringRef (this=0x81, Str=0x7fff90b69b20 "`\374N\003") at /root/llvm/include/llvm/ADT/StringRef.h:76
76	    /*implicit*/ StringRef(const char *Str)
(gdb) 
77	      : Data(Str) {
(gdb) 
78	        assert(Str && "StringRef cannot be built from a NULL argument");
(gdb) 
79	        Length = ::strlen(Str); // invoking strlen(NULL) is undefined behavior
(gdb) 
80	      }
(gdb) 
llvm::raw_ostream::operator<< (this=0x845707, Str=...) at /root/llvm/include/llvm/Support/raw_ostream.h:155
155	  raw_ostream &operator<<(StringRef Str) {
(gdb) 
157	    size_t Size = Str.size();
(gdb) 
llvm::StringRef::size (this=0x200000080) at /root/llvm/include/llvm/ADT/StringRef.h:113
113	    size_t size() const { return Length; }
(gdb) 
llvm::raw_ostream::operator<< (this=0x7fff90b69b80, Str=...) at /root/llvm/include/llvm/Support/raw_ostream.h:160
160	    if (OutBufCur+Size > OutBufEnd)
(gdb) 
163	    memcpy(OutBufCur, Str.data(), Size);
(gdb) 
llvm::StringRef::data (this=0x7fff90b69a98) at /root/llvm/include/llvm/ADT/StringRef.h:107
107	    const char *data() const { return Data; }
(gdb) 
llvm::raw_ostream::operator<< (this=0x7fff90b69b80, Str=...) at /root/llvm/include/llvm/Support/raw_ostream.h:164
164	    OutBufCur += Size;
(gdb) 
165	    return *this;
(gdb) 
166	  }
(gdb) 
llvm::raw_ostream::operator<< (this=0x7fff90b69b80, Str=0x1623ac7 "LLVM ERROR: ") at /root/llvm/include/llvm/Support/raw_ostream.h:173
173	  }
(gdb) 
llvm::operator<< (OS=..., RHS=...) at /root/llvm/include/llvm/ADT/Twine.h:516
516	  inline raw_ostream &operator<<(raw_ostream &OS, const Twine &RHS) {
(gdb) 
517	    RHS.print(OS);
(gdb) 
llvm::Twine::print (this=0x845c5b, OS=...) at /root/llvm/lib/Support/Twine.cpp:152
152	void Twine::print(raw_ostream &OS) const {
(gdb) 
153	  printOneChild(OS, LHS, getLHSKind());
(gdb) 
llvm::Twine::getLHSKind (this=0x1623ac7) at /root/llvm/include/llvm/ADT/Twine.h:237
237	    NodeKind getLHSKind() const { return (NodeKind) LHSKind; }
(gdb) 
llvm::Twine::printOneChild (this=0x7fff90b69b80, OS=..., Ptr=..., Kind=llvm::Twine::NullKind) at /root/llvm/lib/Support/Twine.cpp:59
59	                          NodeKind Kind) const {
(gdb) 
60	  switch (Kind) {
(gdb) 
67	    OS << Ptr.cString;
(gdb) 
llvm::raw_ostream::operator<< (this=0x81, Str=0x34efc60 "LLVM ERROR: \226\177") at /root/llvm/include/llvm/Support/raw_ostream.h:168
168	  raw_ostream &operator<<(const char *Str) {
(gdb) 
172	    return this->operator<<(StringRef(Str));
(gdb) 
llvm::StringRef::StringRef (this=0x7fff90b69b20, Str=0x7fff90b69b38 "@") at /root/llvm/include/llvm/ADT/StringRef.h:76
76	    /*implicit*/ StringRef(const char *Str)
(gdb) 
77	      : Data(Str) {
(gdb) 
78	        assert(Str && "StringRef cannot be built from a NULL argument");
(gdb) 
79	        Length = ::strlen(Str); // invoking strlen(NULL) is undefined behavior
(gdb) 
80	      }
(gdb) 
llvm::raw_ostream::operator<< (this=0x845707, Str=...) at /root/llvm/include/llvm/Support/raw_ostream.h:155
155	  raw_ostream &operator<<(StringRef Str) {
(gdb) 
157	    size_t Size = Str.size();
(gdb) 
llvm::StringRef::size (this=0x843f18) at /root/llvm/include/llvm/ADT/StringRef.h:113
113	    size_t size() const { return Length; }
(gdb) 
llvm::raw_ostream::operator<< (this=0x7fff90b69b80, Str=...) at /root/llvm/include/llvm/Support/raw_ostream.h:160
160	    if (OutBufCur+Size > OutBufEnd)
(gdb) 
163	    memcpy(OutBufCur, Str.data(), Size);
(gdb) 
llvm::StringRef::data (this=0x7fff90b69a18) at /root/llvm/include/llvm/ADT/StringRef.h:107
107	    const char *data() const { return Data; }
(gdb) 
llvm::raw_ostream::operator<< (this=0x7fff90b69b80, Str=...) at /root/llvm/include/llvm/Support/raw_ostream.h:164
164	    OutBufCur += Size;
(gdb) 
165	    return *this;
(gdb) 
166	  }
(gdb) 
llvm::raw_ostream::operator<< (this=0x7fff90b69b80, Str=0x1628dd3 "IO failure on output stream.") at /root/llvm/include/llvm/Support/raw_ostream.h:173
173	  }
(gdb) 
llvm::Twine::printOneChild (this=0x7fff90b69bf0, OS=..., Ptr=..., Kind=llvm::Twine::CStringKind) at /root/llvm/lib/Support/Twine.cpp:68
68	    break;
(gdb) 
100	}
(gdb) 
llvm::Twine::print (this=0x7fff90b69bf0, OS=...) at /root/llvm/lib/Support/Twine.cpp:154
154	  printOneChild(OS, RHS, getRHSKind());
(gdb) 
llvm::Twine::getRHSKind (this=0x7fff90b69bf0) at /root/llvm/include/llvm/ADT/Twine.h:240
240	    NodeKind getRHSKind() const { return (NodeKind) RHSKind; }
(gdb) 
llvm::Twine::printOneChild (this=0x7fff90b69bf0, OS=..., Ptr=..., Kind=llvm::Twine::CStringKind) at /root/llvm/lib/Support/Twine.cpp:59
59	                          NodeKind Kind) const {
(gdb) 
60	  switch (Kind) {
(gdb) 
61	  case Twine::NullKind: break;
(gdb) 
100	}
(gdb) 
llvm::Twine::print (this=0x7fff90b69bf0, OS=...) at /root/llvm/lib/Support/Twine.cpp:155
155	}
(gdb) 
llvm::operator<< (OS=..., RHS=...) at /root/llvm/include/llvm/ADT/Twine.h:518
518	    return OS;
(gdb) 
519	  }
(gdb) 
llvm::raw_ostream::operator<< (this=0xfc66a3, Str=0x1e <Address 0x1e out of bounds>) at /root/llvm/include/llvm/Support/raw_ostream.h:168
168	  raw_ostream &operator<<(const char *Str) {
(gdb) 
172	    return this->operator<<(StringRef(Str));
(gdb) 
llvm::StringRef::StringRef (this=0x145003d, Str=0x7fff90b69bf0 "\323\215b\001") at /root/llvm/include/llvm/ADT/StringRef.h:76
76	    /*implicit*/ StringRef(const char *Str)
(gdb) 
77	      : Data(Str) {
(gdb) 
78	        assert(Str && "StringRef cannot be built from a NULL argument");
(gdb) 
79	        Length = ::strlen(Str); // invoking strlen(NULL) is undefined behavior
(gdb) 
80	      }
(gdb) 
llvm::raw_ostream::operator<< (this=0x845707, Str=...) at /root/llvm/include/llvm/Support/raw_ostream.h:155
155	  raw_ostream &operator<<(StringRef Str) {
(gdb) 
157	    size_t Size = Str.size();
(gdb) 
llvm::StringRef::size (this=0x7fff90b69a98) at /root/llvm/include/llvm/ADT/StringRef.h:113
113	    size_t size() const { return Length; }
(gdb) 
llvm::raw_ostream::operator<< (this=0x7fff90b69b80, Str=...) at /root/llvm/include/llvm/Support/raw_ostream.h:160
160	    if (OutBufCur+Size > OutBufEnd)
(gdb) 
163	    memcpy(OutBufCur, Str.data(), Size);
(gdb) 
llvm::StringRef::data (this=0x7fff90b69a98) at /root/llvm/include/llvm/ADT/StringRef.h:107
107	    const char *data() const { return Data; }
(gdb) 
llvm::raw_ostream::operator<< (this=0x7fff90b69b80, Str=...) at /root/llvm/include/llvm/Support/raw_ostream.h:164
164	    OutBufCur += Size;
(gdb) 
165	    return *this;
(gdb) 
166	  }
(gdb) 
llvm::raw_ostream::operator<< (this=0x7fff90b69b80, Str=0x1623ad4 "\n") at /root/llvm/include/llvm/Support/raw_ostream.h:173
173	  }
(gdb) 
llvm::report_fatal_error (Reason=...) at /root/llvm/lib/Support/ErrorHandling.cpp:74
74	    StringRef MessageStr = OS.str();
(gdb) 
llvm::raw_svector_ostream::str (this=0x845c5b) at /root/llvm/lib/Support/raw_ostream.cpp:760
760	StringRef raw_svector_ostream::str() {
(gdb) 
761	  flush();
(gdb) 
llvm::raw_ostream::flush (this=0x1623ad4) at /root/llvm/include/llvm/Support/raw_ostream.h:129
129	  void flush() {
(gdb) 
130	    if (OutBufCur != OutBufStart)
(gdb) 
131	      flush_nonempty();
(gdb) 
llvm::raw_ostream::flush_nonempty (this=0x1c) at /root/llvm/lib/Support/raw_ostream.cpp:260
260	void raw_ostream::flush_nonempty() {
(gdb) 
261	  assert(OutBufCur > OutBufStart && "Invalid call to flush_nonempty.");
(gdb) 
262	  size_t Length = OutBufCur - OutBufStart;
(gdb) 
263	  OutBufCur = OutBufStart;
(gdb) 
264	  write_impl(OutBufStart, Length);
(gdb) 
llvm::raw_svector_ostream::write_impl (this=0x845c5b, Ptr=0x2 <Address 0x2 out of bounds>, Size=28) at /root/llvm/lib/Support/raw_ostream.cpp:734
734	void raw_svector_ostream::write_impl(const char *Ptr, size_t Size) {
(gdb) 
738	  if (Ptr == OS.end()) {
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::end (this=0x1c) at /root/llvm/include/llvm/ADT/SmallVector.h:113
113	  iterator end() { return (iterator)this->EndX; }
(gdb) 
llvm::raw_svector_ostream::write_impl (this=0x7fff90b69b80, Ptr=0x34efc60 "LLVM ERROR: IO failure on output stream.\n\376N\003", Size=41)
    at /root/llvm/lib/Support/raw_ostream.cpp:739
739	    assert(OS.size() + Size <= OS.capacity() && "Invalid write_impl() call!");
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::size (this=0x1628dd3) at /root/llvm/include/llvm/ADT/SmallVector.h:126
126	  size_type size() const { return end()-begin(); }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::end (this=0x7fff90b69a18) at /root/llvm/include/llvm/ADT/SmallVector.h:114
114	  const_iterator end() const { return (const_iterator)this->EndX; }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::begin (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:112
112	  const_iterator begin() const { return (const_iterator)this->BeginX; }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::capacity (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:131
131	  size_t capacity() const { return capacity_ptr() - begin(); }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::capacity_ptr (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:117
117	  const_iterator capacity_ptr() const { return (const_iterator)this->CapacityX;}
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::begin (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:112
112	  const_iterator begin() const { return (const_iterator)this->BeginX; }
(gdb) 
llvm::raw_svector_ostream::write_impl (this=0x7fff90b69b80, Ptr=0x34efc60 "LLVM ERROR: IO failure on output stream.\n\376N\003", Size=41)
    at /root/llvm/lib/Support/raw_ostream.cpp:740
740	    OS.set_size(OS.size() + Size);
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::size (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:126
126	  size_type size() const { return end()-begin(); }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::end (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:114
114	  const_iterator end() const { return (const_iterator)this->EndX; }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::begin (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:112
112	  const_iterator begin() const { return (const_iterator)this->BeginX; }
(gdb) 
llvm::SmallVectorImpl<char>::set_size (this=0x7fff90b69b20, N=0) at /root/llvm/include/llvm/ADT/SmallVector.h:696
696	  void set_size(unsigned N) {
(gdb) 
697	    assert(N <= this->capacity());
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::capacity (this=0x1b50880) at /root/llvm/include/llvm/ADT/SmallVector.h:131
131	  size_t capacity() const { return capacity_ptr() - begin(); }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::capacity_ptr (this=0x0) at /root/llvm/include/llvm/ADT/SmallVector.h:117
117	  const_iterator capacity_ptr() const { return (const_iterator)this->CapacityX;}
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::begin (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:112
112	  const_iterator begin() const { return (const_iterator)this->BeginX; }
(gdb) 
llvm::SmallVectorImpl<char>::set_size (this=0x7fff90b69b20, N=41) at /root/llvm/include/llvm/ADT/SmallVector.h:698
698	    this->setEnd(this->begin() + N);
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::begin (this=0x29) at /root/llvm/include/llvm/ADT/SmallVector.h:111
111	  iterator begin() { return (iterator)this->BeginX; }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::setEnd (this=0x7fff90b69b20, P=0x7fff90b69b20 "`\374N\003") at /root/llvm/include/llvm/ADT/SmallVector.h:94
94	  void setEnd(T *P) { this->EndX = P; }
(gdb) 
llvm::SmallVectorImpl<char>::set_size (this=0x7fff90b69b20, N=41) at /root/llvm/include/llvm/ADT/SmallVector.h:699
699	  }
(gdb) 
llvm::raw_svector_ostream::write_impl (this=0x7fff90b69b80, Ptr=0x34efc60 "LLVM ERROR: IO failure on output stream.\n\376N\003", Size=41)
    at /root/llvm/lib/Support/raw_ostream.cpp:749
749	  if (OS.capacity() - OS.size() < 64)
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::capacity (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:131
131	  size_t capacity() const { return capacity_ptr() - begin(); }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::capacity_ptr (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:117
117	  const_iterator capacity_ptr() const { return (const_iterator)this->CapacityX;}
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::begin (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:112
112	  const_iterator begin() const { return (const_iterator)this->BeginX; }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::size (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:126
126	  size_type size() const { return end()-begin(); }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::end (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:114
114	  const_iterator end() const { return (const_iterator)this->EndX; }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::begin (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:112
112	  const_iterator begin() const { return (const_iterator)this->BeginX; }
(gdb) 
llvm::raw_svector_ostream::write_impl (this=0x7fff90b69b80, Ptr=0x34efc60 "LLVM ERROR: IO failure on output stream.\n\376N\003", Size=41)
    at /root/llvm/lib/Support/raw_ostream.cpp:753
753	  SetBuffer(OS.end(), OS.capacity() - OS.size());
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::capacity (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:131
131	  size_t capacity() const { return capacity_ptr() - begin(); }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::capacity_ptr (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:117
117	  const_iterator capacity_ptr() const { return (const_iterator)this->CapacityX;}
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::begin (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:112
112	  const_iterator begin() const { return (const_iterator)this->BeginX; }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::size (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:126
126	  size_type size() const { return end()-begin(); }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::end (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:114
114	  const_iterator end() const { return (const_iterator)this->EndX; }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::begin (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:112
112	  const_iterator begin() const { return (const_iterator)this->BeginX; }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::end (this=0x81) at /root/llvm/include/llvm/ADT/SmallVector.h:113
113	  iterator end() { return (iterator)this->EndX; }
(gdb) 
llvm::raw_ostream::SetBuffer (this=0x7fff90b69b20, BufferStart=0x2900000000 <Address 0x2900000000 out of bounds>, Size=12373777)
    at /root/llvm/include/llvm/Support/raw_ostream.h:275
275	  void SetBuffer(char *BufferStart, size_t Size) {
(gdb) 
276	    SetBufferAndMode(BufferStart, Size, ExternalBuffer);
(gdb) 
llvm::raw_ostream::SetBufferAndMode (this=0xcbc63b, BufferStart=0x7fff90b69b20 "`\374N\003", Size=17179871392, Mode=llvm::raw_ostream::Unbuffered)
    at /root/llvm/lib/Support/raw_ostream.cpp:88
88	                                   BufferKind Mode) {
(gdb) 
91	         "stream must be unbuffered or have at least one byte");
(gdb) 
94	  assert(GetNumBytesInBuffer() == 0 && "Current buffer is non-empty!");
(gdb) 
llvm::raw_ostream::GetNumBytesInBuffer (this=0x27) at /root/llvm/include/llvm/Support/raw_ostream.h:121
121	  size_t GetNumBytesInBuffer() const {
(gdb) 
122	    return OutBufCur - OutBufStart;
(gdb) 
123	  }
(gdb) 
llvm::raw_ostream::SetBufferAndMode (this=0x7fff90b69b80, BufferStart=0x34efc89 "\376N\003", Size=88, Mode=llvm::raw_ostream::ExternalBuffer)
    at /root/llvm/lib/Support/raw_ostream.cpp:96
96	  if (BufferMode == InternalBuffer)
(gdb) 
98	  OutBufStart = BufferStart;
(gdb) 
99	  OutBufEnd = OutBufStart+Size;
(gdb) 
100	  OutBufCur = OutBufStart;
(gdb) 
101	  BufferMode = Mode;
(gdb) 
103	  assert(OutBufStart <= OutBufEnd && "Invalid size!");
(gdb) 
104	}
(gdb) 
llvm::raw_ostream::SetBuffer (this=0x7fff90b69b80, BufferStart=0x34efc89 "\376N\003", Size=88) at /root/llvm/include/llvm/Support/raw_ostream.h:277
277	  }
(gdb) 
llvm::raw_svector_ostream::write_impl (this=0x7fff90b69b80, Ptr=0x34efc60 "LLVM ERROR: IO failure on output stream.\n\376N\003", Size=41)
    at /root/llvm/lib/Support/raw_ostream.cpp:754
754	}
(gdb) 
llvm::raw_ostream::flush_nonempty (this=0x7fff90b69b80) at /root/llvm/lib/Support/raw_ostream.cpp:265
265	}
(gdb) 
llvm::raw_ostream::flush (this=0x7fff90b69b80) at /root/llvm/include/llvm/Support/raw_ostream.h:132
132	  }
(gdb) 
llvm::raw_svector_ostream::str (this=0x7fff90b69b80) at /root/llvm/lib/Support/raw_ostream.cpp:762
762	  return StringRef(OS.begin(), OS.size());
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::size (this=0x7fff90b69b80) at /root/llvm/include/llvm/ADT/SmallVector.h:126
126	  size_type size() const { return end()-begin(); }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::end (this=0x1e) at /root/llvm/include/llvm/ADT/SmallVector.h:114
114	  const_iterator end() const { return (const_iterator)this->EndX; }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::begin (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:112
112	  const_iterator begin() const { return (const_iterator)this->BeginX; }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::begin (this=0x1e) at /root/llvm/include/llvm/ADT/SmallVector.h:111
111	  iterator begin() { return (iterator)this->BeginX; }
(gdb) 
llvm::StringRef::StringRef (this=0x7fff90b69b20, data=0x7f966377e507 "\211D$\020\213\005\217\210%", length=12373777) at /root/llvm/include/llvm/ADT/StringRef.h:83
83	    /*implicit*/ StringRef(const char *data, size_t length)
(gdb) 
84	      : Data(data), Length(length) {
(gdb) 
86	        "StringRef cannot be built from a NULL argument with non-null length");
(gdb) 
87	      }
(gdb) 
llvm::raw_svector_ostream::str (this=0x7fff90b69b80) at /root/llvm/lib/Support/raw_ostream.cpp:763
763	}
(gdb) 
llvm::report_fatal_error (Reason=...) at /root/llvm/lib/Support/ErrorHandling.cpp:75
75	    ssize_t written = ::write(2, MessageStr.data(), MessageStr.size());
(gdb) 
llvm::StringRef::size (this=0x1e) at /root/llvm/include/llvm/ADT/StringRef.h:113
113	    size_t size() const { return Length; }
(gdb) 
llvm::StringRef::data (this=0x7fff90b69bb0) at /root/llvm/include/llvm/ADT/StringRef.h:107
107	    const char *data() const { return Data; }
(gdb) 
llvm::report_fatal_error (Reason=...) at /root/llvm/lib/Support/ErrorHandling.cpp:76
76	    (void)written; // If something went wrong, we deliberately just give up.
(gdb) 
llvm::raw_svector_ostream::~raw_svector_ostream (this=0x7f96637793a4, __in_chrg=<optimized out>) at /root/llvm/lib/Support/raw_ostream.cpp:718
718	raw_svector_ostream::~raw_svector_ostream() {
(gdb) 
720	  flush();
(gdb) 
llvm::raw_ostream::flush (this=0x14517ca) at /root/llvm/include/llvm/Support/raw_ostream.h:129
129	  void flush() {
(gdb) 
130	    if (OutBufCur != OutBufStart)
(gdb) 
132	  }
(gdb) 
llvm::raw_svector_ostream::~raw_svector_ostream (this=0x7fff90b69b80, __in_chrg=<optimized out>) at /root/llvm/lib/Support/raw_ostream.cpp:718
718	raw_svector_ostream::~raw_svector_ostream() {
(gdb) 
llvm::raw_ostream::~raw_ostream (this=0x7fff90b69b80, __in_chrg=<optimized out>) at /root/llvm/lib/Support/raw_ostream.cpp:60
60	raw_ostream::~raw_ostream() {
(gdb) 
64	         "raw_ostream destructor called with non-empty buffer!");
(gdb) 
66	  if (BufferMode == InternalBuffer)
(gdb) 
68	}
(gdb) 
llvm::raw_svector_ostream::~raw_svector_ostream (this=0x7fff90b69b80, __in_chrg=<optimized out>) at /root/llvm/lib/Support/raw_ostream.cpp:721
721	}
(gdb) 
llvm::SmallVector<char, 64u>::~SmallVector (this=0x7fff90b69b80, __in_chrg=<optimized out>) at /root/llvm/include/llvm/ADT/SmallVector.h:874
874	class SmallVector : public SmallVectorImpl<T> {
(gdb) 
llvm::SmallVectorImpl<char>::~SmallVectorImpl (this=0x7fff90b69b80, __in_chrg=<optimized out>) at /root/llvm/include/llvm/ADT/SmallVector.h:380
380	  ~SmallVectorImpl() {
(gdb) 
382	    this->destroy_range(this->begin(), this->end());
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::end (this=0x7f96639cf0c8) at /root/llvm/include/llvm/ADT/SmallVector.h:113
113	  iterator end() { return (iterator)this->EndX; }
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::begin (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:111
111	  iterator begin() { return (iterator)this->BeginX; }
(gdb) 
llvm::SmallVectorTemplateBase<char, true>::destroy_range () at /root/llvm/include/llvm/ADT/SmallVector.h:295
295	  static void destroy_range(T *, T *) {}
(gdb) 
llvm::SmallVectorImpl<char>::~SmallVectorImpl (this=0x7fff90b69b20, __in_chrg=<optimized out>) at /root/llvm/include/llvm/ADT/SmallVector.h:385
385	    if (!this->isSmall())
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::isSmall (this=0x34efc60) at /root/llvm/include/llvm/ADT/SmallVector.h:85
85	  bool isSmall() const {
(gdb) 
86	    return BeginX == static_cast<const void*>(&FirstEl);
(gdb) 
87	  }
(gdb) 
llvm::SmallVectorImpl<char>::~SmallVectorImpl (this=0x7fff90b69b20, __in_chrg=<optimized out>) at /root/llvm/include/llvm/ADT/SmallVector.h:386
386	      free(this->begin());
(gdb) 
llvm::SmallVectorTemplateCommon<char, void>::begin (this=0x7fff90b69b20) at /root/llvm/include/llvm/ADT/SmallVector.h:111
111	  iterator begin() { return (iterator)this->BeginX; }
(gdb) 
llvm::SmallVectorImpl<char>::~SmallVectorImpl (this=0x7fff90b69b20, __in_chrg=<optimized out>) at /root/llvm/include/llvm/ADT/SmallVector.h:387
387	  }
(gdb) 
llvm::report_fatal_error (Reason=...) at /root/llvm/lib/Support/ErrorHandling.cpp:82
82	  sys::RunInterruptHandlers();
(gdb) 
llvm::sys::RunInterruptHandlers () at /root/llvm/lib/Support/Unix/Signals.inc:187
187	void llvm::sys::RunInterruptHandlers() {
(gdb) 
188	  SignalsMutex.acquire();
(gdb) 
llvm::sys::SmartMutex<true>::acquire (this=0xcbb546) at /root/llvm/include/llvm/Support/Mutex.h:96
96	      bool acquire() {
(gdb) 
97	        if (!mt_only || llvm_is_multithreaded()) {
(gdb) 
llvm::llvm_is_multithreaded () at /root/llvm/lib/Support/Threading.cpp:55
55	  return multithreaded_mode;
(gdb) 
56	}
(gdb) 
llvm::sys::SmartMutex<true>::acquire (this=0x1b4fb40) at /root/llvm/include/llvm/Support/Mutex.h:103
103	          assert((recursive || acquired == 0) && "Lock already acquired!!");
(gdb) 
104	          ++acquired;
(gdb) 
105	          return true;
(gdb) 
107	      }
(gdb) 
llvm::sys::RunInterruptHandlers () at /root/llvm/lib/Support/Unix/Signals.inc:189
189	  RemoveFilesToRemove();
(gdb) 
RemoveFilesToRemove () at /root/llvm/lib/Support/Unix/Signals.inc:123
123	static void RemoveFilesToRemove() {
(gdb) 
126	  for (unsigned i = 0, e = FilesToRemove.size(); i != e; ++i) {
(gdb) 
std::vector<std::string, std::allocator<std::string> >::size (this=0x0)
    at /opt/gcc4/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.5.4/../../../../include/c++/4.5.4/bits/stl_vector.h:533
533	      size() const
(gdb) 
534	      { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); }
(gdb) 
RemoveFilesToRemove () at /root/llvm/lib/Support/Unix/Signals.inc:148
148	}
(gdb) 
llvm::sys::RunInterruptHandlers () at /root/llvm/lib/Support/Unix/Signals.inc:190
190	  SignalsMutex.release();
(gdb) 
llvm::sys::SmartMutex<true>::release (this=0x0) at /root/llvm/include/llvm/Support/Mutex.h:109
109	      bool release() {
(gdb) 
110	        if (!mt_only || llvm_is_multithreaded()) {
(gdb) 
llvm::llvm_is_multithreaded () at /root/llvm/lib/Support/Threading.cpp:55
55	  return multithreaded_mode;
(gdb) 
56	}
(gdb) 
llvm::sys::SmartMutex<true>::release (this=0x1b4fb40) at /root/llvm/include/llvm/Support/Mutex.h:116
116	          assert(((recursive && acquired) || (acquired == 1)) &&
(gdb) 
118	          --acquired;
(gdb) 
119	          return true;
(gdb) 
121	      }
(gdb) 
llvm::sys::RunInterruptHandlers () at /root/llvm/lib/Support/Unix/Signals.inc:191
191	}
(gdb) 
llvm::report_fatal_error (Reason=...) at /root/llvm/lib/Support/ErrorHandling.cpp:84
84	  exit(1);
(gdb) 
Breakpoint 1, 0x00007f96637777e5 in exit () from /lib/ld-musl-x86_64.so.1
(gdb) 
Single stepping until exit from function exit,
which has no line number information.
^C
Program received signal SIGINT, Interrupt.
0x00007f96637777f9 in exit () from /lib/ld-musl-x86_64.so.1
(gdb) bt
#0  0x00007f96637777f9 in exit () from /lib/ld-musl-x86_64.so.1
#1  0x0000000000000029 in ?? ()
#2  0x000000000141a7ea in llvm::report_fatal_error (Reason=...) at /root/llvm/lib/Support/ErrorHandling.cpp:84
#3  0x000000000141a62e in llvm::report_fatal_error (Reason=0x1628dd3 "IO failure on output stream.") at /root/llvm/lib/Support/ErrorHandling.cpp:53
#4  0x000000000145185e in llvm::raw_fd_ostream::~raw_fd_ostream (this=0x1b50880, __in_chrg=<optimized out>) at /root/llvm/lib/Support/raw_ostream.cpp:514
#5  0x00007f96637776c7 in __funcs_on_exit () from /lib/ld-musl-x86_64.so.1
#6  0x0000000000000001 in ?? ()
#7  0x00000000034f0760 in ?? ()
#8  0x00000000008545ce in GetTargetMachine (TripleStr=...) at /root/llvm/tools/opt/opt.cpp:554
#9  0x00007f966377780a in exit () from /lib/ld-musl-x86_64.so.1
#10 0x0000000000000000 in ?? ()
(gdb) ^Dquit
A debugging session is active.
	Inferior 1 [process 971] will be killed.
Quit anyway? (y or n) y
~ # d
~ # 

  reply	other threads:[~2012-12-18  5:55 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-17 11:03 ojab
2012-12-17 16:58 ` Rich Felker
2012-12-17 17:22   ` Rich Felker
2012-12-18  5:55     ` ojab [this message]
2012-12-18  6:14       ` Rich Felker
2012-12-18  6:37         ` ojab

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50D0056A.4090303@ojab.ru \
    --to=ojab@ojab.ru \
    --cc=musl@lists.openwall.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).