⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 noreturn-1.c

📁 linux下的gcc编译器
💻 C
字号:
// PR optimization/12965// Origin: <qboosh@pld-linux.org>// Reduced testcase: Falk Hueffner <falk@debian.org>// This ICEd on Alpha because the reload pass emitted save/restore// insns around a no-return call.// { dg-do compile }// { dg-options "-O2" }template <typename _Alloc> class allocator;template <class _CharT> struct char_traits;template <typename _CharT,	  typename _Traits = char_traits<_CharT>,	  typename _Alloc = allocator<_CharT> >class basic_string;typedef basic_string<char> string;static inline int __exchange_and_add(volatile int * __mem, int __val) {    int __result;    asm("" : "=&r"(__result));    return __result;}template<typename _Tp> struct allocator {    allocator() throw() { }    allocator(const allocator &) throw() {}};template<typename _CharT, typename _Traits, typename _Alloc>struct basic_string {    typedef _Alloc allocator_type;    struct _Rep {	int _M_references;	void _M_dispose(const _Alloc & __a) {	    if (__exchange_and_add(&_M_references, -1) <= 0)		_M_destroy(__a);	} void _M_destroy(const _Alloc &) throw();    };    struct _Alloc_hider : _Alloc {	_CharT *_M_p;    };    mutable _Alloc_hider _M_dataplus;    _CharT *_M_data() const { return _M_dataplus._M_p; }    _Rep *_M_rep() const {	return &((reinterpret_cast<_Rep *>(_M_data()))[-1]);    }    basic_string();    basic_string(const _CharT * __s, const _Alloc & __a = _Alloc());    ~basic_string() {	_M_rep()->_M_dispose(this->get_allocator());    }    allocator_type get_allocator() const { return _M_dataplus; }};struct Egeneric {    void stack(const string & passage, const string & message = "") { }};struct infinint {    void detruit() throw(Egeneric);    template<class T> void infinint_from(T a) throw(Egeneric);    infinint(long a = 0) throw(Egeneric) {	try {	    infinint_from(a);	} catch(Egeneric& e) {	    e.stack("infinint::infinint", "long");	}    }    ~infinint() throw(Egeneric) {	try {	    detruit();	} catch(Egeneric& e) { }    }};struct inode {    string x;    infinint a, c;    infinint ea_offset;    inode();};inode::inode(){    ea_offset = 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -