Skip to content

IntelliSense fails to handle aliased struct #12724

Open
@mehlian

Description

@mehlian

Environment

  • OS and Version: Windows 10
  • VS Code Version: 1.84.2
  • C/C++ Extension Version: 1.21.6
  • If using SSH remote, specify OS of remote machine:

Bug Summary and Steps to Reproduce

Bug Summary:
When aliasing is used for struct that uses same name as namespace then IntelliSense shows error.

Steps to reproduce:

  1. Paste in code:
namespace AAA
{
    struct AAA
    {
        int integer;
    };

    int AAAtest(int a)
    {
        return a + 10;
    }
}

namespace BBB
{
using AAA = AAA::AAA; // shows error

void test(AAA *aa)
{
    aa->integer++;
    int result = ::AAA::AAAtest(10);
}
}
  1. Error overloaded function "AAA::AAA::AAA" is not a type nameC/C++(757) will be shown on mouse hover over using AAA = AAA::AAA; line.

Expected behavior:
No error should be shown here.
Code compiles using clang version 14.0.6 Android (8490178, based on r450784d) (other compilers not tested).

Configuration and Logs

{
    "configurations": [
        {
            "name": "android",
            "includePath": [
                "${workspaceFolder}/src/**"
            ],
            "defines": [
                "_DEBUG",
                "DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "${workspaceFolder}/../android_sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++.exe",
            "cStandard": "c11",
            "cppStandard": "c++11",
            "intelliSenseMode": "linux-clang-arm64",
            "browse": {
                "limitSymbolsToIncludedHeaders": true
            },
            "compilerArgs": [
                "--target=aarch64-unknown-linux-android26",
                "-Werror",
                "-pedantic-errors",
                "--std=c++11",
                "-fPIC",
                "-ferror-limit=0",
                "-fstack-protector-strong",
                "-Wno-writable-strings",
                "-Wno-gnu-anonymous-struct",
                "-Wno-nested-anon-types",
                "-Wl,--no-undefined-version",
                "-Wl,-undefined,error",
                "-Wl,--error-unresolved-symbols",
                "-Wl,--no-undefined",
                "-Wl,-error-limit=0",
                "-Wl,--build-id=sha1",
                "-mno-relax"
            ]
        }
    ],
    "version": 4
}

Other Extensions

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    No status

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions