From 8009e6548be50413b798ee904e15962a782a07c4 Mon Sep 17 00:00:00 2001
From: Oleg Grenrus <oleg.grenrus@iki.fi>
Date: Fri, 30 Oct 2020 15:25:48 +0200
Subject: [PATCH] Add forward declarations to ForeignLib tests

---
 cabal-testsuite/PackageTests/ForeignLibs/UseLib.c           | 6 ++++++
 .../PackageTests/ForeignLibs/csrc/MyForeignLibWrapper.c     | 5 +++--
 .../PackageTests/ForeignLibs/my-foreign-lib.cabal           | 2 ++
 cabal-testsuite/PackageTests/ForeignLibs/setup.test.hs      | 3 ++-
 4 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/cabal-testsuite/PackageTests/ForeignLibs/UseLib.c b/cabal-testsuite/PackageTests/ForeignLibs/UseLib.c
index 65770da638..2ed882fe9a 100644
--- a/cabal-testsuite/PackageTests/ForeignLibs/UseLib.c
+++ b/cabal-testsuite/PackageTests/ForeignLibs/UseLib.c
@@ -1,4 +1,10 @@
 #include <stdio.h>
+#include <stdbool.h>
+
+/* Forward declarations */
+bool myForeignLibInit();
+void myForeignLibExit();
+void sayHi();
 
 int main()
 {
diff --git a/cabal-testsuite/PackageTests/ForeignLibs/csrc/MyForeignLibWrapper.c b/cabal-testsuite/PackageTests/ForeignLibs/csrc/MyForeignLibWrapper.c
index 2660c6a335..3347c970e7 100644
--- a/cabal-testsuite/PackageTests/ForeignLibs/csrc/MyForeignLibWrapper.c
+++ b/cabal-testsuite/PackageTests/ForeignLibs/csrc/MyForeignLibWrapper.c
@@ -1,7 +1,8 @@
 #include <stdlib.h>
+#include <stdbool.h>
 #include "HsFFI.h"
 
-HsBool myForeignLibInit(void){
+bool myForeignLibInit(void){
   int argc = 2;
   char *argv[] = { "+RTS", "-A32m", NULL };
   char **pargv = argv;
@@ -11,7 +12,7 @@ HsBool myForeignLibInit(void){
 
   // do any other initialization here and
   // return false if there was a problem
-  return HS_BOOL_TRUE;
+  return true;
 }
 
 void myForeignLibExit(void){
diff --git a/cabal-testsuite/PackageTests/ForeignLibs/my-foreign-lib.cabal b/cabal-testsuite/PackageTests/ForeignLibs/my-foreign-lib.cabal
index dd5ce745cf..8b63dc24e9 100644
--- a/cabal-testsuite/PackageTests/ForeignLibs/my-foreign-lib.cabal
+++ b/cabal-testsuite/PackageTests/ForeignLibs/my-foreign-lib.cabal
@@ -20,6 +20,7 @@ foreign-library myforeignlib
 
   other-modules:       MyForeignLib.Hello
                        MyForeignLib.SomeBindings
+                       MyForeignLib.AnotherVal
   build-depends:       base, my-foreign-lib
   hs-source-dirs:      src
   c-sources:           csrc/MyForeignLibWrapper.c
@@ -34,6 +35,7 @@ foreign-library versionedlib
 
   other-modules:       MyForeignLib.Hello
                        MyForeignLib.SomeBindings
+                       MyForeignLib.AnotherVal
   build-depends:       base, my-foreign-lib
   hs-source-dirs:      src
   c-sources:           csrc/MyForeignLibWrapper.c
diff --git a/cabal-testsuite/PackageTests/ForeignLibs/setup.test.hs b/cabal-testsuite/PackageTests/ForeignLibs/setup.test.hs
index 24032abf49..81d7105eb6 100644
--- a/cabal-testsuite/PackageTests/ForeignLibs/setup.test.hs
+++ b/cabal-testsuite/PackageTests/ForeignLibs/setup.test.hs
@@ -35,7 +35,8 @@ main = setupAndCabalTest . recordMode DoNotRecord $ do
 
         -- Link a C program against the library
         _ <- runProgramM gccProgram
-            [ "-o", "uselib"
+            [ "-std=c11", "-Wall"
+            , "-o", "uselib"
             , "UseLib.c"
             , "-l", "myforeignlib"
             , "-L", flibdir installDirs ]
-- 
GitLab