microsoft / microsoft/vscode-cpptools
Add IntelliSense modes for MPLAB (XC8/XC16/XC32) compilers
Personne n'a encore pris cette issue.
- Langage dominant
- TypeScript
- Étoiles
- 6.2k
- Forks
- 1.7k
- Merge moyen
- 14 h 46 min
- PR mergées (30 j)
- 61
Description
Bug type: Language Service
uint16_t type unrecognized with xc16 compiler
- Ubuntu 20.04 under WSL2 on Windows 10:
- VS Code Version: Version: 1.63.0 (user setup)
Commit: 7db1a2b88f7557e0a43fec75b6ba7e50b3e9f77e
Date: 2021-12-07T06:26:56.179Z
Electron: 13.5.2
Chromium: 91.0.4472.164
Node.js: 14.16.0
V8: 9.1.269.39-electron.0
OS: Windows_NT x64 10.0.19044 - C/C++ Extension Version: v1.8.0-insiders2
- Other extensions you installed (and if the issue persists after disabling them): https://gist.github.com/DanieleNardi/d7201e044a00744a8f63dbb900113c09#file-extensions-json
- If using SSH remote, specify OS of remote machine: n/a
- A clear and concise description of what the bug is, including information about the workspace (i.e. is the workspace a single project or multiple projects, size of the project, etc).
It's a small prject developed with Microchip's dsPIC33EP128MC502.
An error message as follows appears when a uint16_t type is used:
"[{
"resource": "main.c",
"owner": "C/C++",
"code": "757",
"severity": 8,
"message": "variable \"uint16_t\" is not a type name",
"source": "C/C++",
"startLineNumber": 230,
"startColumn": 1,
"endLineNumber": 230,
"endColumn": 2
}]
Error squiggle only under the 'u' of uint16_t.
Hover window shows correct definition of type.
CTRL+Click works, redirect to compiler-specific stdint.h, where uint16_t is defined as follows:
#ifndef uint16_t
typedef unsigned int uint16_t;
#define uint16_t uint16_t
#define UINT16_MAX (65535U)
#endif
Other types defined in stdint.h in the same way work fine.
Simple call to compiler (from Microchip's IDE or command line) doesn't show this error.
Steps to reproduce
Create c file, .c extension, including stdint.h.
Declare a uint16_t variable in .c file.
Expected behavior
No error at all.
Code sample and logs
-
Code sample
-
Configurations in
c_cpp_properties.json
"configurations": [
{
"name": "Application",
"includePath": [
"${workspaceFolder}/ApplicationFW",
"/xc16/include",
"/opt/microchip/xc16/v1.70/include",
"/xc16/include/lega-c",
"/xc16/support/generic/h"
],
"defines": [],
"compilerPath": "/xc16/bin/xc16-gcc",
"cStandard": "c99",
"intelliSenseMode": "linux-gcc-x86",
"compilerArgs": [
"-c",
"-include ${workspaceFolder}/ApplicationFW/Microchip/packs/dsPIC33E-GM-GP-MC-GU-MU_DFP/1.3.85/xc16/support/dsPIC33E/h/p33EP128MC502.h",
"-mcpu=33EP128MC502",
"-MP",
"-MMD",
"-mno-eds-warn",
"-g",
"-omf=elf",
"-legacy-libc",
"-O0",
"-msmart-io=1",
"-Wall",
"-msfr-warn=off",
"-mdfp=\"${workspaceFolder}/ApplicationFW/Microchip/packs/dsPIC33E-GM-GP-MC-GU-MU_DFP/1.3.85/xc16\""
]
}
],
"version": 4
-
Logs from running
C/C++: Log Diagnosticsfrom the VS Code command palette -
Logs from the language server logging
Screenshots
Additional context
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par la configuration signalée de c_cpp_properties.json, en particulier compilerPath, compilerArgs et intelliSenseMode, et reproduisez le diagnostic uint16_t avec un projet XC16. Examinez les points d’entrée du service de langage C/C++ pour les modes IntelliSense spécifiques au compilateur ; le travail est terminé lorsque les configurations XC8, XC16 et XC32 reconnaissent les types fournis par le compilateur sans la fausse erreur signalée.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- c, vscode
- Domaine
- tooling
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100