forked from OSchip/llvm-project
[Clang][CodeGen]Remove anonymous tag locations
Remove anonymous tag locations, powered by 'PrintingPolicy', @aaron.ballman once suggested removing this extra information in https://reviews.llvm.org/D122248 struct: struct S { int a; struct /* Anonymous*/ { int x; } b; int c; }; Before: struct S { int a = 0 struct S::(unnamed at ./builtin_dump_struct.c:20:3) { int x = 0 } int c = 0 } After: struct S { int a = 0 struct S::(unnamed) { int x = 0 } int c = 0 } Differntial Revision: https://reviews.llvm.org/D122670
This commit is contained in:
parent
7a94a032f0
commit
de7cd3ccf5
|
@ -116,6 +116,7 @@ Non-comprehensive list of changes in this release
|
|||
- Improve __builtin_dump_struct:
|
||||
- Support bitfields in struct and union.
|
||||
- Improve the dump format, dump both bitwidth(if its a bitfield) and field value.
|
||||
- Remove anonymous tag locations.
|
||||
|
||||
New Compiler Flags
|
||||
------------------
|
||||
|
|
|
@ -2050,8 +2050,10 @@ static llvm::Value *dumpRecord(CodeGenFunction &CGF, QualType RType,
|
|||
RecordDecl *RD = RType->castAs<RecordType>()->getDecl()->getDefinition();
|
||||
std::string Pad = std::string(Lvl * 4, ' ');
|
||||
|
||||
PrintingPolicy Policy(Context.getLangOpts());
|
||||
Policy.AnonymousTagLocations = false;
|
||||
Value *GString =
|
||||
CGF.Builder.CreateGlobalStringPtr(RType.getAsString() + " {\n");
|
||||
CGF.Builder.CreateGlobalStringPtr(RType.getAsString(Policy) + " {\n");
|
||||
Value *Res = CGF.Builder.CreateCall(Func, {GString});
|
||||
|
||||
static llvm::DenseMap<QualType, const char *> Types;
|
||||
|
|
Loading…
Reference in New Issue