summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabor Kelemen <kelemen.gabor2@nisz.hu>2019-10-04 00:03:09 +0200
committerMiklos Vajna <vmiklos@collabora.com>2019-10-04 09:08:49 +0200
commitb3c072a4ee94c5f86723cdcc98ea08f46f981b4a (patch)
treedbbcc924f1aa83d37d0a7a03a048b9a0818faa49
parent5d89d64846cd9fa56ffae47aae7c8c52a2a5feea (diff)
find-unneeded-includes: ignore extra recommendations
When IWYU is used to check cxx files it also checks associated hxx (but for .hxx -> .h too) files too and gives addition/removal recommendations There is no documented way of disabling this. Currently f-u-i does not differentiate between recommendations for the checked file and its header and prints everything. Which means sometimes I need to update .hxx files or blacklist warnings that interestingly are not shown when the same .hxx is checked with IWYU. The worst example is ucb/source/ucp/ftp/curl.hxx where IWYU gives recommendations for /usr/include/x86_64-linux-gnu/curl/curl.h Remedy this with considering the full filename + should add these lines: / should remove these lines: string as beginning of interesting recommendations Also remove some now obsolete blacklist entries from yaml files Change-Id: I1d139536992e4b56c699c31a4cc6491d373c2002 Reviewed-on: https://gerrit.libreoffice.org/80172 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
-rwxr-xr-xbin/find-unneeded-includes14
-rw-r--r--sc/IwyuFilter_sc.yaml6
-rw-r--r--sd/IwyuFilter_sd.yaml5
-rw-r--r--svtools/IwyuFilter_svtools.yaml6
-rw-r--r--sw/IwyuFilter_sw.yaml7
-rw-r--r--toolkit/IwyuFilter_toolkit.yaml3
-rw-r--r--vcl/IwyuFilter_vcl.yaml3
7 files changed, 8 insertions, 36 deletions
diff --git a/bin/find-unneeded-includes b/bin/find-unneeded-includes
index c89b69fc9d2a..8ba5a7d354a6 100755
--- a/bin/find-unneeded-includes
+++ b/bin/find-unneeded-includes
@@ -147,7 +147,7 @@ def unwrapInclude(include):
return include[1:-1]
-def processIWYUOutput(iwyuOutput, moduleRules):
+def processIWYUOutput(iwyuOutput, moduleRules, fileName):
inAdd = False
toAdd = []
inRemove = False
@@ -169,15 +169,17 @@ def processIWYUOutput(iwyuOutput, moduleRules):
inAdd = False
continue
- match = re.match("(.*) should add these lines:$", line)
+ shouldAdd = fileName + " should add these lines:"
+ match = re.match(shouldAdd, line)
if match:
- currentFileName = match.group(1)
+ currentFileName = match.group(0).split(' ')[0]
inAdd = True
continue
- match = re.match("(.*) should remove these lines:$", line)
+ shouldRemove = fileName + " should remove these lines:"
+ match = re.match(shouldRemove, line)
if match:
- currentFileName = match.group(1)
+ currentFileName = match.group(0).split(' ')[0]
inRemove = True
continue
@@ -212,7 +214,7 @@ def run_tool(task_queue, failed_files):
if not len(failed_files):
print("[IWYU] " + invocation.split(' ')[-1])
p = subprocess.Popen(invocation, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
- retcode = processIWYUOutput(p.communicate()[0].decode('utf-8').splitlines(), moduleRules)
+ retcode = processIWYUOutput(p.communicate()[0].decode('utf-8').splitlines(), moduleRules, invocation.split(' ')[-1])
if retcode == -1:
print("ERROR: A file is probably not self contained, check this commands output:\n" + invocation)
elif retcode > 0:
diff --git a/sc/IwyuFilter_sc.yaml b/sc/IwyuFilter_sc.yaml
index 6708f69fec8b..2743efdd96f2 100644
--- a/sc/IwyuFilter_sc.yaml
+++ b/sc/IwyuFilter_sc.yaml
@@ -58,9 +58,6 @@ blacklist:
sc/inc/chgviset.hxx:
# base class has to be a complete type
- unotools/textsearch.hxx
- sc/inc/colcontainer.hxx:
- # Needed to silence the check on colcontainer.cxx
- - column.hxx
sc/inc/column.hxx:
# base class has to be a complete type
- mdds/flat_segment_tree.hpp
@@ -384,9 +381,6 @@ blacklist:
sc/source/filter/inc/formulabase.hxx:
# Needed for typedef
- com/sun/star/table/CellAddress.hpp
- sc/source/filter/inc/fprogressbar.hxx:
- # Avoid collision with fprogressbar.cxx checking
- - progress.hxx
sc/source/filter/inc/ooxformulaparser.hxx:
# base class has to be a complete type
- com/sun/star/lang/XInitialization.hpp
diff --git a/sd/IwyuFilter_sd.yaml b/sd/IwyuFilter_sd.yaml
index b5b715e0214e..d69c951a8bbd 100644
--- a/sd/IwyuFilter_sd.yaml
+++ b/sd/IwyuFilter_sd.yaml
@@ -124,8 +124,6 @@ blacklist:
# base class has to be a complete type
- com/sun/star/drawing/framework/XResourceFactory.hpp
- com/sun/star/lang/XInitialization.hpp
- # Don't stop on false positive while checking BasicViewFactory.cxx
- - namespace vcl { class Window; }
sd/source/ui/framework/factories/ChildWindowPane.hxx:
# base class has to be a complete type
- com/sun/star/lang/XEventListener.hpp
@@ -466,9 +464,6 @@ blacklist:
sd/source/ui/func/fuhhconv.cxx:
# Needed for direct member access
- com/sun/star/awt/XWindow.hpp
- sd/source/ui/inc/fupoor.hxx:
- # Don't stop on false positive while checking fupoor.cxx
- - namespace sd { class Window; }
sd/source/ui/slidesorter/view/SlsInsertionIndicatorOverlay.cxx:
# Needed for instantiation of function template specialization
- Window.hxx
diff --git a/svtools/IwyuFilter_svtools.yaml b/svtools/IwyuFilter_svtools.yaml
index cebbeb954a74..9cc69c4f10fa 100644
--- a/svtools/IwyuFilter_svtools.yaml
+++ b/svtools/IwyuFilter_svtools.yaml
@@ -4,9 +4,3 @@ blacklist:
svtools/source/dialogs/insdlg.cxx:
# Needed on WIN
- comphelper/classids.hxx
- include/svtools/statusbarcontroller.hxx:
- # Silence warning while checking statusbarcontroller.cxx
- - cppuhelper/interfacecontainer.hxx
- include/svtools/toolboxcontroller.hxx:
- # Silence warning while checking toolboxcontroller.cxx
- - cppuhelper/interfacecontainer.hxx
diff --git a/sw/IwyuFilter_sw.yaml b/sw/IwyuFilter_sw.yaml
index 0b80ae609177..4f9c0b3b3961 100644
--- a/sw/IwyuFilter_sw.yaml
+++ b/sw/IwyuFilter_sw.yaml
@@ -309,10 +309,6 @@ blacklist:
- com/sun/star/util/XUpdatable.hpp
# Needed for UnoImplPtr template
- unobaseclass.hxx
- include/svtools/unoevent.hxx:
- # Don't give false positives checking sw/source/core/inc/unoevent.hxx
- - com/sun/star/container/XNameReplace.hpp
- - com/sun/star/lang/XServiceInfo.hpp
sw/source/core/inc/unoflatpara.hxx:
# Base class needs complete type
- com/sun/star/beans/XPropertySet.hpp
@@ -440,9 +436,6 @@ blacklist:
sw/qa/extras/ww8import/ww8import.cxx:
# Needed for for-loop range
- com/sun/star/graphic/XGraphic.hpp
- include/sal/types.h:
- # Ignore warning during checking source/filter/ww8/types.hxx
- - sal/typesizes.h
sw/source/filter/ww8/ww8scan.hxx:
# OSL_BIGENDIAN is being checked
- osl/endian.h
diff --git a/toolkit/IwyuFilter_toolkit.yaml b/toolkit/IwyuFilter_toolkit.yaml
index 4d2ab3248bec..b29efcf83049 100644
--- a/toolkit/IwyuFilter_toolkit.yaml
+++ b/toolkit/IwyuFilter_toolkit.yaml
@@ -4,9 +4,6 @@ blacklist:
toolkit/source/awt/vclxmenu.cxx:
# Needed for direct member access
- vcl/window.hxx
- include/toolkit/controls/geometrycontrolmodel.hxx:
- # Silence warning while checking geometrycontrolmodel.cxx
- - toolkit/controls/geometrycontrolmodel_impl.hxx
toolkit/source/helper/servicenames.cxx:
# Needed for extern array declarations
- toolkit/helper/servicenames.hxx
diff --git a/vcl/IwyuFilter_vcl.yaml b/vcl/IwyuFilter_vcl.yaml
index bd85127e0f2e..e99d502e2739 100644
--- a/vcl/IwyuFilter_vcl.yaml
+++ b/vcl/IwyuFilter_vcl.yaml
@@ -44,9 +44,6 @@ blacklist:
vcl/source/gdi/configsettings.cxx:
# Needed for OSL_DEBUG_LEVEL > 2
- sal/log.hxx
- include/vcl/mtfxmldump.hxx:
- # Silence warning about include/vcl/mtfxmldump.hxx
- - vcl/metaactiontypes.hxx
vcl/source/gdi/salgdilayout.cxx:
# Needed on WIN32
- desktop/exithelper.h