Richard Smith
e124612eda
[c++17] Visit class template explicit specializations just like all other class definitions in codegen.
...
If an explicit specialization has a static data member, it may be a definition and we may need to register it for emission.
llvm-svn: 317296
2017-11-03 01:26:01 +00:00
Richard Smith
8910fe699e
For better compatibility with C++11 and C++14, emit a nondiscardable definition
...
of a static constexpr data member if it's defined 'constexpr' out of line, not
only if it's defined 'constexpr' in the class.
llvm-svn: 316310
2017-10-23 03:58:34 +00:00
Richard Smith
d9b9009c61
PR28394: For compatibility with c++11 and c++14, if a static constexpr data
...
member is redundantly redeclared outside the class definition in code built in
c++17 mode, ensure we emit a non-discardable definition of the data member for
c++11 and c++14 compilations to use.
llvm-svn: 274416
2016-07-02 01:32:16 +00:00
Richard Smith
62f19e700d
Implement C++17 P0386R2, inline variables. (The 'inline' specifier gives a
...
variable weak discardable linkage and partially-ordered initialization, and is
implied for constexpr static data members.)
llvm-svn: 273754
2016-06-25 00:15:56 +00:00