HomePhabricator

[flang][msvc] Disambiguate injected class name.

Authored by Meinersbur on Aug 22 2020, 10:05 AM.

Description

[flang][msvc] Disambiguate injected class name.

The identifier Expr within the scope of the Expr class (including its temple specializations) refers to the current template/instantiation (see https://en.cppreference.com/w/cpp/language/injected-class-name for details). The MapTemplate template expect a non-instantiated template as the first template argument, not the concrete instantiation of Expr.

At least msvc interprets Expr as the injected class name, whereas gcc and clang use the global flang::evaluate::Expr template. Disambiguate by explicitly using the namespace.

This patch is part of the series to make flang compilable with MS Visual Studio.

Reviewed By: DavidTruby

Differential Revision: https://reviews.llvm.org/D85646

Details

Committed
MeinersburAug 22 2020, 10:16 AM
Reviewer
DavidTruby
Differential Revision
D85646: [flang][msvc] Disambiguate injected class name.
Parents
rGc0c3cafa2bda: [flang] Fix assert on bad character kind
Branches
Unknown
Tags
Unknown