~ubuntu-branches/ubuntu/trusty/libidn/trusty

« back to all changes in this revision

Viewing changes to lib/gltests/test-alloca-opt.c

  • Committer: Bazaar Package Importer
  • Author(s): Simon Josefsson
  • Date: 2011-03-01 16:14:24 UTC
  • mfrom: (1.2.14 upstream) (3.1.7 sid)
  • Revision ID: james.westby@ubuntu.com-20110301161424-6vh7822t8aderzap
Tags: 1.20-1
* New upstream release.
* Moved from experimental to unstable after testing.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Test of optional automatic memory allocation.
 
2
   Copyright (C) 2005, 2007, 2009-2011 Free Software Foundation, Inc.
 
3
 
 
4
   This program is free software: you can redistribute it and/or modify
 
5
   it under the terms of the GNU General Public License as published by
 
6
   the Free Software Foundation; either version 3 of the License, or
 
7
   (at your option) any later version.
 
8
 
 
9
   This program is distributed in the hope that it will be useful,
 
10
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
12
   GNU General Public License for more details.
 
13
 
 
14
   You should have received a copy of the GNU General Public License
 
15
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
16
 
 
17
/* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
 
18
 
 
19
#include <config.h>
 
20
 
 
21
#include <alloca.h>
 
22
 
 
23
#if HAVE_ALLOCA
 
24
 
 
25
static void
 
26
do_allocation (int n)
 
27
{
 
28
  void *ptr = alloca (n);
 
29
  (void) ptr;
 
30
}
 
31
 
 
32
void (*func) (int) = do_allocation;
 
33
 
 
34
#endif
 
35
 
 
36
int
 
37
main ()
 
38
{
 
39
#if HAVE_ALLOCA
 
40
  int i;
 
41
 
 
42
  /* Repeat a lot of times, to make sure there's no memory leak.  */
 
43
  for (i = 0; i < 100000; i++)
 
44
    {
 
45
      /* Try various values.
 
46
         n = 0 gave a crash on Alpha with gcc-2.5.8.
 
47
         Some versions of MacOS X have a stack size limit of 512 KB.  */
 
48
      func (34);
 
49
      func (134);
 
50
      func (399);
 
51
      func (510823);
 
52
      func (129321);
 
53
      func (0);
 
54
      func (4070);
 
55
      func (4095);
 
56
      func (1);
 
57
      func (16582);
 
58
    }
 
59
#endif
 
60
 
 
61
  return 0;
 
62
}