Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Side by Side Diff: gcc/libstdc++-v3/testsuite/27_io/ios_base/storage/11584.cc

Issue 3050029: [gcc] GCC 4.5.0=>4.5.1 (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/nacl-toolchain.git
Patch Set: Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // 2004-01-25 jlquinn@gcc.gnu.org
2
3 // Copyright (C) 2004, 2005, 2009 Free Software Foundation
4 //
5 // This file is part of the GNU ISO C++ Library. This library is free
6 // software; you can redistribute it and/or modify it under the
7 // terms of the GNU General Public License as published by the
8 // Free Software Foundation; either version 3, or (at your option)
9 // any later version.
10
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
15
16 // You should have received a copy of the GNU General Public License along
17 // with this library; see the file COPYING3. If not see
18 // <http://www.gnu.org/licenses/>.
19
20 // 27.4.2.5 ios_base storage functions
21
22 #include <cstdlib>
23 #include <new>
24 #include <iostream>
25 #include <testsuite_hooks.h>
26
27 int new_fails;
28
29 void* operator new(std::size_t n) throw (std::bad_alloc)
30 {
31 if (new_fails)
32 throw std::bad_alloc();
33 return malloc(n);
34 }
35 void* operator new[] (std::size_t n) throw (std::bad_alloc)
36 { return operator new(n); }
37
38 void operator delete (void *p) throw() { free(p); }
39 void operator delete[] (void *p) throw() { operator delete(p); }
40
41 int main ()
42 {
43 bool test __attribute__((unused)) = true;
44 const int i = std::ios::xalloc();
45 VERIFY( i >= 0 );
46
47 new_fails = 1;
48
49 // Successive accesses to failure storage clears to zero.
50 std::cout.iword(100) = 69;
51 VERIFY( std::cout.iword(100) == 0 );
52
53 // Access to pword failure storage shouldn't clear iword pword storage.
54 long& lr = std::cout.iword(100);
55 lr = 69;
56
57 void* pv = std::cout.pword(100);
58 VERIFY( pv == 0 );
59 VERIFY( lr == 69 );
60
61 return 0;
62 }
63
OLDNEW
« no previous file with comments | « gcc/libstdc++-v3/testsuite/27_io/ios_base/failure/what-3.cc ('k') | gcc/libstdc++-v3/testsuite/27_io/ios_base/storage/2.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698