https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96835
--- Comment #3 from Tobias Weinzierl <tobias.weinzierl at durham dot ac.uk> --- The full compilation error is + g++-10 -fopenmp -foffload=nvptx-none bug.cpp -o bug ptxas /tmp/cc1XobxJ.o, line 253; error : Illegal operand type to instruction 'ld' ptxas /tmp/cc1XobxJ.o, line 266; error : Label expected for argument 0 of instruction 'call' ptxas /tmp/cc1XobxJ.o, line 266; error : Function '_ZN6vectorILi4EEC1ERKi' not declared in this scope ptxas /tmp/cc1XobxJ.o, line 266; fatal : Call target not recognized ptxas fatal : Ptx assembly aborted due to errors nvptx-as: ptxas returned 255 exit status mkoffload: fatal error: x86_64-linux-gnu-accel-nvptx-none-gcc-10 returned 1 exit status compilation terminated. lto-wrapper: fatal error: /usr/lib/gcc/x86_64-linux-gnu/10//accel/nvptx-none/mkoffload returned 1 exit status compilation terminated. /usr/bin/ld: error: lto-wrapper failed collect2: error: ld returned 1 exit status As long as the constructor is not used within the map region, the code translates fine.