test(C0.1): pin named #import c block — name namespaces decls, #define/#flags reach the unit's compile
This commit is contained in:
18
examples/1618-cimport-named-defines.sx
Normal file
18
examples/1618-cimport-named-defines.sx
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
// Pins the NAMED `#import c` block (PLAN-C C0.1): the block's name
|
||||||
|
// namespaces the decls synthesized from `#include`, and `#define` /
|
||||||
|
// `#flags` entries reach the unit's clang invocation — the macro decides
|
||||||
|
// what cdef_value answers.
|
||||||
|
#import "modules/std.sx";
|
||||||
|
|
||||||
|
cu :: #import c {
|
||||||
|
#include "1618-cimport-named-defines/cdef.h";
|
||||||
|
#source "1618-cimport-named-defines/cdef.c";
|
||||||
|
#define "CDEF_BASE=42";
|
||||||
|
#flags "-O2";
|
||||||
|
};
|
||||||
|
|
||||||
|
main :: () -> i32 {
|
||||||
|
print("value = {}\n", cu.cdef_value());
|
||||||
|
print("doubled = {}\n", cu.cdef_doubled(21));
|
||||||
|
0
|
||||||
|
}
|
||||||
6
examples/1618-cimport-named-defines/cdef.c
Normal file
6
examples/1618-cimport-named-defines/cdef.c
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#include "cdef.h"
|
||||||
|
#ifndef CDEF_BASE
|
||||||
|
#define CDEF_BASE 1
|
||||||
|
#endif
|
||||||
|
int cdef_value(void) { return CDEF_BASE; }
|
||||||
|
int cdef_doubled(int x) { return x * 2; }
|
||||||
5
examples/1618-cimport-named-defines/cdef.h
Normal file
5
examples/1618-cimport-named-defines/cdef.h
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
#ifndef CDEF_H
|
||||||
|
#define CDEF_H
|
||||||
|
int cdef_value(void);
|
||||||
|
int cdef_doubled(int x);
|
||||||
|
#endif
|
||||||
1
examples/expected/1618-cimport-named-defines.exit
Normal file
1
examples/expected/1618-cimport-named-defines.exit
Normal file
@@ -0,0 +1 @@
|
|||||||
|
0
|
||||||
1
examples/expected/1618-cimport-named-defines.stderr
Normal file
1
examples/expected/1618-cimport-named-defines.stderr
Normal file
@@ -0,0 +1 @@
|
|||||||
|
|
||||||
2
examples/expected/1618-cimport-named-defines.stdout
Normal file
2
examples/expected/1618-cimport-named-defines.stdout
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
value = 42
|
||||||
|
doubled = 42
|
||||||
Reference in New Issue
Block a user