p811.c
来自「this is a gcc file, you can download it 」· C语言 代码 · 共 550 行 · 第 1/2 页
C
550 行
// This test case caused the compiler to abort at one point in time.// Build don't link:// Special g++ Options:// prms-id: 811class ostream; class streambuf;typedef long streamoff, streampos;struct _ios_fields { streambuf *_strbuf; ostream* _tie; int _width; unsigned long _flags; char _fill; unsigned char _state; unsigned short _precision;};enum state_value { _good = 0, _eof = 1, _fail = 2, _bad = 4 };enum open_mode { input=1, output=2, append=8 };class ios : public _ios_fields { public: enum io_state { goodbit=0, eofbit=1, failbit=2, badbit=4 }; enum open_mode { in=1, out=2, ate=4, app=8, trunc=16, nocreate=32, noreplace=64 }; enum seek_dir { beg, cur, end}; enum { skipws=01, left=02, right=04, internal=010, dec=020, oct=040, hex=0100, showbase=0200, showpoint=0400, uppercase=01000, showpos=02000, scientific=04000, fixed=0100000, unitbuf=020000, stdio=040000, dont_close=0x80000000 }; ostream* tie() const { return _tie; } ostream* tie(ostream* val) { ostream* save=_tie; _tie=val; return save; } char fill() const { return _fill; } char fill(char newf) { char oldf = _fill; _fill = newf; return oldf; } unsigned long flags() const { return _flags; } unsigned long flags(unsigned long new_val) { unsigned long old_val = _flags; _flags = new_val; return old_val; } unsigned short precision() const { return _precision; } unsigned short precision(int newp) { unsigned short oldp = _precision; _precision = (unsigned short)newp; return oldp; } unsigned long setf(unsigned long val) { unsigned long oldbits = _flags; _flags |= val; return oldbits; } unsigned long setf(unsigned long val, unsigned long mask) { unsigned long oldbits = _flags; _flags = (_flags & ~mask) | (val & mask); return oldbits; } unsigned long unsetf(unsigned long mask) { unsigned long oldbits = _flags & mask; _flags &= ~mask; return oldbits; } int width() const { return _width; } int width(long val) { long save = _width; _width = val; return save; } static const unsigned long basefield; static const unsigned long adjustfield; static const unsigned long floatfield; streambuf* rdbuf() const { return _strbuf; } void clear(int state = 0) { _state = state; } int good() const { return _state == 0; } int eof() const { return _state & ios::eofbit; } int fail() const { return _state & (ios::badbit|ios::failbit); } int bad() const { return _state & ios::badbit; } int rdstate() const { return _state; } void set(int flag) { _state |= flag; } operator void*() const { return fail() ? (void*)0 : (void*)this; } int operator!() const { return fail(); } void unset(state_value flag) { _state &= ~flag; } void close(); int is_open(); int readable(); int writable(); protected: ios(streambuf*sb) { _strbuf=sb; _state=0; _width=0; _fill=' '; _flags=ios::skipws; _precision=6; }};typedef ios::seek_dir _seek_dir; //# 168 "/usr/latest/lib/g++-include/streambuf.h" 3struct __streambuf { int _flags; char* _gptr; char* _egptr; char* _eback; char* _pbase; char* _pptr; char* _epptr; char* _base; char* _ebuf; struct streambuf *_chain;};struct streambuf : private __streambuf { friend class ios; friend class istream; friend class ostream; protected: static streambuf* _list_all; streambuf*& xchain() { return _chain; } void _un_link(); void _link_in(); char* gptr() const { return _gptr; } char* pptr() const { return _pptr; } char* egptr() const { return _egptr; } char* epptr() const { return _epptr; } char* pbase() const { return _pbase; } char* eback() const { return _eback; } char* ebuf() const { return _ebuf; } char* base() const { return _base; } void xput_char(char c) { *_pptr++ = c; } int xflags() { return _flags; } int xflags(int f) { int fl = _flags; _flags = f; return fl; } void xsetflags(int f) { _flags |= f; } void gbump(int n) { _gptr += n; } void pbump(int n) { _pptr += n; } void setb(char* b, char* eb, int a=0); void setp(char* p, char* ep) { _pbase=_pptr=p; _epptr=ep; } void setg(char* eb, char* g, char *eg) { _eback=eb; _gptr=g; _egptr=eg; } public: static int flush_all(); static void flush_all_linebuffered(); virtual int underflow(); virtual int overflow(int c = (-1) ); virtual int doallocate(); virtual streampos seekoff(streamoff, _seek_dir, int mode=ios::in|ios::out); virtual streampos seekpos(streampos pos, int mode = ios::in|ios::out); int sputbackc(char c); int sungetc(); streambuf(); virtual ~streambuf(); int unbuffered() { return _flags & 2 ? 1 : 0; } int linebuffered() { return _flags & 0x4000 ? 1 : 0; } void unbuffered(int i) { if (i) _flags |= 2 ; else _flags &= ~2 ; } void linebuffered(int i) { if (i) _flags |= 0x4000 ; else _flags &= ~0x4000 ; } int allocate() { if (base() || unbuffered()) return 0; else return doallocate(); } virtual int sync(); virtual int pbackfail(int c); virtual int ungetfail(); virtual streambuf* setbuf(char* p, int len); int in_avail() { return _egptr - _gptr; } int out_waiting() { return _pptr - _pbase; } virtual int sputn(const char* s, int n); virtual int sgetn(char* s, int n); long sgetline(char* buf, int n, char delim, int putback_delim); int sbumpc() { if (_gptr >= _egptr && underflow() == (-1) ) return (-1) ; else return *(unsigned char*)_gptr++; } int sgetc() { if (_gptr >= _egptr && underflow() == (-1) ) return (-1) ; else return *(unsigned char*)_gptr; } int snextc() { if (++_gptr >= _egptr && underflow() == (-1) ) return (-1) ; else return *(unsigned char*)_gptr; } int sputc(int c) { if (_pptr >= _epptr) return overflow(c); return *_pptr++ = c, (unsigned char)c; } int vscan(char const *fmt0, char* ap); int vform(char const *fmt0, char* ap);};struct __file_fields { char _fake; char _shortbuf[1]; short _fileno; int _blksize; char* _save_gptr; char* _save_egptr; long _offset;};class filebuf : public streambuf { struct __file_fields _fb; void init(); public: filebuf(); filebuf(int fd); filebuf(int fd, char* p, int len); ~filebuf(); filebuf* attach(int fd); filebuf* open(const char *filename, const char *mode); filebuf* open(const char *filename, int mode, int prot = 0664); virtual int underflow(); virtual int overflow(int c = (-1) ); int is_open() { return _fb._fileno >= 0; } int fd() { return is_open() ? _fb._fileno : (-1) ; } filebuf* close(); virtual int doallocate(); virtual streampos seekoff(streamoff, _seek_dir, int mode=ios::in|ios::out); int sputn(const char* s, int n); int sgetn(char* s, int n); virtual int sync(); protected: virtual int pbackfail(int c); int is_reading() { return eback() != egptr(); } char* cur_ptr() { return is_reading() ? gptr() : pptr(); } char* file_ptr() { return _fb._save_gptr ? _fb._save_egptr : egptr(); } int do_flush(); virtual int sys_read(char* buf, int size); virtual long sys_seek(long , _seek_dir); virtual long sys_write(const void*, long); virtual int sys_stat(void*); virtual int sys_close();};inline int ios::readable() { return rdbuf()->_flags & 4 ; }inline int ios::writable() { return rdbuf()->_flags & 8 ; }inline int ios::is_open() {return rdbuf()->_flags & 4 +8 ;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?