https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81687
Bug ID: 81687 Summary: Compiler drops label in OpenMP region Product: gcc Version: 7.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: protze at itc dot rwth-aachen.de Target Milestone: --- Created attachment 41911 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41911&action=edit stripped down reproducer The issue was reproduced on these systems / compilers: - CENTOS 7.3 / x86_64: - gcc-Version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) - gcc-Version 5.3.0 (GCC) - gcc-Version 6.2.0 (GCC) - gcc-Version 7.1.0 (GCC) - Ubuntu 17.04 / x86_64: - gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2) Compiling attached code with OpenMP flag, the compiler drops the label and therefore the linker cannot reference the label: $ gcc -fopenmp label-test.c /tmp/pj416018/cluster-hpc_5730/cc0vHR78.o: In function `main._omp_fn.0': test.c:(.text+0x31): undefined reference to `.L4' Looking into the pre-assembly (-S), the label .L4 is missing when compiling with OpenMP flag, while $.L4 is used in a movl instruction. The label is there when compiling without OpenMP flag. Introducing more instructions before/after the label or referencing the label using goto does not change the situation. Optimization only changes the name of the label, but the label is missing in all cases.