clang-pure 0.2.0.3 → 0.2.0.4
raw patch · 3 files changed
+18/−2 lines, 3 files
Files
- clang-pure.cabal +2/−2
- src/Language/C/Clang/Internal/FFI.hsc +15/−0
- src/Language/C/Clang/Type.hs +1/−0
clang-pure.cabal view
@@ -1,5 +1,5 @@ name: clang-pure-version: 0.2.0.3+version: 0.2.0.4 synopsis: Pure C++ code analysis with libclang description: Pure C++ code analysis with libclang.@@ -13,7 +13,7 @@ copyright: Copyright 2014 Google Inc. All Rights Reserved. category: Language build-type: Custom-cabal-version: >=1.24+cabal-version: 1.24 extra-source-files: cbits/clang-pure-utils.h custom-setup
src/Language/C/Clang/Internal/FFI.hsc view
@@ -493,6 +493,21 @@ then return Nothing else (Just . Type) <$> newLeaf (parent t) (\_ -> return ( etp, free etp )) +typePointeeType :: Type -> Maybe Type+typePointeeType t = uderef t $ \tp -> do+ etp <- [C.block| CXType* {+ CXType type = clang_getPointeeType(*$(CXType *tp));++ if (type.kind == CXType_Invalid) {+ return NULL;+ }++ return ALLOC(type);+ } |]+ if etp == nullPtr+ then return Nothing+ else (Just . Type) <$> newLeaf (parent t) (\_ -> return ( etp, free etp ))+ typeKind :: Type -> TypeKind typeKind t = uderef t $ fmap parseTypeKind . #peek CXType, kind
src/Language/C/Clang/Type.hs view
@@ -19,6 +19,7 @@ , typeArraySize , typeCanonicalType , typeElementType+ , typePointeeType , typeSizeOf , typeSpelling , typeKind