IntelliSense doesn't seem to be able to handle some compiler extensions

Aperta
#9,968 8 commenti 5 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
c, vscode

Direzione di ricerca

Riproduci la diagnostica con test.c e la configurazione c_cpp_properties.json usando avr-gcc e __uint24. Inizia tracciando come le estensioni integrate del compilatore configurato arrivano a IntelliSense, quindi verifica che il comportamento previsto senza errori sia coperto da un test o da una riproduzione appropriata.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Feature Request Feature: Configuration Language Service

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

  1. Create a file, test.c:
    int main() { *(volatile __uint24 *)0xC8 = 0x123456; } // Meaningless trivial complete example
    
  2. Build with avr-gcc test.c. No errors/warnings. a.out is created.
  3. Configure c_cpp_properties.json with a compilerPath set, possibly adding extra flags to match build configurations:
    {
      "compilerPath": "\"${config:local.avr-gcc.compilerDir}/bin/avr-gcc\" -mmcu=atmega32u4"
    }
    
  4. See error squiggles under __uint24 saying: 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.

Lingua principale
TypeScript
Stelle
6.2k
Fork
1.7k
Merge medio
14h 46m
PR unite (30g)
61

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di microsoft/vscode-cpptools

Tutte le issue di microsoft/vscode-cpptools

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.