<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>163575</bug_id>
          
          <creation_ts>2016-10-17 17:41:40 -0700</creation_ts>
          <short_desc>check-webkit-style: fix false-positive warnings about using #pragma once header guard</short_desc>
          <delta_ts>2016-10-19 12:53:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>Other</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>glenn</cc>
    
    <cc>joepeck</cc>
    
    <cc>lforschler</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1241278</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2016-10-17 17:41:40 -0700</bug_when>
    <thetext>The style guide gave me false positives for errors in TestRunnerWKWebView.h and WKWebViewPrivate.h about the #pragma once header guards. Not needed because of obj-c #import.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241697</commentid>
    <comment_count>1</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-10-18 16:57:06 -0700</bug_when>
    <thetext>Ooo good point... I wonder if we can tell if such a file will be ObjC/ObjC++.

We could employ heuristics like &quot;if there is an #import&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241938</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-10-19 09:16:45 -0700</bug_when>
    <thetext>I think the simple solution is to detect *if* there is a header guard, *then* it has to be pragma once.

Headers without guards are clearly okay (as if they weren&apos;t okay then the builds would be failing)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241990</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-10-19 11:04:30 -0700</bug_when>
    <thetext>&gt; Headers without guards are clearly okay (as if they weren&apos;t okay then the
&gt; builds would be failing)

It would be nice to detect and warn when a header is missing header guards that _should_ have header guards. A build may succeed if its missing, but later when someone else double includes the header it could fail.

That said, your suggestion should catch the majority of cases. Patch coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241991</commentid>
    <comment_count>4</comment_count>
      <attachid>292084</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-10-19 11:04:45 -0700</bug_when>
    <thetext>Created attachment 292084
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242038</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-10-19 12:28:27 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; Headers without guards are clearly okay (as if they weren&apos;t okay then the
&gt; &gt; builds would be failing)
&gt; 
&gt; It would be nice to detect and warn when a header is missing header guards
&gt; that _should_ have header guards. A build may succeed if its missing, but
&gt; later when someone else double includes the header it could fail.

Yah, I guess that was the unspoken subtext of what I meant.

I also am not sure what the actual compiler error is when you double include a header - Whether it&apos;s unintelligible random errors, or if the compiler explicitly points it out.

In the later case, I think it&apos;d be fine to just ignore it until an error pops up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242039</commentid>
    <comment_count>6</comment_count>
      <attachid>292084</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-10-19 12:29:16 -0700</bug_when>
    <thetext>Comment on attachment 292084
[PATCH] Proposed Fix

lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242047</commentid>
    <comment_count>7</comment_count>
      <attachid>292084</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-19 12:53:23 -0700</bug_when>
    <thetext>Comment on attachment 292084
[PATCH] Proposed Fix

Clearing flags on attachment: 292084

Committed r207559: &lt;http://trac.webkit.org/changeset/207559&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242048</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-19 12:53:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292084</attachid>
            <date>2016-10-19 11:04:45 -0700</date>
            <delta_ts>2016-10-19 12:53:23 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>pragma-once-1.patch</filename>
            <type>text/plain</type>
            <size>3131</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhNGFm
ZTZkLi4zNjg3NDliIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTYtMTAtMTkgIEpvc2VwaCBQZWNvcmFybyAgPHBl
Y29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBjaGVjay13ZWJraXQtc3R5bGU6IGZpeCBmYWxz
ZS1wb3NpdGl2ZSB3YXJuaW5ncyBhYm91dCB1c2luZyAjcHJhZ21hIG9uY2UgaGVhZGVyIGd1YXJk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM1NzUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGVyZSB3
ZXJlIHNvbWUgZmFsc2UgcG9zaXRpdmUgd2FybmluZ3MgYWJvdXQgaGVhZGVyIGd1YXJkcworICAg
ICAgICBmb3IgT2JqQyBoZWFkZXJzIHRoYXQgZG9uJ3QgbmVlZCBndWFyZHMuIFRoaXMgY2hhbmdl
cyB0aGUKKyAgICAgICAgc3R5bGUgY2hlY2tlciB0byBubyBsb25nZXIgd2FybiBpZiB0aGVyZSBp
cyBubyAjcHJhZ21hIG9uY2UuCisgICAgICAgIEl0IG9ubHkgd2FybnMgaWYgdGhlcmUgYXJlICNp
Zm5kZWYgdGhhdCBzaG91bGQgYmUgI3ByYWdtYSBvbmNlLgorCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHAucHk6CisgICAgICAgIChjaGVja19mb3JfaGVhZGVy
X2d1YXJkKToKKyAgICAgICAgQ2hhbmdlIHdoZW4gd2Ugb3V0cHV0IGFuIGVycm9yLgorCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHBfdW5pdHRlc3QucHk6Cisg
ICAgICAgIChDcHBTdHlsZVRlc3QudGVzdF9idWlsZF9oZWFkZXJfZ3VhcmQpOgorICAgICAgICBV
cGRhdGUgdGVzdHMuCisKIDIwMTYtMTAtMTcgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29t
PgogCiAgICAgICAgIENyYXNoIGluIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaDo6aGFzaCgpIHdo
ZW4gYSByZXNwb25zZSBoYXMgYSBudWxsIE1JTUUgdHlwZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHAucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weQppbmRleCBjOWI0MTJhLi5mMjAzMmEyIDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weQpAQCAtODk5LDggKzg5
OSw4IEBAIGRlZiBjaGVja19mb3JfY29weXJpZ2h0KGxpbmVzLCBlcnJvcik6CiBkZWYgY2hlY2tf
Zm9yX2hlYWRlcl9ndWFyZChsaW5lcywgZXJyb3IpOgogICAgICIiIkNoZWNrcyB0aGF0IHRoZSBm
aWxlIGNvbnRhaW5zIGEgaGVhZGVyIGd1YXJkLgogCi0gICAgTG9ncyBhbiBlcnJvciBpZiBubyAj
cHJhZ21hIG9uY2UgaGVhZGVyIGd1YXJkIGlzIHByZXNlbnQKLSAgICBvZiBpZiB0aGVyZSB3YXMg
YW4gI2lmbmRlZiBndWFyZCB0aGF0IHdhcyBtb2RpZmllZC4KKyAgICBMb2dzIGFuIGVycm9yIGlm
IHRoZXJlIHdhcyBhbiAjaWZuZGVmIGd1YXJkIGluIGEgaGVhZGVyCisgICAgdGhhdCBzaG91bGQg
YmUgYSAjcHJhZ21hIG9uY2UgZ3VhcmQuCiAKICAgICBBcmdzOgogICAgICAgbGluZXM6IEFuIGFy
cmF5IG9mIHN0cmluZ3MsIGVhY2ggcmVwcmVzZW50aW5nIGEgbGluZSBvZiB0aGUgZmlsZS4KQEAg
LTkyMSw5ICs5MjEsNiBAQCBkZWYgY2hlY2tfZm9yX2hlYWRlcl9ndWFyZChsaW5lcywgZXJyb3Ip
OgogICAgICAgICAgICAgICAgICAgICAnVXNlICNwcmFnbWEgb25jZSBpbnN0ZWFkIG9mICNpZm5k
ZWYgZm9yIGhlYWRlciBndWFyZC4nKQogICAgICAgICAgICAgICAgIHJldHVybgogCi0gICAgZXJy
b3IoMCwgJ2J1aWxkL2hlYWRlcl9ndWFyZCcsIDUsCi0gICAgICAgICdVc2UgI3ByYWdtYSBvbmNl
IGhlYWRlciBndWFyZC4nKQotCiAKIGRlZiBjaGVja19mb3JfdW5pY29kZV9yZXBsYWNlbWVudF9j
aGFyYWN0ZXJzKGxpbmVzLCBlcnJvcik6CiAgICAgIiIiTG9ncyBhbiBlcnJvciBmb3IgZWFjaCBs
aW5lIGNvbnRhaW5pbmcgVW5pY29kZSByZXBsYWNlbWVudCBjaGFyYWN0ZXJzLgpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHBfdW5pdHRlc3QucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcF91bml0dGVzdC5weQpp
bmRleCBkNWRkYjc0Li44YzNhMDM3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3N0eWxlL2NoZWNrZXJzL2NwcF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3N0eWxlL2NoZWNrZXJzL2NwcF91bml0dGVzdC5weQpAQCAtMjQyNywxNiArMjQyNywxNCBA
QCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgZGVmIHRlc3RfYnVp
bGRfaGVhZGVyX2d1YXJkKHNlbGYpOgogICAgICAgICBydWxlcyA9ICgnLScsICcrYnVpbGQvaGVh
ZGVyX2d1YXJkJykKIAotICAgICAgICAjIE5vIGhlYWRlciBndWFyZC4KLSAgICAgICAgc2VsZi5h
c3NlcnRfaGVhZGVyX2d1YXJkKCcnLAotICAgICAgICAgICAgJ1VzZSAjcHJhZ21hIG9uY2UgaGVh
ZGVyIGd1YXJkLicKLSAgICAgICAgICAgICcgIFtidWlsZC9oZWFkZXJfZ3VhcmRdIFs1XScpCi0K
ICAgICAgICAgIyBPbGQgaGVhZGVyIGd1YXJkLgogICAgICAgICBzZWxmLmFzc2VydF9oZWFkZXJf
Z3VhcmQoJyNpZm5kZWYgRm9vX2gnLAogICAgICAgICAgICAgJ1VzZSAjcHJhZ21hIG9uY2UgaW5z
dGVhZCBvZiAjaWZuZGVmIGZvciBoZWFkZXIgZ3VhcmQuJwogICAgICAgICAgICAgJyAgW2J1aWxk
L2hlYWRlcl9ndWFyZF0gWzVdJykKIAorICAgICAgICAjIE5vIGhlYWRlciBndWFyZC4gT2theSwg
c2luY2UgdGhpcyBjb3VsZCBiZSBhbiBPYmpDIGhlYWRlci4KKyAgICAgICAgc2VsZi5hc3NlcnRf
aGVhZGVyX2d1YXJkKCcnLCAnJykKKwogICAgICAgICAjIFZhbGlkIGhlYWRlciBndWFyZC4KICAg
ICAgICAgc2VsZi5hc3NlcnRfaGVhZGVyX2d1YXJkKCcjcHJhZ21hIG9uY2UnLCAnJykKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>