https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77793
Bug ID: 77793 Summary: GNAT Bug Box when using the "&" operator from Ada.Containers.Vectors on inline uses of expression functions Product: gcc Version: 6.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: ada Assignee: unassigned at gcc dot gnu.org Reporter: lars.schulna at gmail dot com Target Milestone: --- Created attachment 39723 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=39723&action=edit Source file triggering the bug box Compiling the attached file bug.adb with > gcc -v -save-temps -gnatd.n -c bug.adb Triggers the following bug box: Using built-in specs. COLLECT_GCC=gcc Target: x86_64-pc-linux-gnu Configured with: /build/gcc-multilib/src/gcc/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --enable-libmpx --with-system-zlib --with-isl --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-gnu-unique-object --enable-linker-build-id --enable-lto --enable-plugin --enable-install-libiberty --with-linker-hash-style=gnu --enable-gnu-indirect-function --enable-multilib --disable-werror --enable-checking=release Thread model: posix gcc version 6.2.1 20160830 (GCC) COLLECT_GCC_OPTIONS='-v' '-save-temps' '-gnatd.n' '-c' '-mtune=generic' '-march=x86-64' /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/gnat1 -quiet -dumpbase bug.adb -auxbase bug -gnatd.n -mtune=generic -march=x86-64 bug.adb -o bug.s /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/system.ads bug.adb /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/ada.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/a-contai.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/a-convec.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/a-iteint.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/a-conhel.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/a-finali.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/s-finroo.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/s-atocou.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/a-stream.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/a-tags.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/s-stoele.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/s-stalib.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/a-unccon.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/s-exctab.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/s-soflin.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/a-except.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/s-parame.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/s-traent.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/s-stache.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/s-addima.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/s-conca2.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/s-stopoo.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/s-stratt.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/s-unstyp.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/s-secsta.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/s-stposu.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/s-finmas.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/a-convec.adb /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/a-cgarso.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/a-uncdea.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/a-conhel.adb /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/s-stoele.adb /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/s-stalib.adb /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/s-memory.ads /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/adainclude/s-atocou.adb +===========================GNAT BUG DETECTED==============================+ | 6.2.1 20160830 (x86_64-pc-linux-gnu) GCC error: | | in gnat_to_gnu_entity, at ada/gcc-interface/decl.c:376 | | Error detected at bug.adb:23:20 | | Please submit a bug report; see http://gcc.gnu.org/bugs.html. | | Use a subject line meaningful to you and us to track the bug. | | Include the entire contents of this bug box in the report. | | Include the exact command that you entered. | | Also include sources listed below. | +==========================================================================+ Note that the inline use of the function expression, the vector package and the record types are necessary to trigger the box. Normal function declarations, extracting the parameters to "&" out into separate vars or using a user defined package with an operator "&" all compile as expected.