<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/62461>62461</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
lld: fails to build with `error: ISO C++ forbids declaration of 'RISCV' with no type [-fpermissive]`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
sylvestre
</td>
</tr>
</table>
<pre>
With gcc 12:
```
FAILED: tools/lld/ELF/CMakeFiles/lldELF.dir/Arch/RISCV.cpp.o
/opt/sccache//sccache /usr/bin/g++-12 -DLLD_VENDOR=\"Debian\" -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/build/source/build-llvm/tools/lld/ELF -I/build/source/lld/ELF -I/build/source/lld/include -I/build/source/build-llvm/tools/lld/include -I/build/source/build-llvm/include -I/build/source/llvm/include -fstack-protector-strong -Wformat -Werror=format-security -Wno-unused-command-line-argument -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fdebug-prefix-map=/build/source/build-llvm=build-llvm -fdebug-prefix-map=/build/source/= -no-canonical-prefixes -ffile-prefix-map=/build/source/build-llvm=build-llvm -ffile-prefix-map=/build/source/= -no-canonical-prefixes -O3 -DNDEBUG -fno-exceptions -funwind-tables -std=c++17 -MD -MT tools/lld/ELF/CMakeFiles/lldELF.dir/Arch/RISCV.cpp.o -MF tools/lld/ELF/CMakeFiles/lldELF.dir/Arch/RISCV.cpp.o.d -o tools/lld/ELF/CMakeFiles/lldELF.dir/Arch/RISCV.cpp.o -c /build/source/lld/ELF/Arch/RISCV.cpp
/build/source/lld/ELF/Arch/RISCV.cpp:104:1: error: ISO C++ forbids declaration of 'RISCV' with no type [-fpermissive]
104 | RISCV::RISCV() {
| ^~~~~
/build/source/lld/ELF/Arch/RISCV.cpp:104:14: error: 'int llvm::RISCV::RISCV()' should have been declared inside 'llvm::RISCV'
104 | RISCV::RISCV() {
| ^
/build/source/lld/ELF/Arch/RISCV.cpp: In function 'int llvm::RISCV::RISCV()':
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0Vk-P4rgT_TTmYhkFB0hz4JAmZIQEzU_ADPqdkGNXgnccO2s79PQc-rOvnDDD_NltTU_vIhRwVb3ye2WnbOacrDTAHE3u0SQbsNafjZ27J3UB5y0MCiOe5kfpz7jiHI8oilMUZShK0TS6fvth98zT1XqZoTjF3hjlEM2VEojmy3WOaL7YsI-QSwVXx3KdD4W0iOap5WdE891qv_gw5E0zNPialuam8YjmjnPGz4BofhtgRPPWBXwhNaJ5heg9ovdkRDHJ1uvs9GH5kG13KM7QZIEozaCQTPf_MclO-Wq9PG3zfL88nO5Xhz2Ks-k4ON49vD_tt-93i2UYrdPdu2UXe7Od9odscVpsH_aH9OFw2qSL3XZ_c-Tb3Sb92bxebVY36yoQb2VXIGday-GLgSh1qRHNfyriP4B-zS81V62A10_8CuDLoT8Glc4z_pE01njg3ljivDW6wuRYGlszj8kRrDUWxVlvIA54a6V_wuSoDWl160AQbuqaaUGU1ECYrdoadMAK5oF4WUO32NvdYZX__7qGKM4oJuX_VgtMSm2Ig5ppLzmR2oNtjJNeGo1JeZFOFlJJ_0SkDhM4cpZCgP6G2zfzHJlSwfPJW_Ydx4ZZVoMHi8nx0UoPQavUlcPkyJnz5M-WqR5RS-ekrkgpQQkitfSSKfkZrMOkAdHx7COV0VX3wOQo60ZJLj0pmVL-bE1bna_52FMBpNW3TKJ3cMWcIzXUjHNwrjdaEK0Ok5DaXKC3NeCcrOXnwOpm1QY-cWg88U9NMAlQ4IFoo8lFWt8yRYQ3QbBrqwqcJ-YC1kpxxYdl6xeqF62AiTCD1AK0Z_0CHLln4qsE1zaNsT4IKIVklTbOS-4INypMVJat5gEX9kn4dSGOefbdGIq2Io2FUn4iNWtCe3h5W8fZbfDrCVCcYRJkMm205ExdIRBIlFLBWzj8Gv4lCtsYk-whW96_f9e_Av1iXovU6kepBfGsUCHYeYHijPf9dZRgsskw2Rze3uXJJn9zkqHAxPwLVDh-sbf-DerrGfU6VJyOonF4hoPy2kRSvNpv8aKvMC6NLaRwWABXzPavgikxokmXBdEEP4YzWRvcvXxock_KBmzXOi6AJllPDY-iMUbJAvewOEVxes1wh-gMo-T-Gth9QiSaLJ-fn5_fKm38nTZEE6k97nfyjcSPfIIudzatEvjMLoALAH2tAQgstQu9A9Hkxzw0-aLit_T-tla80vhLy3mFxp_vUAMxj8UsnrEBzEfTO3oX3yWz6eA8T6Z3RTKJRZREVMQ8mY1ZUcbxKGGzyfSOjQZyTiMaR-M4ipJRPJoOi9GsGJUJvSv4lEXJDI0jqJlUw0BsaGw1kM61MJ_S8XQ0UKwA5brbH6UaHnHnRJSGy6CdBwwp2sqhcaSk8-6WxUuvYB4KFKe4ZFI57A3uKtjvTTSN_qu9PY0GrVXzs_eNC8XsLoWV9Oe2GHJT324aHf_Gmj-Ah0tkJy70gk78XwEAAP__UO98vw">