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

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [gcc/] [testsuite/] [g++.dg/] [expr/] [lval2.C] - Rev 12

Compare with Previous | Blame | View Log

// PR c++/19199

// { dg-do run }

// We used to turn the COND_EXPR lvalue into a MIN_EXPR rvalue, and
// then return a reference to a temporary in qMin.

#include <assert.h>

enum Foo { A, B };

template<typename T> T &qMin(T &a, T &b) 
{
  return a < b ? a : b;
}

int main (int,  char **)
{
  Foo f = A;
  Foo g = B;
  Foo &h = qMin(f, g);
  assert (&h == &f || &h == &g);
  const Foo &i = qMin((const Foo&)f, (const Foo&)g);
  assert (&i == &f || &i == &g);
  return 0;
}

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.