Skip to content

NVHPC Compiler support #180

@pedronahum

Description

@pedronahum

Hi,

Wanted to play with the library, but it looks like as of now the NVC++ compiler is currently not supported.

  1. The freestanding tests would fail to compile. If not MSVC may need to be extended to also exclude NVHPC.

  2. The memory layout of the NVIDIA HPC compiler may be different from the other compilers as several static assertions are failing.

proxy/tests/proxy_traits_tests.cpp", line 47: error: static assertion failed
  static_assert(sizeof(pro::proxy<DefaultFacade>) == 4 * sizeof(void*));  // VTABLE should be embeded
  ^

"/proxy/tests/proxy_traits_tests.cpp", line 74: error: static assertion failed
  static_assert(sizeof(pro::proxy<DefaultFacade>) == 4 * sizeof(void*));  // VTABLE should be embeded
  ^

"/proxy/tests/proxy_traits_tests.cpp", line 104: error: static assertion failed
  static_assert(sizeof(pro::proxy<CopyableFacade>) == 3 * sizeof(void*));  // VTABLE should not be embeded
  ^

"/proxy/tests/proxy_traits_tests.cpp", line 125: error: static assertion failed
  static_assert(sizeof(pro::proxy<CopyableSmallFacade>) == 2 * sizeof(void*));  // VTABLE should not be embeded
  ^

"/proxy/tests/proxy_traits_tests.cpp", line 155: error: static assertion failed
  static_assert(sizeof(pro::proxy<TrivialFacade>) == 2 * sizeof(void*));  // VTABLE should be eliminated, but a placeholder is required
  ^

"/proxy/tests/proxy_traits_tests.cpp", line 286: error: static assertion failed
  static_assert(!pro::facade<BadFacade_BadConstraints_NotConstant>);
  ^
  1. Lastly, some diagnostic warnings may need to be supressed. As some unreferenced functions that were declared but never used are preventing the code to compile.

Anything I can do/help/test to address the static assertion issues?

Best,

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions