https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104493

            Bug ID: 104493
           Summary: OpenMP offload map cannot handle const
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: xw111luoye at gmail dot com
  Target Milestone: ---

See reproducer
https://github.com/ye-luo/openmp-target/blob/master/tests/map/struct_with_const.cpp

$ g++ -fopenmp -foffload=nvptx-none struct_with_const.cpp
struct_with_const.cpp: In constructor ‘with_const::with_const()’:
struct_with_const.cpp:9:42: error: array section does not have mappable type in
‘map’ clause
    9 |     #pragma omp target enter data map(to:this[:1])
      |                                          ^~~~
struct_with_const.cpp:12:24: note: static field ‘with_const::size’ is not
mappable
   12 |   constexpr static int size = 6;
      |                        ^~~~
struct_with_const.cpp:13:20: note: static field ‘with_const::b’ is not mappable
   13 |   static const int b = 12;
      |                    ^
In file included from
/soft/gcc/gcc-12-dev-2022-02-10/include/c++/12.0.1/string:53,
                 from
/soft/gcc/gcc-12-dev-2022-02-10/include/c++/12.0.1/bits/locale_classes.h:40,
                 from
/soft/gcc/gcc-12-dev-2022-02-10/include/c++/12.0.1/bits/ios_base.h:41,
                 from
/soft/gcc/gcc-12-dev-2022-02-10/include/c++/12.0.1/ios:42,
                 from
/soft/gcc/gcc-12-dev-2022-02-10/include/c++/12.0.1/ostream:38,
                 from
/soft/gcc/gcc-12-dev-2022-02-10/include/c++/12.0.1/iostream:39,
                 from struct_with_const.cpp:1:
/soft/gcc/gcc-12-dev-2022-02-10/include/c++/12.0.1/bits/basic_string.h:140:33:
note: static field ‘std::__cxx11::basic_string<char>::npos’ is not mappable
  140 |       static const size_type    npos = static_cast<size_type>(-1);
      |                                 ^~~~
struct_with_const.cpp:9:13: error: ‘#pragma omp target enter data’ must contain
at least one ‘map’ clause
    9 |     #pragma omp target enter data map(to:this[:1])
      |

Reply via email to