source: rtems/testsuites/sptests/spcxx01/init.cc @ 2158621

Last change on this file since 2158621 was 2158621, checked in by Sebastian Huber <sebastian.huber@…>, on Dec 19, 2018 at 8:25:29 AM

Add aligned_alloc() and memalign()

Ensure that the C++17 aligned new operator works.

Close #3666.

  • Property mode set to 100644
File size: 2.1 KB
Line 
1/*
2 * SPDX-License-Identifier: BSD-2-Clause
3 *
4 * Copyright (C) 2018 embedded brains GmbH
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 *    notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 *    notice, this list of conditions and the following disclaimer in the
13 *    documentation and/or other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
19 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 * POSSIBILITY OF SUCH DAMAGE.
26 */
27
28#ifdef HAVE_CONFIG_H
29#include "config.h"
30#endif
31
32#include <new>
33
34#include <rtems.h>
35
36#include <tmacros.h>
37
38const char rtems_test_name[] = "SPCXX 1";
39
40extern "C" void Init(rtems_task_argument arg)
41{
42  TEST_BEGIN();
43
44  int *i = static_cast<decltype(i)>(
45    ::operator new(sizeof(*i), std::align_val_t(256))
46  );
47  RTEMS_OBFUSCATE_VARIABLE(i);
48  rtems_test_assert(i != nullptr);
49  rtems_test_assert(reinterpret_cast<uintptr_t>(i) % 256 == 0);
50  ::delete(i);
51
52  TEST_END();
53  exit(0);
54}
55
56#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
57
58#define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
59
60#define CONFIGURE_MAXIMUM_TASKS 1
61
62#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
63
64#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
65
66#define CONFIGURE_INIT
67
68#include <rtems/confdefs.h>
Note: See TracBrowser for help on using the repository browser.