[LLVMbugs] [Bug 8769] New: wrong code with -O2
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Fri Dec 10 02:56:48 PST 2010
http://llvm.org/bugs/show_bug.cgi?id=8769
Summary: wrong code with -O2
Product: new-bugs
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P
Component: new bugs
AssignedTo: unassignedbugs at nondot.org
ReportedBy: marc.glisse at normalesup.org
CC: llvmbugs at cs.uiuc.edu
When I compile the following code with clang++ -O1, it works fine. With clang++
-O2, it compiles fine but the resulting code crashes in the vector::push_back
(or in the placement new). I am using libstdc++-4.2 on debian-x64.
#include <vector>
#include <iterator>
#include <tr1/array>
typedef std::tr1::array<int,2> Point;
struct Generator_base {
Point d_item;
double d_range;
Point const& operator*() const { return d_item; }
};
template <class InputIterator, class OutputIterator>
inline void copy_X( InputIterator first,
OutputIterator result)
{
*result = *first;
}
int main() {
std::vector<Point> points;
points.reserve(1);
Generator_base g;
copy_X( g, std::back_inserter(points));
return 0;
}
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list