[Git][ghc/ghc][wip/slowtest] 2 commits: Fix uses of #ifdef/#ifndef
Ben Gamari
gitlab at gitlab.haskell.org
Sun Jun 9 14:38:18 UTC 2019
Ben Gamari pushed to branch wip/slowtest at Glasgow Haskell Compiler / GHC
Commits:
158377d0 by Ben Gamari at 2019-06-09T14:38:11Z
Fix uses of #ifdef/#ifndef
The linter now enforces our preference for `#if defined()` and
`#if !defined()`.
- - - - -
dc663608 by Ben Gamari at 2019-06-09T14:38:11Z
linters/check-makefiles: Limit lint to Makefiles
Previously we would apply this rule, which is only intended for
testsuite Makefiles, to all files. This lead to a number of
false-positives in all.T files.
- - - - -
5 changed files:
- .gitlab/linters/check-makefiles.py
- .gitlab/linters/linter.py
- aclocal.m4
- hadrian/src/Rules/Generate.hs
- includes/ghc.mk
Changes:
=====================================
.gitlab/linters/check-makefiles.py
=====================================
@@ -12,7 +12,8 @@ from linter import run_linters, RegexpLinter
linters = [
RegexpLinter(r'--interactive',
- message = "Warning: Use `$(TEST_HC_OPTS_INTERACTIVE)` instead of `--interactive -ignore-dot-ghci -v0`.")
+ message = "Warning: Use `$(TEST_HC_OPTS_INTERACTIVE)` instead of `--interactive -ignore-dot-ghci -v0`.",
+ path_filter = lambda path: path == 'Makefile')
]
if __name__ == '__main__':
=====================================
.gitlab/linters/linter.py
=====================================
@@ -73,13 +73,14 @@ class RegexpLinter(LineLinter):
A :class:`RegexpLinter` produces the given warning message for
all lines matching the given regular expression.
"""
- def __init__(self, regex, message):
+ def __init__(self, regex, message, path_filter=lambda path: True):
LineLinter.__init__(self)
self.re = re.compile(regex)
self.message = message
+ self.path_filter = path_filter
def lint_line(self, path, line_no, line):
- if self.re.search(line):
+ if self.path_filter(path) and self.re.search(line):
w = Warning(path=path, line_no=line_no, line_content=line[:-1],
message=self.message)
self.add_warning(w)
=====================================
aclocal.m4
=====================================
@@ -866,7 +866,7 @@ case $TargetPlatform in
esac ;;
i386-unknown-mingw32) fptools_cv_leading_underscore=yes;;
x86_64-unknown-mingw32) fptools_cv_leading_underscore=no;;
- *) AC_RUN_IFELSE([AC_LANG_SOURCE([[#ifdef HAVE_NLIST_H
+ *) AC_RUN_IFELSE([AC_LANG_SOURCE([[#if defined(HAVE_NLIST_H)
#include <nlist.h>
struct nlist xYzzY1[] = {{"xYzzY1", 0},{0}};
struct nlist xYzzY2[] = {{"_xYzzY2", 0},{0}};
@@ -876,7 +876,7 @@ int main(argc, argv)
int argc;
char **argv;
{
-#ifdef HAVE_NLIST_H
+#if defined(HAVE_NLIST_H)
if(nlist(argv[0], xYzzY1) == 0 && xYzzY1[0].n_value != 0)
exit(1);
if(nlist(argv[0], xYzzY2) == 0 && xYzzY2[0].n_value != 0)
@@ -1650,16 +1650,16 @@ then
[fptools_cv_timer_create_works],
[AC_TRY_RUN([
#include <stdio.h>
-#ifdef HAVE_STDLIB_H
+#if defined(HAVE_STDLIB_H)
#include <stdlib.h>
#endif
-#ifdef HAVE_TIME_H
+#if defined(HAVE_TIME_H)
#include <time.h>
#endif
-#ifdef HAVE_SIGNAL_H
+#if defined(HAVE_SIGNAL_H)
#include <signal.h>
#endif
-#ifdef HAVE_UNISTD_H
+#if defined(HAVE_UNISTD_H)
#include <unistd.h>
#endif
=====================================
hadrian/src/Rules/Generate.hs
=====================================
@@ -233,7 +233,7 @@ generateGhcPlatformH = do
targetVendor <- getSetting TargetVendor
ghcUnreg <- getFlag GhcUnregisterised
return . unlines $
- [ "#ifndef __GHCPLATFORM_H__"
+ [ "#if !defined(__GHCPLATFORM_H__)"
, "#define __GHCPLATFORM_H__"
, ""
, "#define BuildPlatform_TYPE " ++ cppify hostPlatform
@@ -386,7 +386,7 @@ generateGhcAutoconfH = do
ccLlvmBackend <- getSetting CcLlvmBackend
ccClangBackend <- getSetting CcClangBackend
return . unlines $
- [ "#ifndef __GHCAUTOCONF_H__"
+ [ "#if !defined(__GHCAUTOCONF_H__)")
, "#define __GHCAUTOCONF_H__" ]
++ configHContents ++
[ "\n#define TABLES_NEXT_TO_CODE 1" | tablesNextToCode && not ghcUnreg ]
@@ -422,7 +422,7 @@ generateGhcBootPlatformH = do
targetOs <- getSetting TargetOs
targetVendor <- getSetting TargetVendor
return $ unlines
- [ "#ifndef __PLATFORM_H__"
+ [ "#if !defined(__PLATFORM_H__)")
, "#define __PLATFORM_H__"
, ""
, "#define BuildPlatform_NAME " ++ show buildPlatform
@@ -464,10 +464,10 @@ generateGhcVersionH = do
patchLevel1 <- getSetting ProjectPatchLevel1
patchLevel2 <- getSetting ProjectPatchLevel2
return . unlines $
- [ "#ifndef __GHCVERSION_H__"
+ [ "#if !defined(__GHCVERSION_H__)")
, "#define __GHCVERSION_H__"
, ""
- , "#ifndef __GLASGOW_HASKELL__"
+ , "#if !defined(__GLASGOW_HASKELL__)")
, "# define __GLASGOW_HASKELL__ " ++ version
, "#endif"
, ""]
=====================================
includes/ghc.mk
=====================================
@@ -57,7 +57,7 @@ endif
$(includes_H_VERSION) : mk/project.mk | $$(dir $$@)/.
@echo "Creating $@..."
- @echo "#ifndef __GHCVERSION_H__" > $@
+ @echo "#if !defined(__GHCVERSION_H__)" > $@)
@echo "#define __GHCVERSION_H__" >> $@
@echo >> $@
@echo "#define __GLASGOW_HASKELL__ $(ProjectVersionInt)" >> $@
@@ -92,7 +92,7 @@ else
$(includes_H_CONFIG) : mk/config.h mk/config.mk includes/ghc.mk | $$(dir $$@)/.
@echo "Creating $@..."
- @echo "#ifndef __GHCAUTOCONF_H__" >$@
+ @echo "#if !defined(__GHCAUTOCONF_H__)" >$@)
@echo "#define __GHCAUTOCONF_H__" >>$@
#
# Copy the contents of mk/config.h, turning '#define PACKAGE_FOO
@@ -125,7 +125,7 @@ endif
$(includes_H_PLATFORM) : includes/Makefile | $$(dir $$@)/.
$(call removeFiles,$@)
@echo "Creating $@..."
- @echo "#ifndef __GHCPLATFORM_H__" >$@
+ @echo "#if !defined(__GHCPLATFORM_H__)" >$@)
@echo "#define __GHCPLATFORM_H__" >>$@
@echo >> $@
@echo "#define BuildPlatform_TYPE $(HostPlatform_CPP)" >> $@
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/compare/e1976c17127a1bb39b58cacad4593ddaa0c02a0d...dc663608d5ae43036a4bfbcfe30eab65c307dad7
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/compare/e1976c17127a1bb39b58cacad4593ddaa0c02a0d...dc663608d5ae43036a4bfbcfe30eab65c307dad7
You're receiving this email because of your account on gitlab.haskell.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20190609/e5dbc245/attachment-0001.html>
More information about the ghc-commits
mailing list