[llvm-bugs] [Bug 49829] New: Incorrect error message for missing typename keyword on dependent template alias instantiation

via llvm-bugs llvm-bugs at lists.llvm.org
Sat Apr 3 17:28:14 PDT 2021


https://bugs.llvm.org/show_bug.cgi?id=49829

            Bug ID: 49829
           Summary: Incorrect error message for missing typename keyword
                    on dependent template alias instantiation
           Product: clang
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: C++
          Assignee: unassignedclangbugs at nondot.org
          Reporter: matthewjbarichello at gmail.com
                CC: blitzrakete at gmail.com, dgregor at apple.com,
                    erik.pilkington at gmail.com, llvm-bugs at lists.llvm.org,
                    richard-llvm at metafoo.co.uk

Affected versions:
Note: The regression seems to have been introduced in 3.3 as versions < 3.3 do
not exhibit this issue.
 - trunk
 - 11.0.1
 - 11.0.0
 - 10.0.1
 - 10.0.0
 - 9.0.1
 - 9.0.0
 - 8.0.1
 - 8.0.0
 - 7.1.0
 - 7.0.1
 - 7.0.0
 - 6.0.1
 - 6.0.0
 - 5.0.1
 - 5.0.0
 - 4.0.1
 - 4.0.0
 - 3.9.1
 - 3.9.0
 - 3.8.1
 - 3.8
 - 3.7.1
 - 3.7
 - 3.6
 - 3.5.2
 - 3.5.1
 - 3.5
 - 3.4.1
 - 3.3

Driver cmdline:
 clang++ -std=c++11

Code:
 template<typename>
 struct A {
  template<typename = void>
  using B = void;
 };

 template<typename T>
 using C = A<T>::template B<>;

Expected behaviour:
An error message along the lines of "...missing typename keyword before ..."

Actual behaviour (error message):
 <source>:8:11: error: expected a type
 using C = A<T>::template B<>;
           ^
 <source>:8:17: error: expected ';' after alias declaration
 using C = A<T>::template B<>;
                 ^
                 ;
 2 errors generated.

Notes:
 - Changing the final 2 lines to the following, compiles as expected:
    template<typename T>
    using C = typename A<T>::template B<>;
 - Possibly related to: https://bugs.llvm.org/show_bug.cgi?id=8446

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20210404/45d0553d/attachment.html>


More information about the llvm-bugs mailing list