Skip to content

modernize-use-using evaluates macros when constructing the replacement #33760

@llvmbot

Description

@llvmbot
Bugzilla Link 34412
Version unspecified
OS Linux
Blocks #37846
Reporter LLVM Bugzilla Contributor

Extended Description

Version of clang-tidy: 4.0
Check: modernize-use-using

// Before:

#ifndef SpecialMode
#define SomeMacro(x) x
#else
#define SomeMacro(x) SpecialType
#endif

class SomeMacro(SomeType) { };

typedef void(SomeMacro(SomeType)::*FunctionType)(float arg1, int arg2);

// After:

#ifndef SpecialMode
#define SomeMacro(x) x
#else
#define SomeMacro(x) SpecialType
#endif

class SomeMacro(SomeType) { };

using FunctionType = void (SomeType::*)(float, int); // evaluated macro instead of "SomeMacro(SomeType)"

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions