OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [g++.dg/] [tm/] [pr51411-2.C] - Rev 694

Go to most recent revision | Compare with Previous | Blame | View Log

// { dg-do compile }
// { dg-options "-fgnu-tm -O0" }

namespace std {
template<typename _CharT> struct char_traits;

template<typename _Tp> class allocator {
};

template<typename _Tp> struct less {
    bool operator()(const _Tp& __x, const _Tp& __y) const {
        return __x < __y;
    }
};

template <typename _Key, typename _Compare = std::less<_Key> > class map {
public:
    _Compare _M_key_compare;
    bool find(const _Key& __x) {
        return _M_key_compare(__x, __x);
    }
};

template<typename _CharT, typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<_CharT> > class basic_string {
public:
    bool compare(const basic_string& __str) const {
        return 0;
    }
};

typedef basic_string<char> string;

template<typename _CharT, typename _Traits>
inline bool operator<(const basic_string<_CharT, _Traits>& __lhs, const basic_string<_CharT, _Traits>& __rhs) {
    return __lhs.compare(__rhs);
}

extern template class basic_string<char>;

}

std::map<std::string> units;

__attribute__((transaction_callable))
void get(const std::string &name) {
    units.find(name);
}

// { dg-final { scan-assembler "_ZGTtNKSs7compareERKSs:" } }

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.