diff options
| author | Jimmi Holst Christensen <jimmiholstchristensen@gmail.com> | 2018-07-18 17:00:42 +0200 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2018-07-18 11:00:42 -0400 |
| commit | fd3a41dadc92e7b69b409af5f747004996465032 (patch) | |
| tree | 6a14bc1520587f6c255329815ec3d9b62e884c35 /src/analyze.cpp | |
| parent | c393a399fb4b463f095a8510595263759fd82cd6 (diff) | |
| download | zig-fd3a41dadc92e7b69b409af5f747004996465032.tar.gz zig-fd3a41dadc92e7b69b409af5f747004996465032.zip | |
Allow pointers to anything in extern/exported declarations (#1258)
* type_allowed_in_extern accepts all ptr not size 0
* Generate correct headers for none extern structs/unions/enums
Diffstat (limited to 'src/analyze.cpp')
| -rw-r--r-- | src/analyze.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/analyze.cpp b/src/analyze.cpp index 2ace893508..06d611f80d 100644 --- a/src/analyze.cpp +++ b/src/analyze.cpp @@ -1454,7 +1454,9 @@ static bool type_allowed_in_extern(CodeGen *g, TypeTableEntry *type_entry) { case TypeTableEntryIdFn: return type_entry->data.fn.fn_type_id.cc == CallingConventionC; case TypeTableEntryIdPointer: - return type_allowed_in_extern(g, type_entry->data.pointer.child_type); + if (type_size(g, type_entry) == 0) + return false; + return true; case TypeTableEntryIdStruct: return type_entry->data.structure.layout == ContainerLayoutExtern || type_entry->data.structure.layout == ContainerLayoutPacked; case TypeTableEntryIdOptional: |
