dyung added a comment. Hi @rsmith, we have an internal test where your change seems to have changed the mangling in C++17 mode and wanted to check if that was intentional.
Consider the following code: // Literals in templates #include <cstddef> template <typename T, T I> T returnit() {return I;}; enum colour { RED = -3, GREEN, BLUE}; // use long type for enumeration enum bigcolour { YELLOW = (1l << 32), CYAN, MAGENTA}; void callreturnit() { auto a = returnit<int, 4>(); auto b = returnit<unsigned int, 4>(); auto c = returnit<long, 4>(); auto d = returnit<unsigned long, 4>(); auto e = returnit<long long, -456789>(); auto f = returnit<bool, true>(); auto g = returnit<bool, false>(); auto n = returnit<std::nullptr_t, nullptr>(); auto cg = returnit<colour, GREEN>(); auto cy = returnit<bigcolour, YELLOW>(); } The compiler in C++17 mode now seems to differently mangle each instance: | function | before | after | | returnit<int, 4>(); | _Z8returnitIiLi4EET_v | _Z8returnitIiTnT_Li4EES0_v | | returnit<unsigned int, 4>(); | _Z8returnitIjLj4EET_v | _Z8returnitIjTnT_Lj4EES0_v | | returnit<long, 4>(); | _Z8returnitIlLl4EET_v | _Z8returnitIlTnT_Ll4EES0_v | | returnit<unsigned long, 4>(); | _Z8returnitImLm4EET_v | _Z8returnitImTnT_Lm4EES0_v | | returnit<long long, -456789>(); | _Z8returnitIxLxn456789EET_v | _Z8returnitIxTnT_Lxn456789EES0_v | | returnit<bool, true>(); | _Z8returnitIbLb1EET_v | _Z8returnitIbTnT_Lb1EES0_v | | returnit<bool, false>(); | _Z8returnitIbLb0EET_v | _Z8returnitIbTnT_Lb0EES0_v | | returnit<std::nullptr_t, nullptr>(); | _Z8returnitIDnLDn0EET_v | _Z8returnitIDnTnT_LDn0EES0_v | | returnit<colour, GREEN>(); | _Z8returnitI6colourLS0_n2EET_v | _Z8returnitI6colourTnT_LS0_n2EES1_v | | returnit<bigcolour, YELLOW>(); | _Z8returnitI9bigcolourLS0_4294967296EET_v | _Z8returnitI9bigcolourTnT_LS0_4294967296EES1_v | | Are these changes in non-C++20 mode intentional? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D147655/new/ https://reviews.llvm.org/D147655 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits