From ac41ffb8fa1235c226377397842c6c240a677d87 Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Wed, 3 Apr 2019 17:45:02 -0400 Subject: [PATCH] build-aux: header-ifdef: Handle #pragma once If we see it, skip all remaining header guard checks Acked-by: Eric Blake Signed-off-by: Cole Robinson --- build-aux/header-ifdef.pl | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build-aux/header-ifdef.pl b/build-aux/header-ifdef.pl index 297696eb70..401f25fb81 100644 --- a/build-aux/header-ifdef.pl +++ b/build-aux/header-ifdef.pl @@ -32,6 +32,7 @@ my $STATE_GUARD_START = 6; my $STATE_GUARD_DEFINE = 7; my $STATE_GUARD_END = 8; my $STATE_EOF = 9; +my $STATE_PRAGMA = 10; my $file = " "; my $ret = 0; @@ -132,6 +133,8 @@ while (<>) { } elsif ($state == $STATE_GUARD_START) { if (/^$/) { &mistake("$file: too many blank lines after copyright header"); + } elsif(/#pragma once/) { + $state = $STATE_PRAGMA; } elsif (/#ifndef $ifdef$/) { $state = $STATE_GUARD_DEFINE; } else { @@ -147,6 +150,8 @@ while (<>) { if (m,#endif /\* $ifdef \*/$,) { $state = $STATE_EOF; } + } elsif ($state == $STATE_PRAGMA) { + next; } elsif ($state == $STATE_EOF) { die "$file: unexpected content after '#endif /* $ifdef */'"; } else { -- 2.47.2