Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GCC 13, cannot convert std::vector to std::span #11026

Closed
intractabilis opened this issue May 29, 2023 · 9 comments
Closed

GCC 13, cannot convert std::vector to std::span #11026

intractabilis opened this issue May 29, 2023 · 9 comments
Labels

Comments

@intractabilis
Copy link

intractabilis commented May 29, 2023

Environment

Version: 1.78.2
Commit: b3e4e68a0bc097f0ae7907b217c1119af9e03435
Date: 2023-05-10T14:47:05.613Z
Electron: 22.5.2
Chromium: 108.0.5359.215
Node.js: 16.17.1
V8: 10.8.168.25-electron.0
OS: Linux x64 6.3.4-1-MANJARO
Sandboxed: No
C/C++ Extension Version: 1.15.4

Bug Summary and Steps to Reproduce

Consider the following MWE:

#include <span>
#include <vector>

void foo(std::span<int> s) {
}

int main(int argc, char* argv[]) {
    auto somevector = std::vector<int>{0, 1};
    foo(somevector);
}

If you use GCC 13, VS Code will complain that in line foo(somevector) “no suitable user-defined conversion from "std::vector<int, std::allocator>" to "std::span<int, 18446744073709551615UL>" exists”.
изображение

This MWE works fine with GCC 12.

Configuration and Logs

c_cpp_properties.json:

{
  "configurations": [
    {
      "name": "Debug-gcc",
      "includePath": [
        "${workspaceFolder}/**"
      ],
      "defines": [],
      "compilerPath": "${env:HOME}/gcc-env/bin/g++",
      "cStandard": "gnu17",
      "cppStandard": "gnu++20",
      "intelliSenseMode": "linux-gcc-x64",
      "compileCommands": "${workspaceFolder}/build/debug/compile_commands.json"
    },
    {
      "name": "Release-gcc",
      "includePath": [
        "${workspaceFolder}/**"
      ],
      "defines": [],
      "compilerPath": "${env:HOME}/gcc-env/bin/g++",
      "cStandard": "gnu17",
      "cppStandard": "gnu++20",
      "intelliSenseMode": "linux-gcc-x64",
      "compileCommands": "${workspaceFolder}/build/release/compile_commands.json"
    },
    {
      "name": "DebugOptimized-gcc",
      "includePath": [
        "${workspaceFolder}/**"
      ],
      "defines": [],
      "compilerPath": "${env:HOME}/gcc-env/bin/g++",
      "cStandard": "gnu17",
      "cppStandard": "gnu++20",
      "intelliSenseMode": "linux-gcc-x64",
      "compileCommands": "${workspaceFolder}/build/debugoptimized/compile_commands.json"
    }
  ],
  "version": 4
}

C/C++: Log Diagnostics:

-------- Diagnostics - 5/29/2023, 10:10:53 AM
Version: 1.15.4
Current Configuration:
{
    "name": "Debug-gcc",
    "includePath": [
        "/home/user/dev/sandbox/vscode-span-bug/**"
    ],
    "defines": [],
    "compilerPath": "/home/user/gcc-env/bin/g++",
    "cStandard": "gnu17",
    "cppStandard": "gnu++20",
    "intelliSenseMode": "linux-gcc-x64",
    "compileCommands": "/home/user/dev/sandbox/vscode-span-bug/build/debug/compile_commands.json",
    "compilerPathIsExplicit": true,
    "cStandardIsExplicit": true,
    "cppStandardIsExplicit": true,
    "intelliSenseModeIsExplicit": true,
    "compilerPathInCppPropertiesJson": "${env:HOME}/gcc-env/bin/g++",
    "compileCommandsInCppPropertiesJson": "${workspaceFolder}/build/debug/compile_commands.json",
    "mergeConfigurations": false,
    "browse": {
        "path": [
            "${workspaceFolder}/**"
        ],
        "limitSymbolsToIncludedHeaders": true
    }
}
Translation Unit Mappings:
[ /home/user/dev/sandbox/vscode-span-bug/vscode-span-bug.cpp ]:
    /home/user/dev/sandbox/vscode-span-bug/vscode-span-bug.cpp
Translation Unit Configurations:
[ /home/user/dev/sandbox/vscode-span-bug/vscode-span-bug.cpp ]:
    Process ID: 21263
    Memory Usage: 672 MB
    Compiler Path: /home/user/gcc-env/bin/g++
    Includes:
        /home/user/dev/sandbox/vscode-span-bug/build/debug/vscode-span-bug.p
        /home/user/dev/sandbox/vscode-span-bug/build/debug
        /home/user/dev/sandbox/vscode-span-bug
        /home/user/gcc-env/include/c++/13
        /home/user/gcc-env/include/c++/13/x86_64-linux-gnu
        /home/user/gcc-env/include/c++/13/backward
        /home/user/gcc-env/lib/gcc/x86_64-linux-gnu/13/include
        /usr/local/include
        /home/user/gcc-env/include
        /home/user/gcc-env/lib/gcc/x86_64-linux-gnu/13/include-fixed
        /usr/include
    Defines:
        _FILE_OFFSET_BITS=64
        DEBUG
    Standard Version: c++20
    IntelliSense Mode: linux-gcc-x64
    Other Flags:
        --g++
        --gnu_version=130101
    compile_commands.json entry:
        directory: /home/user/dev/sandbox/vscode-span-bug/build/debug
        file: ../../vscode-span-bug.cpp
        command: g++ -Ivscode-span-bug.p -I. -I../.. -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=c++20 -O0 -g -Wno-class-memaccess -Wno-deprecated-enum-enum-conversion -fconcepts-diagnostics-depth=0 -DDEBUG -march=native -mtune=native -fopenmp -Wno-deprecated-declarations -ffunction-sections -fdata-sections -fPIC -MD -MQ vscode-span-bug.p/vscode-span-bug.cpp.o -MF vscode-span-bug.p/vscode-span-bug.cpp.o.d -o vscode-span-bug.p/vscode-span-bug.cpp.o -c ../../vscode-span-bug.cpp
        output: vscode-span-bug.p/vscode-span-bug.cpp.o
Total Memory Usage: 672 MB
Browse Paths from compile_commands.json, from workspace folder: /home/user/dev/sandbox/vscode-span-bug
    /home/user/dev/sandbox/vscode-span-bug/build/debug
    /home/user/dev/sandbox/vscode-span-bug/build/debug/.
    /home/user/dev/sandbox/vscode-span-bug/build/debug/../..
    /home/user/dev/sandbox/vscode-span-bug/build/debug/vscode-span-bug.p

------- Workspace parsing diagnostics -------
Number of files discovered (not excluded): 92057

Logs from the language server logging:

loggingLevel: Debug
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
File exclude: **/.vs
File exclude: **/.vscode
File exclude: **/Thumbs.db
File exclude: **/.svn
File exclude: **/.git
File exclude: **/.hg
File exclude: **/.DS_Store
File exclude: **/CVS
Search exclude: **/*.code-search
Search exclude: **/node_modules
Search exclude: **/bower_components
LSP: cpptools/didChangeCppProperties (id: 1)
LSP: cpptools/queryCompilerDefaults (id: 2)
Code browsing service initialized
Querying compiler for default C++ language standard using command line: /home/user/gcc-env/bin/g++ -x c++ -E -dM /dev/null
Detected language standard version: gnu++17
Querying compiler's default target using command line: "/home/user/gcc-env/bin/g++" -dumpmachine
Compiler returned default target value: x86_64-linux-gnu
Compiler query command line: /home/user/gcc-env/bin/g++ -std=gnu++20 -m64 -Wp,-v -E -dM -x c++ /dev/null
Attempting to get defaults from C++ compiler in "compilerPath" property: '/home/user/gcc-env/bin/g++'
Compiler query command line: /home/user/gcc-env/bin/g++ -std=gnu17 -m64 -Wp,-v -E -dM -x c /dev/null
Attempting to get defaults from C compiler in "compilerPath" property: '/home/user/gcc-env/bin/g++'
  Folder: /home/user/gcc-env/include/ will be indexed
  Folder: /home/user/gcc-env/lib/gcc/x86_64-linux-gnu/13/include/ will be indexed
  Folder: /home/user/gcc-env/lib/gcc/x86_64-linux-gnu/13/include-fixed/ will be indexed
  Folder: /usr/include/ will be indexed
  Folder: /usr/local/include/ will be indexed
  Folder: /home/user/gcc-env/include/c++/13/ will be indexed
  Folder: /home/user/dev/sandbox/vscode-span-bug/ will be indexed
Discovering files...
Querying compiler for default C++ language standard using command line: /usr/bin/clang -x c++ -E -dM /dev/null
LSP: Message ignored due to no registered handler: $/setTrace
Detected language standard version: c++14
Querying compiler's default target using command line: "/usr/bin/clang" -dumpmachine
Compiler returned default target value: x86_64-pc-linux-gnu
Compiler query command line: /usr/bin/clang -std=c17 -m64 -Wp,-v -fno-blocks -E -dM -x c /dev/null
  Processing folder (recursive): /home/user/gcc-env/include/
Attempting to get defaults from C compiler in "compilerPath" property: '/usr/bin/clang'
Compiler query command line: /usr/bin/clang -std=c++14 -m64 -Wp,-v -fno-blocks -E -dM -x c++ /dev/null
Attempting to get defaults from C++ compiler in "compilerPath" property: '/usr/bin/clang'
LSP: cpptools/didChangeCppProperties (id: 3)
LSP: cpptools/didChangeSettings
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
Enhanced Colorization is enabled.
LSP: cpptools/didChangeSettings
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
Enhanced Colorization is enabled.
LSP: cpptools/didChangeSettings
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
Enhanced Colorization is enabled.
LSP: cpptools/didChangeSettings
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
Enhanced Colorization is enabled.
LSP: cpptools/didChangeSettings
LSP: textDocument/didOpen: file:///home/user/dev/sandbox/vscode-span-bug/vscode-span-bug.cpp
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
LSP: cpptools/textEditorSelectionChange
Hover is enabled.
IntelliSense Engine = default.
LSP: cpptools/getInlayHints: file:///home/user/dev/sandbox/vscode-span-bug/vscode-span-bug.cpp (id: 4)
LSP: cpptools/activeDocumentChange: file:///home/user/dev/sandbox/vscode-span-bug/vscode-span-bug.cpp
Enhanced Colorization is enabled.
sending compilation args for /home/user/dev/sandbox/vscode-span-bug/vscode-span-bug.cpp
  include: /home/user/dev/sandbox/vscode-span-bug/build/debug/vscode-span-bug.p
  include: /home/user/dev/sandbox/vscode-span-bug/build/debug
  include: /home/user/dev/sandbox/vscode-span-bug
  include: /home/user/gcc-env/include/c++/13
  include: /home/user/gcc-env/include/c++/13/x86_64-linux-gnu
  include: /home/user/gcc-env/include/c++/13/backward
  include: /home/user/gcc-env/lib/gcc/x86_64-linux-gnu/13/include
  include: /usr/local/include
  include: /home/user/gcc-env/include
  include: /home/user/gcc-env/lib/gcc/x86_64-linux-gnu/13/include-fixed
  include: /usr/include
  define: __UINT_LEAST16_MAX__=0xffff
  define: __FLT16_HAS_QUIET_NAN__=1
  define: __ATOMIC_ACQUIRE=2
  define: __FLT128_MAX_10_EXP__=4932
  define: __GCC_IEC_559_COMPLEX=2
  define: __UINT_LEAST8_TYPE__=unsigned char
  define: __SIZEOF_FLOAT80__=16
  define: __BFLT16_DENORM_MIN__=9.18354961579912115600575419704879436e-41BF16
  define: __GFNI__=1
  define: __INTMAX_C(c)=c ## L
  define: __MOVBE__=1
  define: __UINT8_MAX__=0xff
  define: __SCHAR_WIDTH__=8
  define: __WINT_MAX__=0xffffffffU
  define: __BFLT16_MIN_10_EXP__=(-37)
  define: __ORDER_LITTLE_ENDIAN__=1234
  define: __SSE4_1__=1
  define: __WCHAR_MAX__=0x7fffffff
  define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1
  define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1
  define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1
  define: __GCC_ATOMIC_CHAR_LOCK_FREE=2
  define: __GCC_IEC_559=2
  define: __FLT32X_DECIMAL_DIG__=17
  define: __FLT_EVAL_METHOD__=0
  define: __FLT64_DECIMAL_DIG__=17
  define: __DBL_MIN_EXP__=(-1021)
  define: __GCC_ATOMIC_CHAR32_T_LOCK_FREE=2
  define: __RDPID__=1
  define: __UINT_FAST64_MAX__=0xffffffffffffffffUL
  define: __SIG_ATOMIC_TYPE__=int
  define: __DBL_MIN_10_EXP__=(-307)
  define: __FINITE_MATH_ONLY__=0
  define: __FLT32X_MAX_EXP__=1024
  define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1
  define: __FLT32_HAS_DENORM__=1
  define: __UINT_FAST8_MAX__=0xff
  define: __DEC64_MAX_EXP__=385
  define: __INT8_C(c)=c
  define: __LDBL_HAS_INFINITY__=1
  define: __INT_LEAST8_WIDTH__=8
  define: __UINT_LEAST64_MAX__=0xffffffffffffffffUL
  define: __INT_LEAST8_MAX__=0x7f
  define: __SHRT_MAX__=0x7fff
  define: __LDBL_MAX__=1.18973149535723176502126385303097021e+4932L
  define: __FLT64X_MAX_10_EXP__=4932
  define: __BFLT16_MAX_10_EXP__=38
  define: __BFLT16_MAX_EXP__=128
  define: __LDBL_IS_IEC_60559__=1
  define: __FLT64X_HAS_QUIET_NAN__=1
  define: __UINT_LEAST8_MAX__=0xff
  define: __GCC_ATOMIC_BOOL_LOCK_FREE=2
  define: __LAHF_SAHF__=1
  define: __FLT128_DENORM_MIN__=6.47517511943802511092443895822764655e-4966F128
  define: __UINTMAX_TYPE__=long unsigned int
  define: __BFLT16_DECIMAL_DIG__=4
  define: __linux=1
  define: __DEC32_EPSILON__=1E-6DF
  define: __FLT_EVAL_METHOD_TS_18661_3__=0
  define: __UINT32_MAX__=0xffffffffU
  define: __GXX_EXPERIMENTAL_CXX0X__=1
  define: __DBL_DENORM_MIN__=double(4.94065645841246544176568792868221372e-324L)
  define: __FLT128_MIN_EXP__=(-16381)
  define: __WINT_MIN__=0U
  define: __CHAR_BIT__=8
  define: __FLT128_MIN_10_EXP__=(-4931)
  define: __FLT32X_IS_IEC_60559__=1
  define: __INT_LEAST16_WIDTH__=16
  define: __SCHAR_MAX__=0x7f
  define: __FLT128_MANT_DIG__=113
  define: __WCHAR_MIN__=(-__WCHAR_MAX__ - 1)
  define: __INT64_C(c)=c ## L
  define: __MOVDIRI__=1
  define: __GCC_ATOMIC_POINTER_LOCK_FREE=2
  define: __ATOMIC_SEQ_CST=5
  define: __INT_LEAST64_MAX__=0x7fffffffffffffffL
  define: __FLT32X_MANT_DIG__=53
  define: __GCC_ATOMIC_CHAR16_T_LOCK_FREE=2
  define: __FLT32_MAX_10_EXP__=38
  define: __FLT64X_EPSILON__=1.08420217248550443400745280086994171e-19F64x
  define: __STDC_HOSTED__=1
  define: __FLT_EPSILON__=1.19209289550781250000000000000000000e-7F
  define: __GXX_WEAK__=1
  define: __ABM__=1
  define: __SHRT_WIDTH__=16
  define: __unix=1
  define: __FLT32_IS_IEC_60559__=1
  define: __LDBL_MIN__=3.36210314311209350626267781732175260e-4932L
  define: __DBL_IS_IEC_60559__=1
  define: __DEC32_MAX__=9.999999E96DF
  define: __CHAR8_TYPE__=unsigned char
  define: __FLT64X_DENORM_MIN__=3.64519953188247460252840593361941982e-4951F64x
  define: __FP_FAST_FMA=1
  define: __CRC32__=1
  define: __FLT32X_HAS_INFINITY__=1
  define: __unix__=1
  define: __INT_WIDTH__=32
  define: __STDC_IEC_559__=1
  define: __STDC_ISO_10646__=201706L
  define: __GCC_ATOMIC_CHAR8_T_LOCK_FREE=2
  define: __DECIMAL_DIG__=21
  define: __STDC_IEC_559_COMPLEX__=1
  define: __FLT64_EPSILON__=2.22044604925031308084726333618164062e-16F64
  define: __DBL_DIG__=15
  define: __gnu_linux__=1
  define: __INT16_MAX__=0x7fff
  define: __FLT64_MIN_EXP__=(-1021)
  define: __FLT64X_MIN_10_EXP__=(-4931)
  define: __LDBL_HAS_QUIET_NAN__=1
  define: __FLT16_MIN_EXP__=(-13)
  define: __FLT64_MANT_DIG__=53
  define: __FLT_MIN__=1.17549435082228750796873653722224568e-38F
  define: __FLT64X_MANT_DIG__=64
  define: __BFLT16_DIG__=2
  define: __GNUC__=13
  define: __GXX_RTTI=1
  define: __XSAVES__=1
  define: __MMX__=1
  define: __FLT_HAS_DENORM__=1
  define: __SIZEOF_LONG_DOUBLE__=16
  define: __XSAVEOPT__=1
  define: __BIGGEST_ALIGNMENT__=32
  define: __STDC_UTF_16__=1
  define: __PRFCHW__=1
  define: __FLT64_MAX_10_EXP__=308
  define: __BFLT16_IS_IEC_60559__=0
  define: __FLT16_MAX_10_EXP__=4
  define: __DBL_MAX__=double(1.79769313486231570814527423731704357e+308L)
  define: __INT_FAST32_MAX__=0x7fffffffffffffffL
  define: __DBL_HAS_INFINITY__=1
  define: __INT64_MAX__=0x7fffffffffffffffL
  define: __SSE4_2__=1
  define: __SIZEOF_FLOAT__=4
  define: __DEC32_MIN_EXP__=(-94)
  define: __INTPTR_WIDTH__=64
  define: __UINT_LEAST32_MAX__=0xffffffffU
  define: __FLT32X_HAS_DENORM__=1
  define: __INT_FAST16_TYPE__=long int
  define: __MMX_WITH_SSE__=1
  define: __LDBL_HAS_DENORM__=1
  define: __FLT_DIG__=6
  define: __SEG_GS=1
  define: __BFLT16_EPSILON__=7.81250000000000000000000000000000000e-3BF16
  define: __cplusplus=202002L
  define: __DEC32_MIN__=1E-95DF
  define: __DEPRECATED=1
  define: __POPCNT__=1
  define: __DBL_MAX_EXP__=1024
  define: __VAES__=1
  define: __WCHAR_WIDTH__=32
  define: __FLT32_MAX__=3.40282346638528859811704183484516925e+38F32
  define: __DEC128_EPSILON__=1E-33DL
  define: __FLT16_DECIMAL_DIG__=5
  define: __SSE2_MATH__=1
  define: __ATOMIC_HLE_RELEASE=131072
  define: __PTRDIFF_MAX__=0x7fffffffffffffffL
  define: __FLT128_MAX_EXP__=16384
  define: __amd64=1
  define: __AVX__=1
  define: __GNUG__=13
  define: __LONG_LONG_MAX__=0x7fffffffffffffffLL
  define: __SIZEOF_SIZE_T__=8
  define: __LZCNT__=1
  define: __BFLT16_HAS_INFINITY__=1
  define: __FLT64X_MIN_EXP__=(-16381)
  define: __MOVDIR64B__=1
  define: __SIZEOF_WINT_T__=4
  define: __FLT32X_DIG__=15
  define: __LONG_LONG_WIDTH__=64
  define: __FLT32_MAX_EXP__=128
  define: __GXX_ABI_VERSION=1018
  define: __FLT_MIN_EXP__=(-125)
  define: __GCC_HAVE_DWARF2_CFI_ASM=1
  define: __x86_64=1
  define: __INT_FAST64_TYPE__=long int
  define: __BFLT16_MAX__=3.38953138925153547590470800371487867e+38BF16
  define: __FP_FAST_FMAF=1
  define: __FLT64_DENORM_MIN__=4.94065645841246544176568792868221372e-324F64
  define: __CLFLUSHOPT__=1
  define: __PCLMUL__=1
  define: __FLT16_DENORM_MIN__=5.96046447753906250000000000000000000e-8F16
  define: __FLT128_EPSILON__=1.92592994438723585305597794258492732e-34F128
  define: __FLT64X_NORM_MAX__=1.18973149535723176502126385303097021e+4932F64x
  define: __SIZEOF_POINTER__=8
  define: __SIZE_TYPE__=long unsigned int
  define: __F16C__=1
  define: __LP64__=1
  define: __DBL_HAS_QUIET_NAN__=1
  define: __FLT32X_EPSILON__=2.22044604925031308084726333618164062e-16F32x
  define: __LDBL_MAX_EXP__=16384
  define: __WAITPKG__=1
  define: __DECIMAL_BID_FORMAT__=1
  define: __FLT64_MIN_10_EXP__=(-307)
  define: __tune_alderlake__=1
  define: __FLT16_MIN_10_EXP__=(-4)
  define: __FLT64X_DECIMAL_DIG__=21
  define: __DEC128_MIN__=1E-6143DL
  define: __REGISTER_PREFIX__=
  define: __UINT16_MAX__=0xffff
  define: __FLT128_HAS_INFINITY__=1
  define: __FLT32_MIN__=1.17549435082228750796873653722224568e-38F32
  define: __UINT8_TYPE__=unsigned char
  define: __XSAVE__=1
  define: __NO_INLINE__=1
  define: __CLWB__=1
  define: __DEC_EVAL_METHOD__=2
  define: __FLT32X_MAX_10_EXP__=308
  define: __LDBL_DECIMAL_DIG__=21
  define: __VERSION__="13.1.1 20230512"
  define: __UINT64_C(c)=c ## UL
  define: __VPCLMULQDQ__=1
  define: __FMA__=1
  define: _STDC_PREDEF_H=1
  define: __GLIBCXX_TYPE_INT_N_0=__int128
  define: __INT_LEAST32_MAX__=0x7fffffff
  define: __GCC_ATOMIC_INT_LOCK_FREE=2
  define: __SHSTK__=1
  define: __FLT32_MANT_DIG__=24
  define: __FLT16_IS_IEC_60559__=1
  define: __FLOAT_WORD_ORDER__=__ORDER_LITTLE_ENDIAN__
  define: __FLT32X_MIN_EXP__=(-1021)
  define: __PKU__=1
  define: __STDC_IEC_60559_COMPLEX__=201404L
  define: __BFLT16_MIN__=1.17549435082228750796873653722224568e-38BF16
  define: __ATOMIC_HLE_ACQUIRE=65536
  define: __FLT128_HAS_DENORM__=1
  define: __FLT32_DECIMAL_DIG__=9
  define: __FLT128_DIG__=33
  define: __INT32_C(c)=c
  define: __DEC64_EPSILON__=1E-15DD
  define: __ORDER_PDP_ENDIAN__=3412
  define: __DEC128_MIN_EXP__=(-6142)
  define: __DEC128_MAX__=9.999999999999999999999999999999999E6144DL
  define: __INT_FAST32_TYPE__=long int
  define: __linux__=1
  define: __FLT16_MIN__=6.10351562500000000000000000000000000e-5F16
  define: __UINT_LEAST16_TYPE__=short unsigned int
  define: __DEC128_MAX_EXP__=6145
  define: unix=1
  define: __DBL_HAS_DENORM__=1
  define: __UINT64_MAX__=0xffffffffffffffffUL
  define: __FLT_IS_IEC_60559__=1
  define: __GNUC_WIDE_EXECUTION_CHARSET_NAME="UTF-32LE"
  define: __FLT64X_DIG__=18
  define: __INT8_TYPE__=signed char
  define: __ELF__=1
  define: __GCC_ASM_FLAG_OUTPUTS__=1
  define: __UINT32_TYPE__=unsigned int
  define: __BFLT16_HAS_QUIET_NAN__=1
  define: __FLT_RADIX__=2
  define: __INT_LEAST16_TYPE__=short int
  define: __PCONFIG__=1
  define: __LDBL_EPSILON__=1.08420217248550443400745280086994171e-19L
  define: __UINTMAX_C(c)=c ## UL
  define: __FLT32X_MIN__=2.22507385850720138309023271733240406e-308F32x
  define: __HRESET__=1
  define: __SIG_ATOMIC_MAX__=0x7fffffff
  define: __GCC_ATOMIC_WCHAR_T_LOCK_FREE=2
  define: __USER_LABEL_PREFIX__=
  define: __STDC_IEC_60559_BFP__=201404L
  define: __SIZEOF_PTRDIFF_T__=8
  define: __FLT64X_HAS_INFINITY__=1
  define: __RDSEED__=1
  define: __BMI__=1
  define: __SIZEOF_LONG__=8
  define: __LDBL_DIG__=18
  define: __FLT64_IS_IEC_60559__=1
  define: __x86_64__=1
  define: __FLT16_MAX_EXP__=16
  define: __DEC32_SUBNORMAL_MIN__=0.000001E-95DF
  define: __INT_FAST16_MAX__=0x7fffffffffffffffL
  define: __GCC_CONSTRUCTIVE_SIZE=64
  define: __FLT64_DIG__=15
  define: __UINT_FAST32_MAX__=0xffffffffffffffffUL
  define: __UINT_LEAST64_TYPE__=long unsigned int
  define: __FLT16_EPSILON__=9.76562500000000000000000000000000000e-4F16
  define: __FLT_HAS_QUIET_NAN__=1
  define: __FLT_MAX_10_EXP__=38
  define: __LONG_MAX__=0x7fffffffffffffffL
  define: __FLT64X_HAS_DENORM__=1
  define: __DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL
  define: __FLT_HAS_INFINITY__=1
  define: __GNUC_EXECUTION_CHARSET_NAME="UTF-8"
  define: __UINT_FAST16_TYPE__=long unsigned int
  define: __DEC64_MAX__=9.999999999999999E384DD
  define: __INT_FAST32_WIDTH__=64
  define: __CHAR16_TYPE__=short unsigned int
  define: __PRAGMA_REDEFINE_EXTNAME=1
  define: __DBL_NORM_MAX__=double(1.79769313486231570814527423731704357e+308L)
  define: __SIZE_WIDTH__=64
  define: __SEG_FS=1
  define: __INT_LEAST16_MAX__=0x7fff
  define: __FLT16_NORM_MAX__=6.55040000000000000000000000000000000e+4F16
  define: __DEC64_MANT_DIG__=16
  define: __FLT32_DENORM_MIN__=1.40129846432481707092372958328991613e-45F32
  define: __SIG_ATOMIC_WIDTH__=32
  define: __GCC_DESTRUCTIVE_SIZE=64
  define: __INT_LEAST64_TYPE__=long int
  define: __INT16_TYPE__=short int
  define: __INT_LEAST8_TYPE__=signed char
  define: __FLT16_MAX__=6.55040000000000000000000000000000000e+4F16
  define: __FLT128_MIN__=3.36210314311209350626267781732175260e-4932F128
  define: __SIZEOF_INT__=4
  define: __DEC32_MAX_EXP__=97
  define: __INT_FAST8_MAX__=0x7f
  define: __FLT128_MAX__=1.18973149535723176508575932662800702e+4932F128
  define: __INTPTR_MAX__=0x7fffffffffffffffL
  define: linux=1
  define: __AVX2__=1
  define: __FLT64_HAS_QUIET_NAN__=1
  define: __FLT32_MIN_10_EXP__=(-37)
  define: __SSSE3__=1
  define: __EXCEPTIONS=1
  define: __RDRND__=1
  define: __alderlake=1
  define: __UINT16_C(c)=c
  define: __SERIALIZE__=1
  define: __PTRDIFF_WIDTH__=64
  define: __LDBL_MANT_DIG__=64
  define: __INT_FAST16_WIDTH__=64
  define: __FLT64_HAS_INFINITY__=1
  define: __FLT64X_MAX__=1.18973149535723176502126385303097021e+4932F64x
  define: __FLT16_HAS_INFINITY__=1
  define: __STDCPP_DEFAULT_NEW_ALIGNMENT__=16
  define: __SIG_ATOMIC_MIN__=(-__SIG_ATOMIC_MAX__ - 1)
  define: __code_model_small__=1
  define: __GCC_ATOMIC_LONG_LOCK_FREE=2
  define: __DEC32_MANT_DIG__=7
  define: __INTPTR_TYPE__=long int
  define: __UINT16_TYPE__=short unsigned int
  define: __WCHAR_TYPE__=int
  define: __UINTPTR_MAX__=0xffffffffffffffffUL
  define: __INT_FAST64_WIDTH__=64
  define: __INT_FAST64_MAX__=0x7fffffffffffffffL
  define: __GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1
  define: __FLT_NORM_MAX__=3.40282346638528859811704183484516925e+38F
  define: __FLT32_HAS_INFINITY__=1
  define: __FLT64X_MAX_EXP__=16384
  define: __UINT_FAST64_TYPE__=long unsigned int
  define: __BFLT16_MIN_EXP__=(-125)
  define: __INT_MAX__=0x7fffffff
  define: __SHA__=1
  define: __INT64_TYPE__=long int
  define: __FLT_MAX_EXP__=128
  define: __ORDER_BIG_ENDIAN__=4321
  define: __DBL_MANT_DIG__=53
  define: __SIZEOF_FLOAT128__=16
  define: __BFLT16_MANT_DIG__=8
  define: __FP_FAST_FMAF32=1
  define: __DEC64_MIN__=1E-383DD
  define: __WINT_TYPE__=unsigned int
  define: __UINT_LEAST32_TYPE__=unsigned int
  define: __SIZEOF_SHORT__=2
  define: __FLT32_NORM_MAX__=3.40282346638528859811704183484516925e+38F32
  define: __SSE__=1
  define: __LDBL_MIN_EXP__=(-16381)
  define: __FLT64_MAX__=1.79769313486231570814527423731704357e+308F64
  define: __WINT_WIDTH__=32
  define: __FP_FAST_FMAF64=1
  define: __INT_LEAST64_WIDTH__=64
  define: __SIZEOF_INT128__=16
  define: __FLT64X_IS_IEC_60559__=1
  define: __LDBL_MAX_10_EXP__=4932
  define: __ATOMIC_RELAXED=0
  define: __DBL_EPSILON__=double(2.22044604925031308084726333618164062e-16L)
  define: __INT_LEAST32_TYPE__=int
  define: __FLT32_MIN_EXP__=(-125)
  define: _LP64=1
  define: __UINT8_C(c)=c
  define: __FLT64_MAX_EXP__=1024
  define: __SIZEOF_WCHAR_T__=4
  define: __GNUC_PATCHLEVEL__=1
  define: __FLT128_NORM_MAX__=1.18973149535723176508575932662800702e+4932F128
  define: __FLT64_NORM_MAX__=1.79769313486231570814527423731704357e+308F64
  define: __FLT128_HAS_QUIET_NAN__=1
  define: __INTMAX_MAX__=0x7fffffffffffffffL
  define: __SSE3__=1
  define: __INT_FAST8_TYPE__=signed char
  define: __FLT64X_MIN__=3.36210314311209350626267781732175260e-4932F64x
  define: __STDCPP_THREADS__=1
  define: __BFLT16_HAS_DENORM__=1
  define: __GNUC_STDC_INLINE__=1
  define: __FLT64_HAS_DENORM__=1
  define: __FLT32_EPSILON__=1.19209289550781250000000000000000000e-7F32
  define: __FP_FAST_FMAF32x=1
  define: __FLT16_HAS_DENORM__=1
  define: __DBL_DECIMAL_DIG__=17
  define: __STDC_UTF_32__=1
  define: __INT_FAST8_WIDTH__=8
  define: __FXSR__=1
  define: __FLT32X_MAX__=1.79769313486231570814527423731704357e+308F32x
  define: __BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__
  define: __amd64__=1
  define: __INTMAX_WIDTH__=64
  define: __alderlake__=1
  define: __FLT32_DIG__=6
  define: __UINT64_TYPE__=long unsigned int
  define: __UINT32_C(c)=c ## U
  define: __FLT_DENORM_MIN__=1.40129846432481707092372958328991613e-45F
  define: __FLT128_IS_IEC_60559__=1
  define: __INT8_MAX__=0x7f
  define: __LONG_WIDTH__=64
  define: __DBL_MIN__=double(2.22507385850720138309023271733240406e-308L)
  define: __INT32_MAX__=0x7fffffff
  define: __UINT_FAST32_TYPE__=long unsigned int
  define: __AVXVNNI__=1
  define: __FLT16_MANT_DIG__=11
  define: __FLT32X_NORM_MAX__=1.79769313486231570814527423731704357e+308F32x
  define: __CHAR32_TYPE__=unsigned int
  define: __FLT_MAX__=3.40282346638528859811704183484516925e+38F
  define: __SSE2__=1
  define: __BFLT16_NORM_MAX__=3.38953138925153547590470800371487867e+38BF16
  define: __INT32_TYPE__=int
  define: __XSAVEC__=1
  define: __SIZEOF_DOUBLE__=8
  define: __FLT_MIN_10_EXP__=(-37)
  define: __FLT_MANT_DIG__=24
  define: __FLT64_MIN__=2.22507385850720138309023271733240406e-308F64
  define: __INT_LEAST32_WIDTH__=32
  define: __INTMAX_TYPE__=long int
  define: __FSGSBASE__=1
  define: __GLIBCXX_BITSIZE_INT_N_0=128
  define: __FLT32X_HAS_QUIET_NAN__=1
  define: __ATOMIC_CONSUME=1
  define: __GNUC_MINOR__=1
  define: __UINTMAX_MAX__=0xffffffffffffffffUL
  define: __FLT32X_DENORM_MIN__=4.94065645841246544176568792868221372e-324F32x
  define: __DBL_MAX_10_EXP__=308
  define: __LDBL_DENORM_MIN__=3.64519953188247460252840593361941982e-4951L
  define: __BMI2__=1
  define: __INT16_C(c)=c
  define: __STDC__=1
  define: __AES__=1
  define: __PTRDIFF_TYPE__=long int
  define: __DEC64_MIN_EXP__=(-382)
  define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16=1
  define: __ADX__=1
  define: __PTWRITE__=1
  define: __FLT32X_MIN_10_EXP__=(-307)
  define: __UINTPTR_TYPE__=long unsigned int
  define: __FLT16_DIG__=3
  define: __DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD
  define: __DEC128_MANT_DIG__=34
  define: __LDBL_MIN_10_EXP__=(-4931)
  define: __SSE_MATH__=1
  define: __SIZEOF_LONG_LONG__=8
  define: __HAVE_SPECULATION_SAFE_VALUE=1
  define: __FLT128_DECIMAL_DIG__=36
  define: __GCC_ATOMIC_LLONG_LOCK_FREE=2
  define: __FLT32_HAS_QUIET_NAN__=1
  define: __FLT_DECIMAL_DIG__=9
  define: __UINT_FAST16_MAX__=0xffffffffffffffffUL
  define: __LDBL_NORM_MAX__=1.18973149535723176502126385303097021e+4932L
  define: __GCC_ATOMIC_SHORT_LOCK_FREE=2
  define: __SIZE_MAX__=0xffffffffffffffffUL
  define: __UINT_FAST8_TYPE__=unsigned char
  define: _GNU_SOURCE=1
  define: __ATOMIC_ACQ_REL=4
  define: __ATOMIC_RELEASE=3
  define: _FILE_OFFSET_BITS=64
  define: DEBUG
  other: --g++
  other: --gnu_version=130101
  stdver: c++20
  intelliSenseMode: linux-gcc-x64
Checking for syntax errors: /home/user/dev/sandbox/vscode-span-bug/vscode-span-bug.cpp
Queueing IntelliSense update for files in translation unit of: /home/user/dev/sandbox/vscode-span-bug/vscode-span-bug.cpp
LSP: cpptools/getSemanticTokens: file:///home/user/dev/sandbox/vscode-span-bug/vscode-span-bug.cpp (id: 5)
  Processing folder (recursive): /home/user/gcc-env/lib/gcc/x86_64-linux-gnu/13/include/
  Processing folder (recursive): /home/user/gcc-env/lib/gcc/x86_64-linux-gnu/13/include-fixed/
  Processing folder (recursive): /usr/include/
LSP: cpptools/getFoldingRanges: file:///home/user/dev/sandbox/vscode-span-bug/vscode-span-bug.cpp (id: 6)
Error squiggle count: 1
Update IntelliSense time (sec): 0.435
LSP: cpptools/getFoldingRanges: file:///home/user/dev/sandbox/vscode-span-bug/vscode-span-bug.cpp (id: 7)
  Processing folder (recursive): /usr/local/include/
  Processing folder (recursive): /home/user/gcc-env/include/c++/13/
  Processing folder (recursive): /home/user/dev/sandbox/vscode-span-bug/
  Discovering files: 92057 file(s) processed
  0 file(s) removed from database
Done discovering files.
Parsing open files...
Populating include completion cache.
Parsing remaining files...
  Parsing: 0 files(s) processed
Done parsing remaining files.
LSP: cpptools/getDocumentSymbols: file:///home/user/dev/sandbox/vscode-span-bug/vscode-span-bug.cpp (id: 8)
Done parsing open files.


### Other Extensions

_No response_

### Additional context

_No response_
@intractabilis
Copy link
Author

@sean-mcmanus Can you take a look?

@michelleangela
Copy link
Contributor

@intractabilis
Thank you for reporting this issue. We have other related issues with GCC 13 and have filed bugs against our IntelliSense engine code based that is shared with Visual Studio.

Internal bug number 1816127.

@intractabilis
Copy link
Author

Thank you!

@Colengms
Copy link
Contributor

Given that the constructor for std::span depends on std::is_convertible_v, I'm reasonably certain this is the same issue as: #11038

... which appears to be (arguably) a gcc-13 header bug, as it's using a built-in without checking for support for that built-in, as the system headers do elsewhere.

@intractabilis
Copy link
Author

Gosh, it seems like it's not only is_convertible_v is defined in GCC 13 as a built-in without checking for its support. It's

  • is_enum_v
  • is_union_v
  • is_class_v
  • is_trivial_v
  • is_pod_v
  • is_literal_type_v
  • is_empty_v
  • is_polymorphic_v
  • is_abstract_v
  • is_final_v
  • is_constructible_v
  • is_copy_constructible_v
  • is_assignable_v
  • is_copy_assignable_v
  • is_trivially_constructible_v
  • is_trivially_assignable_v
  • is_nothrow_constructible_v
  • is_nothrow_default_constructible_v
  • is_nothrow_copy_constructible_v
  • is_nothrow_move_constructible_v
  • is_nothrow_assignable_v
  • is_nothrow_copy_assignable_v
  • is_nothrow_move_assignable_v
  • has_virtual_destructor_v
  • is_base_of_v
  • is_convertible_v
  • is_aggregate_v

@Colengms
Copy link
Contributor

Colengms commented Jun 12, 2023

Hi @intractabilis . Are you seeing any issues related to these? Except for __is_convertible, they appear to be pre-existing built-ins. It looks like the checks are only done for newly added built-ins in gcc-13, allowing the headers to still be used by prior versions of gcc. The C/C++ extension should support the older built-ins.

It looks like we'll be receiving support for the new built-ins soon. Though, if gcc were to add the missing check around use of __is_convertible, that might also address the repro.

@intractabilis
Copy link
Author

they appear to be pre-existing built-ins

Ok, good to know.

@Colengms
Copy link
Contributor

Using #11038 to track this. Closing this one as a duplicate.

@Colengms Colengms closed this as not planned Won't fix, can't repro, duplicate, stale Jun 12, 2023
@michelleangela
Copy link
Contributor

Fix available in pre-release https://github.com/microsoft/vscode-cpptools/releases/tag/v1.17.0.

@github-actions github-actions bot locked and limited conversation to collaborators Jul 30, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

5 participants