microsoft / microsoft/vscode-cpptools
IntelliSense doesn't seem to be able to handle some compiler extensions
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 6.2k
- Forks
- 1.7k
- Avg merge
- 14h 46m
- Merged PRs (30d)
- 61
Description
IntelliSense detects errors on built-in compiler extensions like __int24 and __uint24 from avr-gcc that aren't really errors. There seems to be no built-in way to tell it these are ok.
Steps to reproduce
- Create a file,
test.c:int main() { *(volatile __uint24 *)0xC8 = 0x123456; } // Meaningless trivial complete example - Build with
avr-gcc test.c. No errors/warnings.a.outis created. - Configure
c_cpp_properties.jsonwith acompilerPathset, possibly adding extra flags to match build configurations:{ "compilerPath": "\"${config:local.avr-gcc.compilerDir}/bin/avr-gcc\" -mmcu=atmega32u4" } - See error squiggles under
__uint24saying:identifier "__uint24" is undefined.
Expected behavior
No detected errors when using built-in extensions of a specified compiler.
Code sample and Logs
Full c_cpp_properties.json, with "defines" workaround
{
"configurations": [
{
"name": "avr-gcc",
"compilerPath": "\"${config:local.avr-gcc.compilerDir}/bin/avr-gcc\" -UAVR -mmcu=atmega32u4 -fshort-enums -funsigned-char -funsigned-bitfields -fno-inline-small-functions -fno-strict-aliasing -fpack-struct",
"intelliSenseMode": "gcc-arm",
"includePath": [
"${workspaceFolder}/src",
"${workspaceFolder}/lufa",
"${workspaceFolder}/AVR++",
"${workspaceFolder}/libCameron/src",
"${config:local.avr-gcc.compilerDir}/avr/include"
],
"defines": [
"F_CPU=16000000UL",
"F_USB=F_CPU",
"USE_LUFA_CONFIG_HEADER",
"__int24=int",
"__uint24=unsigned"
],
"cStandard": "c11",
"cppStandard": "c++17"
}
],
"version": 4
}
Language server log (debug)
cpptools/rescanFolder
Shutting down IntelliSense server: C:\Users\camer\git\PROJECT\Firmware\test.cpp
Discovering files...
Processing folder (recursive): C:/PROGRAM FILES/AVR-GCC/AVR8-GNU-TOOLCHAIN-WIN32_X86/AVR/INCLUDE/
Processing folder (recursive): C:/PROGRAM FILES/AVR-GCC/AVR8-GNU-TOOLCHAIN-WIN32_X86/LIB/GCC/AVR/5.4.0/INCLUDE/
Processing folder (recursive): C:/PROGRAM FILES/AVR-GCC/AVR8-GNU-TOOLCHAIN-WIN32_X86/LIB/GCC/AVR/5.4.0/INCLUDE-FIXED/
Processing folder (recursive): C:/USERS/CAMER/GIT/PROJECT/FIRMWARE/
Discovering files: 4023 file(s) processed
Checking for syntax errors: C:\Users\camer\git\PROJECT\Firmware\test.cpp
sending compilation args for C:\Users\camer\git\PROJECT\Firmware\test.cpp
include: C:\USERS\CAMER\GIT\PROJECT\FIRMWARE\SRC
include: C:\USERS\CAMER\GIT\PROJECT\FIRMWARE\LUFA
include: C:\USERS\CAMER\GIT\PROJECT\FIRMWARE\AVR++
include: C:\USERS\CAMER\GIT\PROJECT\FIRMWARE\LIBCAMERON\SRC
include: C:\PROGRAM FILES\AVR-GCC\AVR8-GNU-TOOLCHAIN-WIN32_X86\LIB\GCC\AVR\5.4.0\INCLUDE
include: C:\PROGRAM FILES\AVR-GCC\AVR8-GNU-TOOLCHAIN-WIN32_X86\LIB\GCC\AVR\5.4.0\INCLUDE-FIXED
include: C:\PROGRAM FILES\AVR-GCC\AVR8-GNU-TOOLCHAIN-WIN32_X86\AVR\INCLUDE
define: __DBL_MIN_EXP__=(-125)
define: __HQ_FBIT__=15
define: __UINT_LEAST16_MAX__=0xffffU
define: __ATOMIC_ACQUIRE=2
define: __SFRACT_IBIT__=0
define: __FLT_MIN__=1.17549435e-38F
define: __GCC_IEC_559_COMPLEX=0
define: __BUILTIN_AVR_SLEEP=1
define: __BUILTIN_AVR_COUNTLSULLK=1
define: __BUILTIN_AVR_COUNTLSULLR=1
define: __UFRACT_MAX__=0XFFFFP-16UR
define: __UINT_LEAST8_TYPE__=unsigned char
define: __DQ_FBIT__=63
define: __INTMAX_C(c)=c ## LL
define: __ULFRACT_FBIT__=32
define: __SACCUM_EPSILON__=0x1P-7HK
define: __CHAR_BIT__=8
define: __USQ_IBIT__=0
define: __UINT8_MAX__=0xff
define: __ACCUM_FBIT__=15
define: __WINT_MAX__=0x7fff
define: __USFRACT_FBIT__=8
define: __ORDER_LITTLE_ENDIAN__=1234
define: __SIZE_MAX__=0xffffU
define: __WCHAR_MAX__=0x7fff
define: __LACCUM_IBIT__=32
define: __DBL_DENORM_MIN__=double(1.40129846e-45L)
define: __GCC_ATOMIC_CHAR_LOCK_FREE=1
define: __GCC_IEC_559=0
define: __FLT_EVAL_METHOD__=0
define: __BUILTIN_AVR_LLKBITS=1
define: __LLACCUM_MAX__=0X7FFFFFFFFFFFFFFFP-47LLK
define: __GCC_ATOMIC_CHAR32_T_LOCK_FREE=1
define: __BUILTIN_AVR_HKBITS=1
define: __BUILTIN_AVR_BITSLLK=1
define: __FRACT_FBIT__=15
define: __BUILTIN_AVR_BITSLLR=1
define: __UINT_FAST64_MAX__=0xffffffffffffffffULL
define: __SIG_ATOMIC_TYPE__=char
define: __BUILTIN_AVR_UHKBITS=1
define: __UACCUM_FBIT__=16
define: __DBL_MIN_10_EXP__=(-37)
define: __FINITE_MATH_ONLY__=0
define: __LFRACT_IBIT__=0
define: __GNUC_PATCHLEVEL__=0
define: __AVR_MEGA__=1
define: __LFRACT_MAX__=0X7FFFFFFFP-31LR
define: __UINT_FAST8_MAX__=0xff
define: __DEC64_MAX_EXP__=385
define: __INT8_C(c)=c
define: __UINT_LEAST64_MAX__=0xffffffffffffffffULL
define: __SA_FBIT__=15
define: __SHRT_MAX__=0x7fff
define: __LDBL_MAX__=3.40282347e+38L
define: __FRACT_MAX__=0X7FFFP-15R
define: __UFRACT_FBIT__=16
define: __UFRACT_MIN__=0.0UR
define: __UINT_LEAST8_MAX__=0xff
define: __GCC_ATOMIC_BOOL_LOCK_FREE=1
define: __UINTMAX_TYPE__=long long unsigned int
define: __LLFRACT_EPSILON__=0x1P-63LLR
define: __BUILTIN_AVR_DELAY_CYCLES=1
define: __DEC32_EPSILON__=1E-6DF
define: __CHAR_UNSIGNED__=1
define: __UINT32_MAX__=0xffffffffUL
define: __GXX_EXPERIMENTAL_CXX0X__=1
define: __ULFRACT_MAX__=0XFFFFFFFFP-32ULR
define: __TA_IBIT__=16
define: __LDBL_MAX_EXP__=128
define: __WINT_MIN__=(-__WINT_MAX__ - 1)
define: __ULLFRACT_MIN__=0.0ULLR
define: __SCHAR_MAX__=0x7f
define: __WCHAR_MIN__=(-__WCHAR_MAX__ - 1)
define: __INT64_C(c)=c ## LL
define: __DBL_DIG__=6
define: __GCC_ATOMIC_POINTER_LOCK_FREE=1
define: __AVR_HAVE_SPH__=1
define: __LLACCUM_MIN__=(-0X1P15LLK-0X1P15LLK)
define: __BUILTIN_AVR_KBITS=1
define: __BUILTIN_AVR_ABSK=1
define: __BUILTIN_AVR_ABSR=1
define: __SIZEOF_INT__=2
define: __SIZEOF_POINTER__=2
define: __GCC_ATOMIC_CHAR16_T_LOCK_FREE=1
define: __USACCUM_IBIT__=8
define: __USER_LABEL_PREFIX__=
define: __STDC_HOSTED__=1
define: __LDBL_HAS_INFINITY__=1
define: __LFRACT_MIN__=(-0.5LR-0.5LR)
define: __HA_IBIT__=8
define: __TQ_IBIT__=0
define: __FLT_EPSILON__=1.19209290e-7F
define: __GXX_WEAK__=1
define: __USFRACT_IBIT__=0
define: __LDBL_MIN__=1.17549435e-38L
define: __FRACT_MIN__=(-0.5R-0.5R)
define: __AVR_SFR_OFFSET__=0x20
define: __DEC32_MAX__=9.999999E96DF
define: __DA_IBIT__=32
define: __INT32_MAX__=0x7fffffffL
define: __UQQ_FBIT__=8
define: __SIZEOF_LONG__=4
define: __UACCUM_MAX__=0XFFFFFFFFP-16UK
define: __UINT16_C(c)=c ## U
define: __DECIMAL_DIG__=9
define: __LFRACT_EPSILON__=0x1P-31LR
define: __AVR_2_BYTE_PC__=1
define: __ULFRACT_MIN__=0.0ULR
define: __BUILTIN_AVR_ULLRBITS=1
define: __LDBL_HAS_QUIET_NAN__=1
define: __ULACCUM_IBIT__=32
define: __UACCUM_EPSILON__=0x1P-16UK
define: __BUILTIN_AVR_SEI=1
define: __GNUC__=5
define: __ULLACCUM_MAX__=0XFFFFFFFFFFFFFFFFP-48ULLK
define: __HQ_IBIT__=0
define: __BUILTIN_AVR_SWAP=1
define: __FLT_HAS_DENORM__=1
define: __SIZEOF_LONG_DOUBLE__=4
define: __BIGGEST_ALIGNMENT__=1
define: __STDC_UTF_16__=1
define: __UINT24_MAX__=16777215UL
define: __BUILTIN_AVR_NOP=1
define: __GNUC_STDC_INLINE__=1
define: __DQ_IBIT__=0
define: __DBL_MAX__=double(3.40282347e+38L)
define: __ULFRACT_IBIT__=0
define: __INT_FAST32_MAX__=0x7fffffffL
define: __DBL_HAS_INFINITY__=1
define: __INT64_MAX__=0x7fffffffffffffffLL
define: __ACCUM_IBIT__=16
define: __DEC32_MIN_EXP__=(-94)
define: __BUILTIN_AVR_UKBITS=1
define: __BUILTIN_AVR_FMULSU=1
define: __LACCUM_MAX__=0X7FFFFFFFFFFFFFFFP-31LK
define: __INT_FAST16_TYPE__=int
define: __STRICT_ANSI__=1
define: __LDBL_HAS_DENORM__=1
define: __BUILTIN_AVR_BITSK=1
define: __BUILTIN_AVR_BITSR=1
define: __cplusplus=201500L
define: __DEC128_MAX__=9.999999999999999999999999999999999E6144DL
define: __INT_LEAST32_MAX__=0x7fffffffL
define: __USING_SJLJ_EXCEPTIONS__=1
define: __DEC32_MIN__=1E-95DF
define: __ACCUM_MAX__=0X7FFFFFFFP-15K
define: __DEPRECATED=1
define: __DBL_MAX_EXP__=128
define: __USACCUM_EPSILON__=0x1P-8UHK
define: __DEC128_EPSILON__=1E-33DL
define: __SFRACT_MAX__=0X7FP-7HR
define: __FRACT_IBIT__=0
define: __PTRDIFF_MAX__=0x7fff
define: __UACCUM_MIN__=0.0UK
define: __AVR_ENHANCED__=1
define: __UACCUM_IBIT__=16
define: __BUILTIN_AVR_WDR=1
define: __GNUG__=5
define: __LONG_LONG_MAX__=0x7fffffffffffffffLL
define: __SIZEOF_SIZE_T__=2
define: __ULACCUM_MAX__=0XFFFFFFFFFFFFFFFFP-32ULK
define: __SIZEOF_WINT_T__=2
define: __SA_IBIT__=16
define: __ULLACCUM_MIN__=0.0ULLK
define: __BUILTIN_AVR_ROUNDUHK=1
define: __BUILTIN_AVR_ROUNDUHR=1
define: __GXX_ABI_VERSION=1009
define: __INT24_MAX__=8388607L
define: __UTA_FBIT__=48
define: __FLT_MIN_EXP__=(-125)
define: __USFRACT_MAX__=0XFFP-8UHR
define: __UFRACT_IBIT__=0
define: __BUILTIN_AVR_ROUNDFX=1
define: __BUILTIN_AVR_ROUNDULK=1
define: __BUILTIN_AVR_ROUNDULR=1
define: __BUILTIN_AVR_COUNTLSLLK=1
define: __BUILTIN_AVR_COUNTLSLLR=1
define: __BUILTIN_AVR_ROUNDHK=1
define: __INT_FAST64_TYPE__=long long int
define: __BUILTIN_AVR_ROUNDHR=1
define: __DBL_MIN__=double(1.17549435e-38L)
define: __BUILTIN_AVR_COUNTLSK=1
define: __BUILTIN_AVR_ROUNDLK=1
define: __BUILTIN_AVR_COUNTLSR=1
define: __BUILTIN_AVR_ROUNDLR=1
define: __FLT_MIN_10_EXP__=(-37)
define: __LACCUM_MIN__=(-0X1P31LK-0X1P31LK)
define: __ULLACCUM_FBIT__=48
define: __BUILTIN_AVR_LKBITS=1
define: __ULLFRACT_EPSILON__=0x1P-64ULLR
define: __DEC128_MIN__=1E-6143DL
define: __REGISTER_PREFIX__=
define: __UINT16_MAX__=0xffffU
define: __DBL_HAS_DENORM__=1
define: __BUILTIN_AVR_ULKBITS=1
define: __ACCUM_MIN__=(-0X1P15K-0X1P15K)
define: __AVR_ARCH__=5
define: __SQ_IBIT__=0
define: __UINT8_TYPE__=unsigned char
define: __BUILTIN_AVR_ROUNDUK=1
define: __BUILTIN_AVR_ROUNDUR=1
define: __UHA_FBIT__=8
define: __NO_INLINE__=1
define: __SFRACT_MIN__=(-0.5HR-0.5HR)
define: __UTQ_FBIT__=128
define: __FLT_MANT_DIG__=24
define: __VERSION__="5.4.0"
define: __UINT64_C(c)=c ## ULL
define: __ULLFRACT_FBIT__=64
define: __FRACT_EPSILON__=0x1P-15R
define: __ULACCUM_MIN__=0.0ULK
define: __UDA_FBIT__=32
define: __LLACCUM_EPSILON__=0x1P-47LLK
define: __GCC_ATOMIC_INT_LOCK_FREE=1
define: __BUILTIN_AVR_BITSUHK=1
define: __BUILTIN_AVR_BITSUHR=1
define: __FLOAT_WORD_ORDER__=__ORDER_LITTLE_ENDIAN__
define: __USFRACT_MIN__=0.0UHR
define: __BUILTIN_AVR_BITSULK=1
define: __ULLACCUM_IBIT__=16
define: __BUILTIN_AVR_BITSULR=1
define: __UQQ_IBIT__=0
define: __BUILTIN_AVR_LLRBITS=1
define: __BUILTIN_AVR_BITSULLK=1
define: __BUILTIN_AVR_BITSULLR=1
define: __INT32_C(c)=c ## L
define: __DEC64_EPSILON__=1E-15DD
define: __ORDER_PDP_ENDIAN__=3412
define: __DEC128_MIN_EXP__=(-6142)
define: __UHQ_FBIT__=16
define: __LLACCUM_FBIT__=47
define: __BUILTIN_AVR_ROUNDULLK=1
define: __BUILTIN_AVR_ROUNDULLR=1
define: __INT_FAST32_TYPE__=long int
define: __BUILTIN_AVR_HRBITS=1
define: __UINT_LEAST16_TYPE__=unsigned int
define: __BUILTIN_AVR_UHRBITS=1
define: __INT16_MAX__=0x7fff
define: __SIZE_TYPE__=unsigned int
define: __UINT64_MAX__=0xffffffffffffffffULL
define: __UDQ_FBIT__=64
define: __INT8_TYPE__=signed char
define: __AVR_ATmega32U4__=1
define: __ELF__=1
define: __ULFRACT_EPSILON__=0x1P-32ULR
define: __LLFRACT_FBIT__=63
define: __FLT_RADIX__=2
define: __INT_LEAST16_TYPE__=int
define: __BUILTIN_AVR_ABSFX=1
define: __LDBL_EPSILON__=1.19209290e-7L
define: __UINTMAX_C(c)=c ## ULL
define: __INT24_MIN__=(-__INT24_MAX__-1)
define: __SACCUM_MAX__=0X7FFFP-7HK
define: __BUILTIN_AVR_ABSHR=1
define: __SIG_ATOMIC_MAX__=0xff
define: __GCC_ATOMIC_WCHAR_T_LOCK_FREE=1
define: __SIZEOF_PTRDIFF_T__=2
define: __AVR=1
define: __BUILTIN_AVR_ABSLK=1
define: __BUILTIN_AVR_ABSLR=1
define: __LACCUM_EPSILON__=0x1P-31LK
define: __DEC32_SUBNORMAL_MIN__=0.000001E-95DF
define: __INT_FAST16_MAX__=0x7fff
define: __UINT_FAST32_MAX__=0xffffffffUL
define: __UINT_LEAST64_TYPE__=long long unsigned int
define: __USACCUM_MAX__=0XFFFFP-8UHK
define: __SFRACT_EPSILON__=0x1P-7HR
define: __FLT_HAS_QUIET_NAN__=1
define: __FLT_MAX_10_EXP__=38
define: __LONG_MAX__=0x7fffffffL
define: __DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL
define: __FLT_HAS_INFINITY__=1
define: __USA_FBIT__=16
define: __UINT_FAST16_TYPE__=unsigned int
define: __DEC64_MAX__=9.999999999999999E384DD
define: __BUILTIN_AVR_RBITS=1
define: __CHAR16_TYPE__=unsigned int
define: __PRAGMA_REDEFINE_EXTNAME=1
define: __AVR_HAVE_LPMX__=1
define: __INT_LEAST16_MAX__=0x7fff
define: __DEC64_MANT_DIG__=16
define: __UINT_LEAST32_MAX__=0xffffffffUL
define: __SACCUM_FBIT__=7
define: __GCC_ATOMIC_LONG_LOCK_FREE=1
define: __INT_LEAST64_TYPE__=long long int
define: __INT16_TYPE__=int
define: __INT_LEAST8_TYPE__=signed char
define: __SQ_FBIT__=31
define: __DEC32_MAX_EXP__=97
define: __INT_FAST8_MAX__=0x7f
define: __INTPTR_MAX__=0x7fff
define: __QQ_FBIT__=7
define: __UTA_IBIT__=16
define: __LDBL_MANT_DIG__=24
define: __SFRACT_FBIT__=7
define: __SACCUM_MIN__=(-0X1P7HK-0X1P7HK)
define: __DBL_HAS_QUIET_NAN__=1
define: __SIG_ATOMIC_MIN__=0
define: __BUILTIN_AVR_FMULS=1
define: __INTPTR_TYPE__=int
define: __UINT16_TYPE__=unsigned int
define: __WCHAR_TYPE__=int
define: __SIZEOF_FLOAT__=4
define: __AVR__=1
define: __BUILTIN_AVR_INSERT_BITS=1
define: __AVR_HAVE_JMP_CALL__=1
define: __USQ_FBIT__=32
define: __UINTPTR_MAX__=0xffffU
define: __DEC64_MIN_EXP__=(-382)
define: __INT_FAST64_MAX__=0x7fffffffffffffffLL
define: __GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1
define: __FLT_DIG__=6
define: __UINT_FAST64_TYPE__=long long unsigned int
define: __BUILTIN_AVR_BITSHK=1
define: __BUILTIN_AVR_BITSHR=1
define: __INT_MAX__=0x7fff
define: __LACCUM_FBIT__=31
define: __USACCUM_MIN__=0.0UHK
define: __UHA_IBIT__=8
define: __INT64_TYPE__=long long int
define: __BUILTIN_AVR_BITSLK=1
define: __BUILTIN_AVR_BITSLR=1
define: __FLT_MAX_EXP__=128
define: __AVR_HAVE_MUL__=1
define: __UTQ_IBIT__=0
define: __DBL_MANT_DIG__=24
define: __BUILTIN_AVR_ULLKBITS=1
define: __INT_LEAST64_MAX__=0x7fffffffffffffffLL
define: __AVR_HAVE_MOVW__=1
define: __DEC64_MIN__=1E-383DD
define: __WINT_TYPE__=int
define: __UINT_LEAST32_TYPE__=long unsigned int
define: __SIZEOF_SHORT__=2
define: __ULLFRACT_IBIT__=0
define: __LDBL_MIN_EXP__=(-125)
define: __UDA_IBIT__=32
define: __INT_LEAST8_MAX__=0x7f
define: __LFRACT_FBIT__=31
define: __LDBL_MAX_10_EXP__=38
define: __ATOMIC_RELAXED=0
define: __DBL_EPSILON__=double(1.19209290e-7L)
define: __BUILTIN_AVR_BITSUK=1
define: __BUILTIN_AVR_BITSUR=1
define: __UINT8_C(c)=c
define: __INT_LEAST32_TYPE__=long int
define: __BUILTIN_AVR_URBITS=1
define: __SIZEOF_WCHAR_T__=2
define: __UINT64_TYPE__=long long unsigned int
define: __LLFRACT_MAX__=0X7FFFFFFFFFFFFFFFP-63LLR
define: __TQ_FBIT__=127
define: __INT_FAST8_TYPE__=signed char
define: __ULLACCUM_EPSILON__=0x1P-48ULLK
define: __BUILTIN_AVR_ROUNDK=1
define: __BUILTIN_AVR_ROUNDR=1
define: __UHQ_IBIT__=0
define: __LLACCUM_IBIT__=16
define: __AVR_DEVICE_NAME__=atmega32u4
define: __DBL_DECIMAL_DIG__=9
define: __STDC_UTF_32__=1
define: __DEC_EVAL_METHOD__=2
define: __TA_FBIT__=47
define: __UDQ_IBIT__=0
define: __ORDER_BIG_ENDIAN__=4321
define: __WITH_AVRLIBC__=1
define: __ACCUM_EPSILON__=0x1P-15K
define: __UINT32_C(c)=c ## UL
define: __BUILTIN_AVR_COUNTLSUHK=1
define: __INTMAX_MAX__=0x7fffffffffffffffLL
define: __BUILTIN_AVR_COUNTLSUHR=1
define: __BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__
define: __FLT_DENORM_MIN__=1.40129846e-45F
define: __LLFRACT_IBIT__=0
define: __INT8_MAX__=0x7f
define: __UINT_FAST32_TYPE__=long unsigned int
define: __CHAR32_TYPE__=long unsigned int
define: __BUILTIN_AVR_COUNTLSULK=1
define: __BUILTIN_AVR_COUNTLSULR=1
define: __FLT_MAX__=3.40282347e+38F
define: __USACCUM_FBIT__=8
define: __BUILTIN_AVR_COUNTLSFX=1
define: __INT32_TYPE__=long int
define: __SIZEOF_DOUBLE__=4
define: __UFRACT_EPSILON__=0x1P-16UR
define: __BUILTIN_AVR_COUNTLSHK=1
define: __BUILTIN_AVR_COUNTLSHR=1
define: __INTMAX_TYPE__=long long int
define: __BUILTIN_AVR_ABSLLK=1
define: __BUILTIN_AVR_ABSLLR=1
define: __DEC128_MAX_EXP__=6145
define: __AVR_HAVE_16BIT_SP__=1
define: __ATOMIC_CONSUME=1
define: __GNUC_MINOR__=4
define: __UINTMAX_MAX__=0xffffffffffffffffULL
define: __DEC32_MANT_DIG__=7
define: __HA_FBIT__=7
define: __BUILTIN_AVR_COUNTLSLK=1
define: __BUILTIN_AVR_COUNTLSLR=1
define: __BUILTIN_AVR_CLI=1
define: __DBL_MAX_10_EXP__=38
define: __LDBL_DENORM_MIN__=1.40129846e-45L
define: __INT16_C(c)=c
define: __STDC__=1
define: __PTRDIFF_TYPE__=int
define: __LLFRACT_MIN__=(-0.5LLR-0.5LLR)
define: __BUILTIN_AVR_LRBITS=1
define: __ATOMIC_SEQ_CST=5
define: __DA_FBIT__=31
define: __UINT32_TYPE__=long unsigned int
define: __BUILTIN_AVR_ROUNDLLK=1
define: __UINTPTR_TYPE__=unsigned int
define: __BUILTIN_AVR_ROUNDLLR=1
define: __USA_IBIT__=16
define: __BUILTIN_AVR_ULRBITS=1
define: __DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD
define: __DEC128_MANT_DIG__=34
define: __LDBL_MIN_10_EXP__=(-37)
define: __BUILTIN_AVR_COUNTLSUK=1
define: __BUILTIN_AVR_COUNTLSUR=1
define: __SIZEOF_LONG_LONG__=8
define: __ULACCUM_EPSILON__=0x1P-32ULK
define: __SACCUM_IBIT__=8
define: __GCC_ATOMIC_LLONG_LOCK_FREE=1
define: __LDBL_DIG__=6
define: __FLT_DECIMAL_DIG__=9
define: __UINT_FAST16_MAX__=0xffffU
define: __GCC_ATOMIC_SHORT_LOCK_FREE=1
define: __BUILTIN_AVR_ABSHK=1
define: __BUILTIN_AVR_FLASH_SEGMENT=1
define: __ULLFRACT_MAX__=0XFFFFFFFFFFFFFFFFP-64ULLR
define: __UINT_FAST8_TYPE__=unsigned char
define: __USFRACT_EPSILON__=0x1P-8UHR
define: __ULACCUM_FBIT__=32
define: __QQ_IBIT__=0
define: __ATOMIC_ACQ_REL=4
define: __ATOMIC_RELEASE=3
define: __BUILTIN_AVR_FMUL=1
define: F_CPU=16000000UL
define: F_USB=F_CPU
define: USE_LUFA_CONFIG_HEADER
other: --g++
other: --gnu_version=50400
stdver: c++17
intelliSenseMode: windows-gcc-arm
Queueing IntelliSense update for files in translation unit of: C:\Users\camer\git\PROJECT\Firmware\test.cpp
cpptools/finishUpdateSquiggles
Error squiggle count: 1
Update IntelliSense time (sec): 0.328
cpptools/getFoldingRanges: C:\Users\camer\git\PROJECT\Firmware\test.cpp (id: 34)
335 file(s) removed from database
Done discovering files.
Parsing open files...
Populating include completion cache.
Parsing remaining files...
Checking for syntax errors: C:\Users\camer\git\PROJECT\Firmware\test.cpp
Queueing IntelliSense update for files in translation unit of: C:\Users\camer\git\PROJECT\Firmware\test.cpp
Done parsing open files.
Additional context
Macros are detected, like __AVR_ATmega32U4__, but it seems other unique built-ins are not, hence this issue.
Environment
- OS and Version: Windows 11
- VS Code Version: 1.71.2
- C/C++ Extension Version: v1.12.4
Workaround
I can use the defines field to fake it, but this doesn't work 100%. For instance, static_asserts and if constexpr might evaluate differently by the editor than the real compiler in use.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the diagnostic with test.c and the c_cpp_properties.json configuration using avr-gcc and __uint24. Start by tracing how the configured compiler's built-in extensions reach IntelliSense, then verify that the expected no-error behavior is covered by an appropriate test or reproduction.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, vscode
- Domain
- developer-experience, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100