erik.pilkington created this revision. erik.pilkington added a reviewer: rsmith. erik.pilkington added a subscriber: cfe-commits.
The FunctionScopeInfo stack in Sema uses an optimization where the memory for the top-level functions is reused. The function FunctionScopeInfo::Clear() is used to reset this memory to the original, marking all the flags as false. The flag HasFallthroughStmt was omitted from this, meaning that once it set, it remained so for the rest of the TU. This meant we ran DiagnoseSwitchLabelsFallthrough() for every top level function in a TU where one function used `[[fallthrough]]`. Thanks! https://reviews.llvm.org/D22770 Files: lib/Sema/ScopeInfo.cpp Index: lib/Sema/ScopeInfo.cpp =================================================================== --- lib/Sema/ScopeInfo.cpp +++ lib/Sema/ScopeInfo.cpp @@ -29,6 +29,7 @@ HasIndirectGoto = false; HasDroppedStmt = false; HasOMPDeclareReductionCombiner = false; + HasFallthroughStmt = false; ObjCShouldCallSuper = false; ObjCIsDesignatedInit = false; ObjCWarnForNoDesignatedInitChain = false;
Index: lib/Sema/ScopeInfo.cpp =================================================================== --- lib/Sema/ScopeInfo.cpp +++ lib/Sema/ScopeInfo.cpp @@ -29,6 +29,7 @@ HasIndirectGoto = false; HasDroppedStmt = false; HasOMPDeclareReductionCombiner = false; + HasFallthroughStmt = false; ObjCShouldCallSuper = false; ObjCIsDesignatedInit = false; ObjCWarnForNoDesignatedInitChain = false;
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits