File tree Expand file tree Collapse file tree 3 files changed +30
-1
lines changed Expand file tree Collapse file tree 3 files changed +30
-1
lines changed Original file line number Diff line number Diff line change @@ -821,6 +821,7 @@ Miscellaneous Clang Crashes Fixed
821
821
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
822
822
823
823
- Fixed crash when ``-print-stats `` is enabled in compiling IR files. (#GH131608)
824
+ - Fix code completion crash involving PCH serialzied templates. (#GH139019)
824
825
825
826
OpenACC Specific Changes
826
827
------------------------
Original file line number Diff line number Diff line change @@ -65,7 +65,9 @@ void TemplateArgumentHasher::AddTemplateArgument(TemplateArgument TA) {
65
65
66
66
switch (Kind) {
67
67
case TemplateArgument::Null:
68
- llvm_unreachable (" Expected valid TemplateArgument" );
68
+ // These can occur in incomplete substitutions performed with code
69
+ // completion (see PartialOverloading).
70
+ break ;
69
71
case TemplateArgument::Type:
70
72
AddQualType (TA.getAsType ());
71
73
break ;
Original file line number Diff line number Diff line change
1
+ // RUN: rm -rf %t
2
+ // RUN: mkdir %t
3
+ // RUN: split-file %s %t
4
+ //
5
+ // RUN: %clang_cc1 -std=c++20 %t/test.hpp -emit-pch -o %t/1.pch
6
+ // RUN: %clang_cc1 -std=c++20 %t/test.cpp -include-pch %t/1.pch -code-completion-at=%t/test.cpp:7:17
7
+
8
+ // --- test.hpp
9
+ #pragma once
10
+ class provider_t
11
+ {
12
+ public:
13
+ template <class T >
14
+ void emit (T *data)
15
+ {}
16
+ };
17
+
18
+ // --- test.cpp
19
+ #include " test.hpp"
20
+
21
+ void test ()
22
+ {
23
+ provider_t *focus;
24
+ void *data;
25
+ focus->emit (&data);
26
+ }
You can’t perform that action at this time.
0 commit comments