Skip to content

Commit 8416320

Browse files
authored
Merge pull request #904 from well-typed/dom/784/program-slicing-predicate
Program slicing with selection predicates
2 parents 85bdbef + 21f321e commit 8416320

23 files changed

+3669
-111
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#include <errno.h> /* ENOENT, EACCES, ... */
2+
#include <stddef.h> /* size_t */
3+
#include <stdint.h> /* uint32_t, uint64_t */
4+
#include <stdio.h> /* FILE */
5+
#include <time.h> /* time_t */
6+
7+
enum FileOperationStatus {
8+
SUCCESS = 0,
9+
NOT_FOUND = ENOENT,
10+
PERMISSION_DENIED = EACCES,
11+
INVALID_ARGUMENT = EINVAL,
12+
OUT_OF_MEMORY = ENOMEM,
13+
CUSTOM_ERROR_OTHER = -1
14+
};
15+
16+
struct FileOperationRecord {
17+
enum FileOperationStatus status;
18+
size_t bytes_processed;
19+
};
20+
21+
enum FileOperationStatus read_file_chunk(FILE *file_ptr, void *buffer,
22+
size_t bytes_to_read);
23+
24+
struct UnselectedStruct {
25+
time_t time_t_should_not_be_in_fixtures;
26+
};
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
types:
2+
- headers: program_slicing_selection.h
3+
cname: struct FileOperationRecord
4+
module: Example
5+
identifier: FileOperationRecord
6+
instances:
7+
- Eq
8+
- Show
9+
- Storable
10+
- headers: program_slicing_selection.h
11+
cname: enum FileOperationStatus
12+
module: Example
13+
identifier: FileOperationStatus
14+
instances:
15+
- Eq
16+
- Ord
17+
- Read
18+
- Show
19+
- Storable
20+
- headers: program_slicing_selection.h
21+
cname: struct _IO_FILE
22+
module: Example
23+
identifier: C_IO_FILE
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
CApiFFI
2+
TemplateHaskell
3+
TypeFamilies
4+
DerivingStrategies
5+
EmptyDataDecls
6+
PatternSynonyms

0 commit comments

Comments
 (0)