pr34850.c

来自「用于进行gcc测试」· C语言 代码 · 共 75 行

C
75
字号
/* { dg-do compile } *//* { dg-options "-O2" } */typedef unsigned char uint8_t;typedef unsigned int uint32_t;typedef uint8_t byte;typedef uint32_t u32bit;typedef unsigned int size_t;extern "C" {    extern void __warn_memset_zero_len (void) __attribute__((__warning__ ("")));    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__))    void * memset (void *__dest, int __ch, size_t __len) throw () {	if (__builtin_constant_p (__len) && __len == 0)	    __warn_memset_zero_len (); /* { dg-warning "" } */    }}inline void clear_mem(void* ptr, u32bit n)    {    memset(ptr, 0, n);}template<typename T> class MemoryRegion    {public:    u32bit size() const {    }    const T* begin() const {    }    void set(const T in[], u32bit n) {	create(n);    }    void set(const MemoryRegion<T>& in) {	set(in.begin(), in.size());    }    void clear() {	clear_mem(buf, allocated);    }    void create(u32bit);    MemoryRegion() {	used = allocated = 0;    }    mutable T* buf;    mutable u32bit used;    mutable u32bit allocated;};template<typename T> void MemoryRegion<T>::create(u32bit n)    {    if(n <= allocated) {	clear();    }}template<typename T> class SecureVector : public MemoryRegion<T>    {public:    SecureVector<T>& operator=(const MemoryRegion<T>& in)          {	if(this != &in) set(in);    }};class OctetString    {public:    SecureVector<byte> bits_of() const {    }    OctetString& operator^=(const OctetString&);    void change(const MemoryRegion<byte>& in) {	bits = in;    }    OctetString(const MemoryRegion<byte>& in) {	change(in);    }    SecureVector<byte> bits;};OctetString& OctetString::operator^=(const OctetString& k)    {    if(&k == this) {	bits.clear();    }}bool operator==(const OctetString& s1, const OctetString& s2)    {    return (s1.bits_of() == s2.bits_of());}

⌨️ 快捷键说明

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