mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-05 04:02:28 +00:00
wip vscode intellisense support
This commit is contained in:
parent
3ab76b2312
commit
9841e2186a
5 changed files with 92 additions and 2 deletions
76
.vscode/c_cpp_properties.json
vendored
Normal file
76
.vscode/c_cpp_properties.json
vendored
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
{
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Linux",
|
||||||
|
"includePath": [
|
||||||
|
"${workspaceFolder}"
|
||||||
|
],
|
||||||
|
"cStandard": "c11",
|
||||||
|
"cppStandard": "c++11",
|
||||||
|
"compilerPath": "${workspaceFolder}/o/third_party/gcc/bin/x86_64-linux-musl-gcc",
|
||||||
|
"defines": [
|
||||||
|
"__VSCODE_INTELLISENSE__",
|
||||||
|
"__BIGGEST_ALIGNMENT__",
|
||||||
|
"__SHRT_MAX__",
|
||||||
|
"__DBL_MIN__",
|
||||||
|
"__UINT32_MAX__",
|
||||||
|
"NULL=(void*)0",
|
||||||
|
"true",
|
||||||
|
"false=(!(true))",
|
||||||
|
"COSMOPOLITAN_C_START_=",
|
||||||
|
"COSMOPOLITAN_C_END_=",
|
||||||
|
"libcesque=",
|
||||||
|
"mallocesque=",
|
||||||
|
"pureconst=",
|
||||||
|
"paramsnonnull(x)=",
|
||||||
|
"alignas(x)",
|
||||||
|
"alignof(x)",
|
||||||
|
"artificial=",
|
||||||
|
"nodiscard=",
|
||||||
|
"mayalias=",
|
||||||
|
"_Vector_size(x)=",
|
||||||
|
"forceinline=",
|
||||||
|
"forcealign(x)=",
|
||||||
|
"wontreturn=",
|
||||||
|
"textreal=",
|
||||||
|
"vallocesque=",
|
||||||
|
"nosideeffect=",
|
||||||
|
"unreachable=",
|
||||||
|
"thatispacked=",
|
||||||
|
"nothrow=",
|
||||||
|
"nocallback=",
|
||||||
|
"relegated=",
|
||||||
|
"hidden=",
|
||||||
|
"textstartup=",
|
||||||
|
"initarray=",
|
||||||
|
"returnsnonnull=",
|
||||||
|
"returnspointerwithnoaliases=",
|
||||||
|
"printfesque(x)=",
|
||||||
|
"attributeallocsize(x)=",
|
||||||
|
"va_list=void*",
|
||||||
|
"returnsaligned(x)=",
|
||||||
|
"attributeallocalign(x)=",
|
||||||
|
"nullterminated(x)=",
|
||||||
|
"PAGESIZE",
|
||||||
|
"g_loglevel",
|
||||||
|
"int8_t=signed char",
|
||||||
|
"int16_t=signed short int",
|
||||||
|
"int32_t=signed int",
|
||||||
|
"int64_t=signed long long",
|
||||||
|
"uint8_t=unsigned char",
|
||||||
|
"uint16_t=unsigned short int",
|
||||||
|
"uint32_t=unsigned int",
|
||||||
|
"uint64_t=unsigned long long",
|
||||||
|
"errno_t=int",
|
||||||
|
"size_t=uint64_t",
|
||||||
|
"ssize_t=int64_t",
|
||||||
|
"uintptr_t=uint64_t",
|
||||||
|
"intptr_t=int64_t",
|
||||||
|
"bool=uint8_t",
|
||||||
|
"char16_t=uint16_t",
|
||||||
|
"char32_t=uint32_t"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"version": 4
|
||||||
|
}
|
|
@ -16,7 +16,8 @@ const char *emptytonull(const char *);
|
||||||
const char *firstnonnull(const char *, const char *);
|
const char *firstnonnull(const char *, const char *);
|
||||||
uint64_t(unsignedsubtract)(uint64_t, uint64_t) pureconst;
|
uint64_t(unsignedsubtract)(uint64_t, uint64_t) pureconst;
|
||||||
|
|
||||||
#if !defined(__STRICT_ANSI__) && defined(__GNUC__)
|
#if !defined(__STRICT_ANSI__) && defined(__GNUC__) && \
|
||||||
|
!defined(__VSCODE_INTELLISENSE__)
|
||||||
|
|
||||||
#define min(x, y) \
|
#define min(x, y) \
|
||||||
({ \
|
({ \
|
||||||
|
|
|
@ -47,6 +47,9 @@ COSMOPOLITAN_C_START_
|
||||||
VAR = (typeof(VAR))__builtin_assume_aligned(VAR, BYTES); \
|
VAR = (typeof(VAR))__builtin_assume_aligned(VAR, BYTES); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
#if defined(__VSCODE_INTELLISENSE__)
|
||||||
|
#define __CHK(...)
|
||||||
|
#else
|
||||||
#define __CHK(SUFFIX, OP, WANT, WANTSTR, GOT, GOTSTR, ...) \
|
#define __CHK(SUFFIX, OP, WANT, WANTSTR, GOT, GOTSTR, ...) \
|
||||||
do { \
|
do { \
|
||||||
autotype(GOT) Got = (GOT); \
|
autotype(GOT) Got = (GOT); \
|
||||||
|
@ -61,7 +64,11 @@ COSMOPOLITAN_C_START_
|
||||||
unreachable; \
|
unreachable; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
#endif /* defined(__VSCODE_INTELLISENSE__) */
|
||||||
|
|
||||||
|
#if defined(__VSCODE_INTELLISENSE__)
|
||||||
|
#define __DCHK(...)
|
||||||
|
#else
|
||||||
#ifdef NDEBUG
|
#ifdef NDEBUG
|
||||||
#define __DCHK(SUFFIX, OP, WANT, WANTSTR, GOT, ...) \
|
#define __DCHK(SUFFIX, OP, WANT, WANTSTR, GOT, ...) \
|
||||||
do { \
|
do { \
|
||||||
|
@ -74,7 +81,8 @@ COSMOPOLITAN_C_START_
|
||||||
#else
|
#else
|
||||||
#define __DCHK(SUFFIX, OP, WANT, WANTSTR, GOT, GOTSTR, ...) \
|
#define __DCHK(SUFFIX, OP, WANT, WANTSTR, GOT, GOTSTR, ...) \
|
||||||
__CHK(SUFFIX, OP, WANT, WANTSTR, GOT, GOTSTR, __VA_ARGS__)
|
__CHK(SUFFIX, OP, WANT, WANTSTR, GOT, GOTSTR, __VA_ARGS__)
|
||||||
#endif
|
#endif /* NDEBUG */
|
||||||
|
#endif /* defined(__VSCODE_INTELLISENSE__) */
|
||||||
|
|
||||||
#ifdef NDEBUG
|
#ifdef NDEBUG
|
||||||
#define __DCHK_ALIGNED(BYTES, VAR)
|
#define __DCHK_ALIGNED(BYTES, VAR)
|
||||||
|
|
|
@ -30,6 +30,7 @@ void gclongjmp(jmp_buf, int) nothrow wontreturn paramsnonnull();
|
||||||
/**
|
/**
|
||||||
* Calls FN(ARG) when function returns.
|
* Calls FN(ARG) when function returns.
|
||||||
*/
|
*/
|
||||||
|
#ifndef __VSCODE_INTELLISENSE__
|
||||||
#define defer(FN, ARG) \
|
#define defer(FN, ARG) \
|
||||||
({ \
|
({ \
|
||||||
autotype(ARG) Arg = (ARG); \
|
autotype(ARG) Arg = (ARG); \
|
||||||
|
@ -39,6 +40,7 @@ void gclongjmp(jmp_buf, int) nothrow wontreturn paramsnonnull();
|
||||||
asm volatile("" : "+g"(Arg) : : "memory"); \
|
asm volatile("" : "+g"(Arg) : : "memory"); \
|
||||||
Arg; \
|
Arg; \
|
||||||
})
|
})
|
||||||
|
#endif /* __VSCODE_INTELLISENSE__ */
|
||||||
|
|
||||||
void __defer(struct StackFrame *, void *, void *) hidden paramsnonnull((1, 2));
|
void __defer(struct StackFrame *, void *, void *) hidden paramsnonnull((1, 2));
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,9 @@
|
||||||
#define SYMBOLIC(NAME) NAME(%rip)
|
#define SYMBOLIC(NAME) NAME(%rip)
|
||||||
#define LITERALLY(NAME) $NAME
|
#define LITERALLY(NAME) $NAME
|
||||||
/* clang-format on */
|
/* clang-format on */
|
||||||
|
#elif defined(__VSCODE_INTELLISENSE__)
|
||||||
|
#define SYMBOLIC(NAME) 1
|
||||||
|
#define LITERALLY(NAME) 1
|
||||||
#else
|
#else
|
||||||
#define SYMBOLIC(NAME) NAME
|
#define SYMBOLIC(NAME) NAME
|
||||||
#define LITERALLY(NAME) NAME
|
#define LITERALLY(NAME) NAME
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue