// { dg-do compile }
// { dg-options "-fgnu-tm" }
/* { dg-add-options bind_pic_locally } */

class InputStream
{
	public:
	virtual unsigned int readUint32 () = 0;
};

class Building
{
	public:
	__attribute__((transaction_safe)) Building (InputStream *stream);
	__attribute__((transaction_safe)) void freeGradients ();
	void load (InputStream *stream);
};

Building::Building (InputStream *stream)
{
	load(stream);
}

void Building::load (InputStream *stream)
{
	int j = (int)stream->readUint32 ();
	freeGradients ();
}
