view gcc/testsuite/g++.dg/warn/Winit-list3.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
line wrap: on
line source

// PR c++/67445
// { dg-do compile { target c++11 } }

#include <initializer_list>

using SL = std::initializer_list<char const*>;

SL retArray(int i) noexcept
{
  if (i == 0)
    {
      SL l{"Test 1", "Test 2", "Test 3"}; // { dg-message "declared" }
      return l;			// { dg-warning "initializer_list" }
    }
  else if (i == 1)
    return SL{"Test 1", "Test 2", "Test 3"}; // { dg-warning "initializer_list" }
  else if (i == 2)
    return {"Test 1", "Test 2", "Test 3"}; // { dg-warning "initializer_list" }
  else
    {
      static SL l{"Test 1", "Test 2", "Test 3"};
      return l;			// no warning about returning static.
    }
}

const char *p;
int main(int, char const* const*)
{
  for (auto&& i : retArray(1))
    {
      p = i;
    }
  return 0;
}