Summary: | Never include *Inlines.h files in interface headers, and never include *Inlines.h when you could include Operations.h instead | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Filip Pizlo <fpizlo> | ||||||||||||||
Component: | JavaScriptCore | Assignee: | Filip Pizlo <fpizlo> | ||||||||||||||
Status: | RESOLVED FIXED | ||||||||||||||||
Severity: | Normal | CC: | barraclough, commit-queue, ggaren, mark.lam, mhahnenberg, mmirman, msaboff, nrotem, oliver, ossy, sam, sergio | ||||||||||||||
Priority: | P2 | ||||||||||||||||
Version: | 528+ (Nightly build) | ||||||||||||||||
Hardware: | All | ||||||||||||||||
OS: | All | ||||||||||||||||
Bug Depends on: | 128900 | ||||||||||||||||
Bug Blocks: | 128507, 128291 | ||||||||||||||||
Attachments: |
|
Description
Filip Pizlo
2014-02-09 14:26:13 PST
Created attachment 223648 [details]
the patch
Attachment 223648 [details] did not pass style-queue:
ERROR: Source/JavaScriptCore/dfg/DFGBlockInsertionSet.cpp:33: "Operations.h" already included at Source/JavaScriptCore/dfg/DFGBlockInsertionSet.cpp:31 [build/include] [4]
Total errors found: 1 in 72 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 223648 [details]
the patch
r=me. Is there something we might be able to add to the style checker to enforce these rules, at least for JSC?
(In reply to comment #2) > Attachment 223648 [details] did not pass style-queue: > > > ERROR: Source/JavaScriptCore/dfg/DFGBlockInsertionSet.cpp:33: "Operations.h" already included at Source/JavaScriptCore/dfg/DFGBlockInsertionSet.cpp:31 [build/include] [4] > Total errors found: 1 in 72 files > > > If any of these errors are false positives, please file a bug against check-webkit-style. Oh but you should also fix this :-) (In reply to comment #4) > (In reply to comment #2) > > Attachment 223648 [details] [details] did not pass style-queue: > > > > > > ERROR: Source/JavaScriptCore/dfg/DFGBlockInsertionSet.cpp:33: "Operations.h" already included at Source/JavaScriptCore/dfg/DFGBlockInsertionSet.cpp:31 [build/include] [4] > > Total errors found: 1 in 72 files > > > > > > If any of these errors are false positives, please file a bug against check-webkit-style. > > Oh but you should also fix this :-) Yeah :-) (In reply to comment #3) > (From update of attachment 223648 [details]) > r=me. Is there something we might be able to add to the style checker to enforce these rules, at least for JSC? I hope so! Btw, this would have to be a JSC-only rule. In WebCore, Operations.h is included by JSBindings.h or something so that you don't have to include it everywhere. That's fine since none of JSC's *Inlines.h would ever include any WebCore headers. Created attachment 223651 [details]
the patch
More stuff. Same basic idea as the last patch.
Attachment 223651 [details] did not pass style-queue:
ERROR: Source/JavaScriptCore/dfg/DFGCompilationMode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCriticalEdgeBreakingPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGVariableEventStream.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAbstractValue.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGWorklist.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGNodeFlags.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGDesiredStructureChains.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGJITFinalizer.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGResurrectionForValidationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPredictionInjectionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGBlockInsertionSet.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:31: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGArgumentsSimplificationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCFGSimplificationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGLICMPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGLongLivedState.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRAvailabilityAnalysisPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSSAConversionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCommonData.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitCompiler.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGFailedFinalizer.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGClobberSet.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGMinifiedNode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGDominators.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSSALoweringPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGLoopPreHeaderCreationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGJITCode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAvailability.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGTierUpCheckInjectionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGVariableEvent.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGDesiredIdentifiers.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGNode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGFlushFormat.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitJumpPlaceholder.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGBinarySwitch.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSREntrypointCreationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCapabilities.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGStoreBarrierElisionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCSEPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGNaturalLoops.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGValidate.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCPSRethreadingPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitPreparation.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGUnificationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAbstractHeap.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGDCEPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGArithMode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGValueSource.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGJumpReplacement.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGBackwardsPropagationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGFlushedAt.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCFAPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGFinalizer.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGInPlaceAbstractState.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitCompiler64.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGStackLayoutPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGLivenessAnalysisPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGTypeCheckHoistingPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGVariableAccessDataDump.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGArrayMode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSREntry.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExit.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGFlushLivenessAnalysisPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGClobberize.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGVirtualRegisterAllocationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGToFTLDeferredCompilationCallback.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitCompiler32_64.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitBase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGDisassembler.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGBasicBlock.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGLazyJSValue.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGDesiredWatchpoints.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGInvalidationPointInjectionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGUseKind.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGWatchpointCollectionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGEdge.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAtTailAbstractState.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCommon.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGThunks.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
Total errors found: 91 in 121 files
If any of these errors are false positives, please file a bug against check-webkit-style.
(In reply to comment #8) > Attachment 223651 [details] did not pass style-queue: > > > ERROR: Source/JavaScriptCore/dfg/DFGCompilationMode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGCriticalEdgeBreakingPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGVariableEventStream.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGAbstractValue.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGWorklist.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGNodeFlags.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGDesiredStructureChains.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGJITFinalizer.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGResurrectionForValidationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGPredictionInjectionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGBlockInsertionSet.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:31: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGArgumentsSimplificationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGCFGSimplificationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGLICMPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGLongLivedState.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGOSRAvailabilityAnalysisPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGSSAConversionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGCommonData.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGOSRExitCompiler.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGFailedFinalizer.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGClobberSet.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGMinifiedNode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGDominators.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGSSALoweringPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGLoopPreHeaderCreationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGJITCode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGAvailability.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGTierUpCheckInjectionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGVariableEvent.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGDesiredIdentifiers.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGNode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGFlushFormat.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGOSRExitJumpPlaceholder.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGBinarySwitch.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGOSREntrypointCreationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGCapabilities.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGStoreBarrierElisionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGCSEPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGNaturalLoops.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGValidate.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGCPSRethreadingPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGOSRExitPreparation.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGUnificationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGAbstractHeap.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGDCEPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGArithMode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGValueSource.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGJumpReplacement.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGBackwardsPropagationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGFlushedAt.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGCFAPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGFinalizer.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGInPlaceAbstractState.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGOSRExitCompiler64.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGStackLayoutPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGLivenessAnalysisPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGTypeCheckHoistingPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGVariableAccessDataDump.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGArrayMode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGOSREntry.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGOSRExit.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGFlushLivenessAnalysisPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGClobberize.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGVirtualRegisterAllocationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGToFTLDeferredCompilationCallback.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGOSRExitCompiler32_64.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGOSRExitBase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGDisassembler.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGBasicBlock.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGLazyJSValue.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGDesiredWatchpoints.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGInvalidationPointInjectionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGUseKind.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGWatchpointCollectionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGEdge.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGAtTailAbstractState.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGCommon.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > ERROR: Source/JavaScriptCore/dfg/DFGThunks.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > Total errors found: 91 in 121 files > > > If any of these errors are false positives, please file a bug against check-webkit-style. No, these aren't real errors. EFL is using -Wundefined-inline. I think it's a good warning flag, and clang added it sometime recently so clang-based builds might end up using it, too. To make this flag work, files should never unconditionally include the cpp module's corresponding interface header but then conditionally incl *Inlines.h or Operations.h. The best way to make this work is to either never conditionally include headers, or to wrap the .cpp file's condition around the whole file excluding config.h. I think that the latter is more sensible. Created attachment 223654 [details]
the patch
Created attachment 223655 [details]
the patch
Attachment 223655 [details] did not pass style-queue:
ERROR: Source/JavaScriptCore/dfg/DFGCompilationMode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCriticalEdgeBreakingPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGVariableEventStream.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAbstractValue.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGWorklist.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGNodeFlags.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGDesiredStructureChains.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGJITFinalizer.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGResurrectionForValidationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPredictionInjectionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGBlockInsertionSet.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:31: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGArgumentsSimplificationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCFGSimplificationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGLICMPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGLongLivedState.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRAvailabilityAnalysisPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSSAConversionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCommonData.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitCompiler.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGFailedFinalizer.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGClobberSet.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGMinifiedNode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGDominators.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSSALoweringPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGLoopPreHeaderCreationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGJITCode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAvailability.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGTierUpCheckInjectionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGVariableEvent.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGDesiredIdentifiers.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGNode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGFlushFormat.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitJumpPlaceholder.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGBinarySwitch.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSREntrypointCreationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/heap/JITStubRoutineSet.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCapabilities.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGStoreBarrierElisionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCSEPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGNaturalLoops.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGValidate.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCPSRethreadingPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitPreparation.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGUnificationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAbstractHeap.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGDCEPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGArithMode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGValueSource.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGJumpReplacement.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGBackwardsPropagationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGFlushedAt.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCFAPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGFinalizer.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGInPlaceAbstractState.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitCompiler64.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGStackLayoutPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGLivenessAnalysisPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGTypeCheckHoistingPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGVariableAccessDataDump.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGArrayMode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSREntry.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExit.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGFlushLivenessAnalysisPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGClobberize.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGVirtualRegisterAllocationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGToFTLDeferredCompilationCallback.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitCompiler32_64.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitBase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGDisassembler.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGBasicBlock.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGLazyJSValue.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGDesiredWatchpoints.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGInvalidationPointInjectionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGUseKind.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGWatchpointCollectionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGEdge.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAtTailAbstractState.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCommon.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGThunks.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
Total errors found: 92 in 139 files
If any of these errors are false positives, please file a bug against check-webkit-style.
(In reply to comment #9) > No, these aren't real errors. EFL is using -Wundefined-inline. I think it's a good warning flag, and clang added it sometime recently so clang-based builds might end up using it, too. To make this flag work, files should never unconditionally include the cpp module's corresponding interface header but then conditionally incl *Inlines.h or Operations.h. The best way to make this work is to either never conditionally include headers, or to wrap the .cpp file's condition around the whole file excluding config.h. I think that the latter is more sensible. You might want to remove the inline keyword from "inline bool isHostFunction() const" (JSFunction.h), like Oliver did in the r163195 odissey (and got rolled out in r163225). (In reply to comment #13) > (In reply to comment #9) > > No, these aren't real errors. EFL is using -Wundefined-inline. I think it's a good warning flag, and clang added it sometime recently so clang-based builds might end up using it, too. To make this flag work, files should never unconditionally include the cpp module's corresponding interface header but then conditionally incl *Inlines.h or Operations.h. The best way to make this work is to either never conditionally include headers, or to wrap the .cpp file's condition around the whole file excluding config.h. I think that the latter is more sensible. > > You might want to remove the inline keyword from "inline bool isHostFunction() const" (JSFunction.h), like Oliver did in the r163195 odissey (and got rolled out in r163225). Hmmm. I kind of like the idea of having that function be inline. And I like the basic gist of what the warning is trying to do. Created attachment 223656 [details]
the patch
Attachment 223656 [details] did not pass style-queue:
ERROR: Source/JavaScriptCore/dfg/DFGCompilationMode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCriticalEdgeBreakingPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGVariableEventStream.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAbstractValue.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGWorklist.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGNodeFlags.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGDesiredStructureChains.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGJITFinalizer.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGResurrectionForValidationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPredictionInjectionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGBlockInsertionSet.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:31: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGArgumentsSimplificationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCFGSimplificationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGLICMPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGLongLivedState.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRAvailabilityAnalysisPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSSAConversionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCommonData.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitCompiler.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGFailedFinalizer.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGClobberSet.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGMinifiedNode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGDominators.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSSALoweringPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGLoopPreHeaderCreationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGJITCode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAvailability.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGTierUpCheckInjectionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGVariableEvent.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGDesiredIdentifiers.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGNode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGFlushFormat.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/jit/JITOperationsMSVC64.cpp:32: Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted. [build/include_order] [4]
ERROR: Source/JavaScriptCore/jit/TempRegisterSet.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitJumpPlaceholder.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGBinarySwitch.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSREntrypointCreationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/heap/JITStubRoutineSet.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCapabilities.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGStoreBarrierElisionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCSEPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGNaturalLoops.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGValidate.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCPSRethreadingPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitPreparation.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGUnificationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAbstractHeap.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGDCEPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGArithMode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGValueSource.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGJumpReplacement.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGBackwardsPropagationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGFlushedAt.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCFAPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGFinalizer.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGInPlaceAbstractState.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitCompiler64.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGStackLayoutPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGLivenessAnalysisPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGTypeCheckHoistingPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGVariableAccessDataDump.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGArrayMode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/jit/JITDisassembler.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSREntry.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExit.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGFlushLivenessAnalysisPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGClobberize.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/jit/JITStubRoutine.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGVirtualRegisterAllocationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGToFTLDeferredCompilationCallback.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitCompiler32_64.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitBase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGDisassembler.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGBasicBlock.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGLazyJSValue.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGDesiredWatchpoints.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGInvalidationPointInjectionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGUseKind.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGWatchpointCollectionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGEdge.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAtTailAbstractState.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCommon.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGThunks.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
Total errors found: 97 in 156 files
If any of these errors are false positives, please file a bug against check-webkit-style.
(In reply to comment #14) > (In reply to comment #13) > > (In reply to comment #9) > > > No, these aren't real errors. EFL is using -Wundefined-inline. I think it's a good warning flag, and clang added it sometime recently so clang-based builds might end up using it, too. To make this flag work, files should never unconditionally include the cpp module's corresponding interface header but then conditionally incl *Inlines.h or Operations.h. The best way to make this work is to either never conditionally include headers, or to wrap the .cpp file's condition around the whole file excluding config.h. I think that the latter is more sensible. > > > > You might want to remove the inline keyword from "inline bool isHostFunction() const" (JSFunction.h), like Oliver did in the r163195 odissey (and got rolled out in r163225). > > Hmmm. I kind of like the idea of having that function be inline. And I like the basic gist of what the warning is trying to do. It would still be marked inline in its definition, in Executable.h. Isn't that enough for suggesting the compiler you'd like that function to be inline? (In reply to comment #17) > (In reply to comment #14) > > (In reply to comment #13) > > > (In reply to comment #9) > > > > No, these aren't real errors. EFL is using -Wundefined-inline. I think it's a good warning flag, and clang added it sometime recently so clang-based builds might end up using it, too. To make this flag work, files should never unconditionally include the cpp module's corresponding interface header but then conditionally incl *Inlines.h or Operations.h. The best way to make this work is to either never conditionally include headers, or to wrap the .cpp file's condition around the whole file excluding config.h. I think that the latter is more sensible. > > > > > > You might want to remove the inline keyword from "inline bool isHostFunction() const" (JSFunction.h), like Oliver did in the r163195 odissey (and got rolled out in r163225). > > > > Hmmm. I kind of like the idea of having that function be inline. And I like the basic gist of what the warning is trying to do. > > It would still be marked inline in its definition, in Executable.h. Isn't that enough for suggesting the compiler you'd like that function to be inline? You're right. But is it clear that we *don't* want this warning? If we don't want it, then isn't the solution just to remove that warning from the EFL build? Created attachment 223658 [details]
the patch
Attachment 223658 [details] did not pass style-queue:
ERROR: Source/JavaScriptCore/dfg/DFGCompilationMode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCriticalEdgeBreakingPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGVariableEventStream.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAbstractValue.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGWorklist.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGNodeFlags.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGDesiredStructureChains.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGJITFinalizer.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGResurrectionForValidationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPredictionInjectionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGBlockInsertionSet.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:31: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGArgumentsSimplificationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCFGSimplificationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGLICMPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGLongLivedState.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRAvailabilityAnalysisPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSSAConversionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCommonData.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitCompiler.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGFailedFinalizer.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGClobberSet.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGMinifiedNode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGDominators.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSSALoweringPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGLoopPreHeaderCreationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGJITCode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAvailability.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGTierUpCheckInjectionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGVariableEvent.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGDesiredIdentifiers.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGNode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGFlushFormat.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/jit/JITOperationsMSVC64.cpp:32: Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted. [build/include_order] [4]
ERROR: Source/JavaScriptCore/jit/TempRegisterSet.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitJumpPlaceholder.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGBinarySwitch.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSREntrypointCreationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/heap/JITStubRoutineSet.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCapabilities.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGStoreBarrierElisionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCSEPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGNaturalLoops.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGValidate.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCPSRethreadingPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitPreparation.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGUnificationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAbstractHeap.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGDCEPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGArithMode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGValueSource.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGJumpReplacement.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGBackwardsPropagationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGFlushedAt.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCFAPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGFinalizer.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGInPlaceAbstractState.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitCompiler64.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGStackLayoutPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGLivenessAnalysisPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGTypeCheckHoistingPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGVariableAccessDataDump.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGArrayMode.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/jit/JITDisassembler.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSREntry.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExit.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGFlushLivenessAnalysisPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGClobberize.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/jit/JITStubRoutine.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGVirtualRegisterAllocationPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGToFTLDeferredCompilationCallback.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitCompiler32_64.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitBase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGDisassembler.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGBasicBlock.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGLazyJSValue.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGDesiredWatchpoints.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGInvalidationPointInjectionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGUseKind.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGWatchpointCollectionPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGEdge.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAtTailAbstractState.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGCommon.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGThunks.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4]
Total errors found: 97 in 162 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 223658 [details]
the patch
This was already reviewed by Mark and Oliver.
Landed in http://trac.webkit.org/changeset/163760 Comment on attachment 223658 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=223658&action=review > Source/JavaScriptCore/dfg/DFGDisassembler.h:-119 > -#else // ENABLE(DISASSEMBLER) > - > -class Disassembler { > - WTF_MAKE_FAST_ALLOCATED; > -public: > - Disassembler(Graph&) { } > - > - void setStartOfCode(MacroAssembler::Label) { } > - void setForBlockIndex(BlockIndex, MacroAssembler::Label) { } > - void setForNode(Node*, MacroAssembler::Label) { } > - void setEndOfMainPath(MacroAssembler::Label) { } > - void setEndOfCode(MacroAssembler::Label) { } > - > - void dump(LinkBuffer&) { } > - void reportToProfiler(Profiler::Compilation*, LinkBuffer&) { } > -}; > - > -#endif // ENABLE(DISASSEMBLER) How is this change related to "Never include *Inlines.h files in interface headers, and never include *Inlines.h when you could include Operations.h instead" topic? (In reply to comment #23) > (From update of attachment 223658 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=223658&action=review > > > Source/JavaScriptCore/dfg/DFGDisassembler.h:-119 > > -#else // ENABLE(DISASSEMBLER) > > - > > -class Disassembler { > > - WTF_MAKE_FAST_ALLOCATED; > > -public: > > - Disassembler(Graph&) { } > > - > > - void setStartOfCode(MacroAssembler::Label) { } > > - void setForBlockIndex(BlockIndex, MacroAssembler::Label) { } > > - void setForNode(Node*, MacroAssembler::Label) { } > > - void setEndOfMainPath(MacroAssembler::Label) { } > > - void setEndOfCode(MacroAssembler::Label) { } > > - > > - void dump(LinkBuffer&) { } > > - void reportToProfiler(Profiler::Compilation*, LinkBuffer&) { } > > -}; > > - > > -#endif // ENABLE(DISASSEMBLER) > > How is this change related to "Never include *Inlines.h files in interface headers, and never include *Inlines.h when you could include Operations.h instead" topic? It was just obviously wrong code. Comment on attachment 223658 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=223658&action=review > Source/JavaScriptCore/dfg/DFGPhase.cpp:31 > #include "config.h" > -#include "DFGPhase.h" > > #if ENABLE(DFG_JIT) > > +#include "DFGPhase.h" > + ERROR: Source/JavaScriptCore/dfg/DFGPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] Why do we need zillion of this kind of coding style violations? For example the whole DFGPhase.h is guarded by ENABLE(DFG_JIT). Why do we need guard it again in this cpp? (In reply to comment #25) > (From update of attachment 223658 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=223658&action=review > > > Source/JavaScriptCore/dfg/DFGPhase.cpp:31 > > #include "config.h" > > -#include "DFGPhase.h" > > > > #if ENABLE(DFG_JIT) > > > > +#include "DFGPhase.h" > > + > > ERROR: Source/JavaScriptCore/dfg/DFGPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > > Why do we need zillion of this kind of coding style violations? > For example the whole DFGPhase.h is guarded by ENABLE(DFG_JIT). > Why do we need guard it again in this cpp? EFL build sometimes gets unhappy if you include a header that declares an inline function but fails to include the header that defines it. Generally, interface headers such as DFGPhase.h may declare inline functions. Even though that's not the case here, I figured it would be better to have a unified story for this. In some places we were doing: #include "config.h" #include "Blah.h" #if ENABLE(...) And in other places we were doing: #include "config.h" #if ENABLE(...) #include "Blah.h" I just switched all of the code I knew about to using the second style. That fixed the EFL builds and made everything more consistent. (In reply to comment #24) > (In reply to comment #23) > > (From update of attachment 223658 [details] [details]) > > View in context: https://bugs.webkit.org/attachment.cgi?id=223658&action=review > > > > > Source/JavaScriptCore/dfg/DFGDisassembler.h:-119 > > > -#else // ENABLE(DISASSEMBLER) > > > - > > > -class Disassembler { > > > - WTF_MAKE_FAST_ALLOCATED; > > > -public: > > > - Disassembler(Graph&) { } > > > - > > > - void setStartOfCode(MacroAssembler::Label) { } > > > - void setForBlockIndex(BlockIndex, MacroAssembler::Label) { } > > > - void setForNode(Node*, MacroAssembler::Label) { } > > > - void setEndOfMainPath(MacroAssembler::Label) { } > > > - void setEndOfCode(MacroAssembler::Label) { } > > > - > > > - void dump(LinkBuffer&) { } > > > - void reportToProfiler(Profiler::Compilation*, LinkBuffer&) { } > > > -}; > > > - > > > -#endif // ENABLE(DISASSEMBLER) > > > > How is this change related to "Never include *Inlines.h files in interface headers, and never include *Inlines.h when you could include Operations.h instead" topic? > > It was just obviously wrong code. The question wasn't here if it is obviously wrong or not. It is unconventional to push random fixes in absolutely unrelated bug reports without changelog entry, without any comment and with zillion coding style violation. (In reply to comment #26) > (In reply to comment #25) > > (From update of attachment 223658 [details] [details]) > > View in context: https://bugs.webkit.org/attachment.cgi?id=223658&action=review > > > > > Source/JavaScriptCore/dfg/DFGPhase.cpp:31 > > > #include "config.h" > > > -#include "DFGPhase.h" > > > > > > #if ENABLE(DFG_JIT) > > > > > > +#include "DFGPhase.h" > > > + > > > > ERROR: Source/JavaScriptCore/dfg/DFGPhase.cpp:30: You should not add a blank line before implementation file's own header. [build/include_order] [4] > > > > Why do we need zillion of this kind of coding style violations? > > For example the whole DFGPhase.h is guarded by ENABLE(DFG_JIT). > > Why do we need guard it again in this cpp? > > EFL build sometimes gets unhappy if you include a header that declares an inline function but fails to include the header that defines it. Generally, interface headers such as DFGPhase.h may declare inline functions. Even though that's not the case here, I figured it would be better to have a unified story for this. In some places we were doing: > > #include "config.h" > #include "Blah.h" > > #if ENABLE(...) > > And in other places we were doing: > > #include "config.h" > > #if ENABLE(...) > > #include "Blah.h" > > I just switched all of the code I knew about to using the second style. That fixed the EFL builds and made everything more consistent. I don't think at all if it is the proper way to fix the issue you mentioned. Let me investigate the real problem. I'm going to find a better fix than adding more and more coding style violations and many redundant ENABLE macros. |