1// { dg-require-namedlocale "de_DE" }
2
3// 1999-11-15 Kevin Ediger  <kediger@licor.com>
4// test the floating point inserters (facet num_put)
5
6// Copyright (C) 1999-2015 Free Software Foundation, Inc.
7//
8// This file is part of the GNU ISO C++ Library.  This library is free
9// software; you can redistribute it and/or modify it under the
10// terms of the GNU General Public License as published by the
11// Free Software Foundation; either version 3, or (at your option)
12// any later version.
13
14// This library is distributed in the hope that it will be useful,
15// but WITHOUT ANY WARRANTY; without even the implied warranty of
16// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17// GNU General Public License for more details.
18
19// You should have received a copy of the GNU General Public License along
20// with this library; see the file COPYING3.  If not see
21// <http://www.gnu.org/licenses/>.
22
23#include <iostream>
24#include <iomanip>
25#include <locale>
26#include <sstream>
27#include <limits>
28#include <testsuite_hooks.h>
29
30void
31test02()
32{
33  using namespace std;
34  bool test __attribute__((unused)) = true;
35
36  // Make sure we can output a long float in fixed format
37  // without seg-faulting (libstdc++/4402)
38  double val2 = 3.5e230;
39
40  ostringstream os2;
41  os2.precision(3);
42  os2.setf(ios::fixed);
43
44  // Check it can be done in a locale with grouping on.
45  locale loc2 = locale("de_DE");
46  os2.imbue(loc2);
47  os2 << fixed << setprecision(3) << val2 << endl;
48  os2 << endl;
49  os2 << fixed << setprecision(1) << val2 << endl;
50}
51
52int
53main()
54{
55  test02();
56  return 0;
57}
58