diff options
| author | Ken Matsui <kmatsui@gcc.gnu.org> | 2024-03-01 22:10:55 -0800 |
|---|---|---|
| committer | Ken Matsui <kmatsui@gcc.gnu.org> | 2024-10-08 21:17:47 -0400 |
| commit | 821d56100e1110ab6a166f50819522254eb30923 (patch) | |
| tree | 5fb0a0aeb61c795781d51a274568139d4647d804 /libcpp | |
| parent | 41179a3276807c6bb6d30f9bafb6b9da31320e48 (diff) | |
gcc, libcpp: Add warning switch for "#pragma once in main file" [PR89808]
This patch adds a warning switch for "#pragma once in main file". The
warning option name is Wpragma-once-outside-header, which is the same
as Clang provides.
PR preprocessor/89808
gcc/c-family/ChangeLog:
* c.opt (Wpragma_once_outside_header): Define new option.
* c.opt.urls: Regenerate.
gcc/ChangeLog:
* doc/invoke.texi (Warning Options): Document
-Wno-pragma-once-outside-header.
libcpp/ChangeLog:
* include/cpplib.h (cpp_warning_reason): Define
CPP_W_PRAGMA_ONCE_OUTSIDE_HEADER.
* directives.cc (do_pragma_once): Use
CPP_W_PRAGMA_ONCE_OUTSIDE_HEADER.
gcc/testsuite/ChangeLog:
* g++.dg/warn/Wno-pragma-once-outside-header.C: New test.
* g++.dg/warn/Wpragma-once-outside-header.C: New test.
Signed-off-by: Ken Matsui <kmatsui@gcc.gnu.org>
Reviewed-by: Marek Polacek <polacek@redhat.com>
Diffstat (limited to 'libcpp')
| -rw-r--r-- | libcpp/directives.cc | 3 | ||||
| -rw-r--r-- | libcpp/include/cpplib.h | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/libcpp/directives.cc b/libcpp/directives.cc index c30087c7a1d..95095b08eaf 100644 --- a/libcpp/directives.cc +++ b/libcpp/directives.cc @@ -2074,7 +2074,8 @@ static void do_pragma_once (cpp_reader *pfile) { if (_cpp_in_main_source_file (pfile)) - cpp_error (pfile, CPP_DL_WARNING, "#pragma once in main file"); + cpp_warning (pfile, CPP_W_PRAGMA_ONCE_OUTSIDE_HEADER, + "%<#pragma once%> in main file"); check_eol (pfile, false); _cpp_mark_file_once_only (pfile, pfile->buffer->file); diff --git a/libcpp/include/cpplib.h b/libcpp/include/cpplib.h index fbddc34b6af..bff660174f5 100644 --- a/libcpp/include/cpplib.h +++ b/libcpp/include/cpplib.h @@ -714,7 +714,8 @@ enum cpp_warning_reason { CPP_W_BIDIRECTIONAL, CPP_W_INVALID_UTF8, CPP_W_UNICODE, - CPP_W_HEADER_GUARD + CPP_W_HEADER_GUARD, + CPP_W_PRAGMA_ONCE_OUTSIDE_HEADER }; /* Callback for header lookup for HEADER, which is the name of a |
