g++ a.h a.h: #pragma once // warning: #pragma once in main file
Dup of bug 39029 which shows the warning is just part of the symptom. *** This bug has been marked as a duplicate of bug 39029 ***
(In reply to comment #1) > Dup of bug 39029 which shows the warning is just part of the symptom. > > *** This bug has been marked as a duplicate of bug 39029 *** It's *not* a duplicate. This one is about generating the .gch. The other one is about using the .gch (and not about the warning message).
If you're going to change the status please check what VERIFIED means (we don't use that status in this bugzilla)
(In reply to comment #3) > If you're going to change the status please check what VERIFIED means (we don't > use that status in this bugzilla) Oops
I can also confirm this bug. Is there any specific reason why GCC emits the pagma once warning while compiling PCH?
This looks like a specific instance or duplicate of the much older bug 9471.
I can also confirm this bug still exists in GCC 7.1.
Hi, This is still the case up to gcc 9 (already released) and current trunk of gcc 10. Cheers, Romain
Confirming via bug 89808
The master branch has been updated by Lewis Hyatt <lhyatt@gcc.gnu.org>: https://gcc.gnu.org/g:9938645fcf914ec2a3fa8137cf1456ad4af5f77c commit r14-5471-g9938645fcf914ec2a3fa8137cf1456ad4af5f77c Author: Lewis Hyatt <lhyatt@gmail.com> Date: Fri Nov 10 11:10:18 2023 -0500 c-family: Let libcpp know when the compilation is for a PCH [PR9471] libcpp will generate diagnostics when it encounters things in the main file that only belong in a header file, such as `#pragma once' or `#pragma GCC system_header'. But sometimes the main file is a header file that is just being compiled separately, e.g. to produce a C++ module or a PCH, in which case such diagnostics should be suppressed. libcpp already has an interface to request that, so make use of it in the C frontends to prevent libcpp from issuing unwanted diagnostics when compiling a PCH. gcc/c-family/ChangeLog: PR pch/9471 PR pch/47857 * c-opts.cc (c_common_post_options): Set cpp_opts->main_search so libcpp knows it is compiling a header file separately. gcc/testsuite/ChangeLog: PR pch/9471 PR pch/47857 * g++.dg/pch/main-file-warnings.C: New test. * g++.dg/pch/main-file-warnings.Hs: New test. * gcc.dg/pch/main-file-warnings.c: New test. * gcc.dg/pch/main-file-warnings.hs: New test.
Fixed for GCC 14.