summaryrefslogtreecommitdiff
path: root/testsuite/tests/th/T16180.hs
blob: 2a4b80c976052cdd10fd0a8a32d0555e6a6335e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{-# LANGUAGE TemplateHaskell #-}

module Main where

import Language.Haskell.TH.Syntax
import Foreign.C.String

$(do
   -- some architectures require a "_" symbol prefix...
   -- GHC defines a LEADING_UNDERSCORE CPP constant to indicate this.
   addForeignSource LangAsm
      "#if defined(LEADING_UNDERSCORE)\n\
      \.global \"_mydata\"\n\
      \_mydata:\n\
      \#else\n\
      \.global \"mydata\"\n\
      \mydata:\n\
      \#endif\n\
      \.ascii \"Hello world\\0\"\n"
   return [])

foreign import ccall "&mydata" mystring :: CString

main :: IO ()
main = putStrLn =<< peekCString mystring