New user self-registration is disabled due to spam. For an account please email bugs-admin@lists.llvm.org with your e-mail address and full name.

Bug 44696 - ClangdTests.exe/Hover.All fail on 32-bit windows
Summary: ClangdTests.exe/Hover.All fail on 32-bit windows
Status: RESOLVED FIXED
Alias: None
Product: new-bugs
Classification: Unclassified
Component: new bugs (show other bugs)
Version: trunk
Hardware: PC Linux
: P enhancement
Assignee: Unassigned LLVM Bugs
URL:
Keywords:
Depends on:
Blocks: release-10.0.0
  Show dependency tree
 
Reported: 2020-01-28 08:30 PST by Hans Wennborg
Modified: 2020-01-29 12:54 PST (History)
3 users (show)

See Also:
Fixed By Commit(s):


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Hans Wennborg 2020-01-28 08:30:59 PST
The problem is that member functions have __attribute__((thiscall)) in the AST when targeting 32-bit Windows, and the test doesn't expect that.

I wasn't sure how to fix that. Alternatively, maybe the test could have a target triple so that the AST doesn't vary between host platforms?



[2044/2045] Running the Clangd regression tests
llvm-lit.py: C:/src/llvm.monorepo/llvm\utils\lit\lit\llvm\config.py:342: note: using clang: c:\src\llvm.monorepo\build.32_2019\bin\clang.exe
-- Testing: 724 tests, 32 workers --
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90..
FAIL: Clangd Unit Tests :: ./ClangdTests.exe/Hover.All (723 of 724)
******************** TEST 'Clangd Unit Tests :: ./ClangdTests.exe/Hover.All' FAILED ********************
Note: Google Test filter = Hover.All
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from Hover
[ RUN      ] Hover.All
C:\src\llvm.monorepo\clang-tools-extra\clangd\unittests\HoverTests.cpp(1628): error:       Expected: H->Type
      Which is: int () __attribute__((thiscall))
To be equal to: Expected.Type
      Which is: int ()
Google Test trace:
C:\src\llvm.monorepo\clang-tools-extra\clangd\unittests\HoverTests.cpp(1621): instance-method x

→ int

// In Foo
int x()
C:\src\llvm.monorepo\clang-tools-extra\clangd\unittests\HoverTests.cpp(1604): // Method call
            struct Foo { int x(); };
            int main() {
              Foo bar;
              bar.^[[x]]();
            }

C:\src\llvm.monorepo\clang-tools-extra\clangd\unittests\HoverTests.cpp(1628): error:       Expected: H->Type
      Which is: int () __attribute__((thiscall))
To be equal to: Expected.Type
      Which is: int ()
Google Test trace:
C:\src\llvm.monorepo\clang-tools-extra\clangd\unittests\HoverTests.cpp(1621): instance-method method

→ int

// In cls<int>
int method()
C:\src\llvm.monorepo\clang-tools-extra\clangd\unittests\HoverTests.cpp(1604): // should not crash.
          template <class T> struct cls {
            int method();
          };

          auto test = cls<int>().[[m^ethod]]();

[  FAILED  ] Hover.All (959 ms)
[----------] 1 test from Hover (959 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (959 ms total)
[  PASSED  ] 0 tests.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] Hover.All

 1 FAILED TEST
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213812 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213900 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213904 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp
Building first preamble for C:\clangd-test\TestTU.cpp
Built preamble of size 213704 for file C:\clangd-test\TestTU.cpp

********************
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90..

Testing Time: 5.27s
********************
Failing Tests (1):
    Clangd Unit Tests :: ./ClangdTests.exe/Hover.All

  Expected Passes    : 715
  Unsupported Tests  : 8
  Unexpected Failures: 1
FAILED: tools/clang/tools/extra/clangd/test/CMakeFiles/check-clangd
cmd.exe /C "cd /D C:\src\llvm.monorepo\build.32_2019\tools\clang\tools\extra\clangd\test && C:\python_27_amd64\files\python.exe C:/src/llvm.monorepo/build.32_2019/./bin/llvm-lit.py -sv C:/src/llvm.monorepo/build.32_2019/tools/clang/tools/extra/clangd/test/../unittests C:/src/llvm.monorepo/build.32_2019/tools/clang/tools/extra/clangd/test"
ninja: build stopped: subcommand failed.
Comment 1 Hans Wennborg 2020-01-28 08:37:58 PST
Forgot to mention: this was on the 10.x branch at 54b022d344412fc9f1dfe37ee05de934a01e1ea4, but I assume it's the same on trunk.
Comment 2 Kadir Cetinkaya 2020-01-29 02:21:27 PST
Sent out https://reviews.llvm.org/D73613, thanks for target triplet suggestion!
Comment 3 Kadir Cetinkaya 2020-01-29 03:27:27 PST
Committed to trunk as 55b0e9c9d5de7c5d70552ac9ca9ffc14097e983b and cherry-picked to release branch as 9a174549742aae9e5bc9ab099cad849b0282f0e3
Comment 4 Hans Wennborg 2020-01-29 12:54:28 PST
Great, thanks!