6 Commits

Author SHA1 Message Date
Zahira Ammarguellat
6503b015d4
[clang-cl] Fix value of __FUNCTION__ in MSVC mode. (#84014)
Predefined macro FUNCTION in clang is not returning the same string than
MS for templated functions.

See https://godbolt.org/z/q3EKn5zq4

For the same test case MSVC is returning:

function: TestClass::TestClass
function: TestStruct::TestStruct
function: TestEnum::TestEnum

The initial work for this was in the reverted patch
(https://github.com/llvm/llvm-project/pull/66120). This patch solves the
issues raised in the reverted patch.
2024-03-19 07:55:49 -07:00
Aaron Ballman
9243b1bfdb Revert "[clang-cl] Fix value of __FUNCTION__ and __FUNC__ in MSVC mode for c++. (#66120)"
This reverts commit 265568c136f94b108790e9be73cd8071e714aad1.

See https://github.com/llvm/llvm-project/issues/66114#issuecomment-1732319259
2023-09-27 14:26:49 -04:00
Zahira Ammarguellat
265568c136
[clang-cl] Fix value of __FUNCTION__ and __FUNC__ in MSVC mode for c++. (#66120)
Predefined macro FUNCTION (and __FUNC__) in clang is not returning the
same string than MS for templated functions.

See https://godbolt.org/z/88n1rGs3b

For this test case MSVC is returning:
function: TestClass<class UnitTestNative>::TestClass
func: TestClass

---------

Co-authored-by: Reid Kleckner <rnk@google.com>
2023-09-22 08:45:53 -04:00
Pratyush Das
99d63ccff0 Add type information to integral template argument if required.
Non-comprehensive list of cases:
 * Dumping template arguments;
 * Corresponding parameter contains a deduced type;
 * Template arguments are for a DeclRefExpr that hadMultipleCandidates()

Type information is added in the form of prefixes (u8, u, U, L),
suffixes (U, L, UL, LL, ULL) or explicit casts to printed integral template
argument, if MSVC codeview mode is disabled.

Differential revision: https://reviews.llvm.org/D77598
2021-05-12 19:00:08 +00:00
John McCall
cec49a5836 Revert "[SYCL] Implement __builtin_unique_stable_name."
This reverts commit b5a034e771d0e4d7d8e71fc545b230d98e5a1f42.

This feature was added without following the proper process.
2020-10-12 01:10:09 -04:00
Balazs Benics
163863604f [analyzer] Evaluate PredefinedExpressions
We did not evaluate such expressions, just returned `Unknown` for such cases.
After this patch, we will be able to access a unique value identifying a template instantiation via the value of the `PRETTY_FUNCTION` predefined expression.

Reviewed By: vsavchenko

Differential Revision: https://reviews.llvm.org/D87004
2020-09-14 08:43:56 +02:00