[clang] [clang-tools-extra] [lldb] Reland [clang] Unify `SourceLocation` and `IdentifierInfo*` pair-like data structures to `IdentifierLoc` (PR #136077)

2025-04-18 Thread via cfe-commits

llvmbot wrote:




@llvm/pr-subscribers-clang-tools-extra

Author: None (yronglin)


Changes

This PR reland https://github.com/llvm/llvm-project/pull/135808, fixed some 
missed changes in LLDB.
I found this issue when I working on 
https://github.com/llvm/llvm-project/pull/107168.

Currently we have many similiar data structures like:
- std::pair.
- Element type of ModuleIdPath.
- IdentifierLocPair.
- IdentifierLoc.

This PR unify these data structures to IdentifierLoc, moved IdentifierLoc 
definition to SourceLocation.h, and deleted other similer data structures.


---

Patch is 110.90 KiB, truncated to 20.00 KiB below, full version: 
https://github.com/llvm/llvm-project/pull/136077.diff


47 Files Affected:

- (modified) clang-tools-extra/pp-trace/PPCallbacksTracker.cpp (+2-2) 
- (modified) clang/include/clang/AST/OpenACCClause.h (+10-10) 
- (modified) clang/include/clang/Basic/IdentifierTable.h (+23-3) 
- (modified) clang/include/clang/Lex/ModuleLoader.h (+2-1) 
- (modified) clang/include/clang/Lex/PPCallbacks.h (+1) 
- (modified) clang/include/clang/Lex/Preprocessor.h (+4-5) 
- (modified) clang/include/clang/Parse/LoopHint.h (+1-1) 
- (modified) clang/include/clang/Parse/Parser.h (+5-8) 
- (modified) clang/include/clang/Sema/ParsedAttr.h (-10) 
- (modified) clang/include/clang/Sema/Sema.h (+1-1) 
- (modified) clang/include/clang/Sema/SemaCodeCompletion.h (+1-2) 
- (modified) clang/include/clang/Sema/SemaObjC.h (+2-2) 
- (modified) clang/include/clang/Sema/SemaOpenACC.h (+1-1) 
- (modified) clang/lib/AST/OpenACCClause.cpp (+2-2) 
- (modified) clang/lib/AST/TextNodeDumper.cpp (+2-2) 
- (modified) clang/lib/Frontend/CompilerInstance.cpp (+28-25) 
- (modified) clang/lib/Frontend/FrontendActions.cpp (+2-2) 
- (modified) clang/lib/Lex/PPDirectives.cpp (+11-11) 
- (modified) clang/lib/Lex/PPLexerChange.cpp (+3-3) 
- (modified) clang/lib/Lex/Pragma.cpp (+35-38) 
- (modified) clang/lib/Lex/Preprocessor.cpp (+8-8) 
- (modified) clang/lib/Parse/ParseDecl.cpp (+14-14) 
- (modified) clang/lib/Parse/ParseExpr.cpp (+4-3) 
- (modified) clang/lib/Parse/ParseHLSL.cpp (+1-1) 
- (modified) clang/lib/Parse/ParseObjc.cpp (+18-20) 
- (modified) clang/lib/Parse/ParseOpenACC.cpp (+7-5) 
- (modified) clang/lib/Parse/ParsePragma.cpp (+7-8) 
- (modified) clang/lib/Parse/ParseStmt.cpp (+3-3) 
- (modified) clang/lib/Parse/Parser.cpp (+9-10) 
- (modified) clang/lib/Sema/ParsedAttr.cpp (-8) 
- (modified) clang/lib/Sema/SemaARM.cpp (+1-1) 
- (modified) clang/lib/Sema/SemaCodeComplete.cpp (+4-4) 
- (modified) clang/lib/Sema/SemaDeclAttr.cpp (+65-59) 
- (modified) clang/lib/Sema/SemaDeclObjC.cpp (+19-16) 
- (modified) clang/lib/Sema/SemaHLSL.cpp (+6-6) 
- (modified) clang/lib/Sema/SemaModule.cpp (+23-19) 
- (modified) clang/lib/Sema/SemaObjC.cpp (+23-22) 
- (modified) clang/lib/Sema/SemaOpenACCClause.cpp (+6-5) 
- (modified) clang/lib/Sema/SemaStmtAttr.cpp (+16-13) 
- (modified) clang/lib/Sema/SemaSwift.cpp (+12-12) 
- (modified) clang/lib/Sema/SemaTemplateVariadic.cpp (+5-5) 
- (modified) clang/lib/Sema/SemaType.cpp (+6-7) 
- (modified) clang/lib/Serialization/ASTReader.cpp (+1-1) 
- (modified) clang/lib/Serialization/ASTWriter.cpp (+4-4) 
- (modified) clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp (+1-1) 
- (modified) 
lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp (+4-2) 
- (modified) 
lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp (+8-9) 


``diff
diff --git a/clang-tools-extra/pp-trace/PPCallbacksTracker.cpp 
b/clang-tools-extra/pp-trace/PPCallbacksTracker.cpp
index 3bb30fd15b2e1..4c916fa30685b 100644
--- a/clang-tools-extra/pp-trace/PPCallbacksTracker.cpp
+++ b/clang-tools-extra/pp-trace/PPCallbacksTracker.cpp
@@ -547,8 +547,8 @@ void PPCallbacksTracker::appendArgument(const char *Name, 
ModuleIdPath Value) {
 if (I)
   SS << ", ";
 SS << "{"
-   << "Name: " << Value[I].first->getName() << ", "
-   << "Loc: " << getSourceLocationString(PP, Value[I].second) << "}";
+   << "Name: " << Value[I].getIdentifierInfo()->getName() << ", "
+   << "Loc: " << getSourceLocationString(PP, Value[I].getLoc()) << "}";
   }
   SS << "]";
   appendArgument(Name, SS.str());
diff --git a/clang/include/clang/AST/OpenACCClause.h 
b/clang/include/clang/AST/OpenACCClause.h
index 681567228cbb0..f18a6cf62f2c5 100644
--- a/clang/include/clang/AST/OpenACCClause.h
+++ b/clang/include/clang/AST/OpenACCClause.h
@@ -258,7 +258,7 @@ inline bool operator!=(const OpenACCBindClause &LHS,
   return !(LHS == RHS);
 }
 
-using DeviceTypeArgument = std::pair;
+using DeviceTypeArgument = IdentifierLoc;
 /// A 'device_type' or 'dtype' clause, takes a list of either an 'asterisk' or
 /// an identifier. The 'asterisk' means 'the rest'.
 class OpenACCDeviceTypeClause final
@@ -280,16 +280,16 @@ class OpenACCDeviceTypeClause final
 "Invalid clause kind for device-type");
 
 assert(!llvm::any_of(Archs, [](const DeviceTypeArgument &Arg) {

[clang] [clang-tools-extra] [lldb] Reland [clang] Unify `SourceLocation` and `IdentifierInfo*` pair-like data structures to `IdentifierLoc` (PR #136077)

2025-04-18 Thread Younan Zhang via cfe-commits

https://github.com/zyn0217 approved this pull request.


https://github.com/llvm/llvm-project/pull/136077
___
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [clang-tools-extra] [lldb] Reland [clang] Unify `SourceLocation` and `IdentifierInfo*` pair-like data structures to `IdentifierLoc` (PR #136077)

2025-04-17 Thread via cfe-commits

yronglin wrote:

Thanks for the review!

https://github.com/llvm/llvm-project/pull/136077
___
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [clang-tools-extra] [lldb] Reland [clang] Unify `SourceLocation` and `IdentifierInfo*` pair-like data structures to `IdentifierLoc` (PR #136077)

2025-04-17 Thread via cfe-commits

https://github.com/yronglin closed 
https://github.com/llvm/llvm-project/pull/136077
___
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [clang-tools-extra] [lldb] Reland [clang] Unify `SourceLocation` and `IdentifierInfo*` pair-like data structures to `IdentifierLoc` (PR #136077)

2025-04-17 Thread Erich Keane via cfe-commits

https://github.com/erichkeane approved this pull request.


https://github.com/llvm/llvm-project/pull/136077
___
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [clang-tools-extra] [lldb] Reland [clang] Unify `SourceLocation` and `IdentifierInfo*` pair-like data structures to `IdentifierLoc` (PR #136077)

2025-04-16 Thread via cfe-commits

llvmbot wrote:



@llvm/pr-subscribers-clang

@llvm/pr-subscribers-backend-arm

Author: None (yronglin)


Changes

This PR reland https://github.com/llvm/llvm-project/pull/135808, fixed some 
missed changes in LLDB.
I found this issue when I working on 
https://github.com/llvm/llvm-project/pull/107168.

Currently we have many similiar data structures like:
- std::pair.
- Element type of ModuleIdPath.
- IdentifierLocPair.
- IdentifierLoc.

This PR unify these data structures to IdentifierLoc, moved IdentifierLoc 
definition to SourceLocation.h, and deleted other similer data structures.


---

Patch is 110.90 KiB, truncated to 20.00 KiB below, full version: 
https://github.com/llvm/llvm-project/pull/136077.diff


47 Files Affected:

- (modified) clang-tools-extra/pp-trace/PPCallbacksTracker.cpp (+2-2) 
- (modified) clang/include/clang/AST/OpenACCClause.h (+10-10) 
- (modified) clang/include/clang/Basic/IdentifierTable.h (+23-3) 
- (modified) clang/include/clang/Lex/ModuleLoader.h (+2-1) 
- (modified) clang/include/clang/Lex/PPCallbacks.h (+1) 
- (modified) clang/include/clang/Lex/Preprocessor.h (+4-5) 
- (modified) clang/include/clang/Parse/LoopHint.h (+1-1) 
- (modified) clang/include/clang/Parse/Parser.h (+5-8) 
- (modified) clang/include/clang/Sema/ParsedAttr.h (-10) 
- (modified) clang/include/clang/Sema/Sema.h (+1-1) 
- (modified) clang/include/clang/Sema/SemaCodeCompletion.h (+1-2) 
- (modified) clang/include/clang/Sema/SemaObjC.h (+2-2) 
- (modified) clang/include/clang/Sema/SemaOpenACC.h (+1-1) 
- (modified) clang/lib/AST/OpenACCClause.cpp (+2-2) 
- (modified) clang/lib/AST/TextNodeDumper.cpp (+2-2) 
- (modified) clang/lib/Frontend/CompilerInstance.cpp (+28-25) 
- (modified) clang/lib/Frontend/FrontendActions.cpp (+2-2) 
- (modified) clang/lib/Lex/PPDirectives.cpp (+11-11) 
- (modified) clang/lib/Lex/PPLexerChange.cpp (+3-3) 
- (modified) clang/lib/Lex/Pragma.cpp (+35-38) 
- (modified) clang/lib/Lex/Preprocessor.cpp (+8-8) 
- (modified) clang/lib/Parse/ParseDecl.cpp (+14-14) 
- (modified) clang/lib/Parse/ParseExpr.cpp (+4-3) 
- (modified) clang/lib/Parse/ParseHLSL.cpp (+1-1) 
- (modified) clang/lib/Parse/ParseObjc.cpp (+18-20) 
- (modified) clang/lib/Parse/ParseOpenACC.cpp (+7-5) 
- (modified) clang/lib/Parse/ParsePragma.cpp (+7-8) 
- (modified) clang/lib/Parse/ParseStmt.cpp (+3-3) 
- (modified) clang/lib/Parse/Parser.cpp (+9-10) 
- (modified) clang/lib/Sema/ParsedAttr.cpp (-8) 
- (modified) clang/lib/Sema/SemaARM.cpp (+1-1) 
- (modified) clang/lib/Sema/SemaCodeComplete.cpp (+4-4) 
- (modified) clang/lib/Sema/SemaDeclAttr.cpp (+65-59) 
- (modified) clang/lib/Sema/SemaDeclObjC.cpp (+19-16) 
- (modified) clang/lib/Sema/SemaHLSL.cpp (+6-6) 
- (modified) clang/lib/Sema/SemaModule.cpp (+23-19) 
- (modified) clang/lib/Sema/SemaObjC.cpp (+23-22) 
- (modified) clang/lib/Sema/SemaOpenACCClause.cpp (+6-5) 
- (modified) clang/lib/Sema/SemaStmtAttr.cpp (+16-13) 
- (modified) clang/lib/Sema/SemaSwift.cpp (+12-12) 
- (modified) clang/lib/Sema/SemaTemplateVariadic.cpp (+5-5) 
- (modified) clang/lib/Sema/SemaType.cpp (+6-7) 
- (modified) clang/lib/Serialization/ASTReader.cpp (+1-1) 
- (modified) clang/lib/Serialization/ASTWriter.cpp (+4-4) 
- (modified) clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp (+1-1) 
- (modified) 
lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp (+4-2) 
- (modified) 
lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp (+8-9) 


``diff
diff --git a/clang-tools-extra/pp-trace/PPCallbacksTracker.cpp 
b/clang-tools-extra/pp-trace/PPCallbacksTracker.cpp
index 3bb30fd15b2e1..4c916fa30685b 100644
--- a/clang-tools-extra/pp-trace/PPCallbacksTracker.cpp
+++ b/clang-tools-extra/pp-trace/PPCallbacksTracker.cpp
@@ -547,8 +547,8 @@ void PPCallbacksTracker::appendArgument(const char *Name, 
ModuleIdPath Value) {
 if (I)
   SS << ", ";
 SS << "{"
-   << "Name: " << Value[I].first->getName() << ", "
-   << "Loc: " << getSourceLocationString(PP, Value[I].second) << "}";
+   << "Name: " << Value[I].getIdentifierInfo()->getName() << ", "
+   << "Loc: " << getSourceLocationString(PP, Value[I].getLoc()) << "}";
   }
   SS << "]";
   appendArgument(Name, SS.str());
diff --git a/clang/include/clang/AST/OpenACCClause.h 
b/clang/include/clang/AST/OpenACCClause.h
index 681567228cbb0..f18a6cf62f2c5 100644
--- a/clang/include/clang/AST/OpenACCClause.h
+++ b/clang/include/clang/AST/OpenACCClause.h
@@ -258,7 +258,7 @@ inline bool operator!=(const OpenACCBindClause &LHS,
   return !(LHS == RHS);
 }
 
-using DeviceTypeArgument = std::pair;
+using DeviceTypeArgument = IdentifierLoc;
 /// A 'device_type' or 'dtype' clause, takes a list of either an 'asterisk' or
 /// an identifier. The 'asterisk' means 'the rest'.
 class OpenACCDeviceTypeClause final
@@ -280,16 +280,16 @@ class OpenACCDeviceTypeClause final
 "Invalid clause kind for device-type");
 
 assert(!llvm::any_of(Archs, [](const Device

[clang] [clang-tools-extra] [lldb] Reland [clang] Unify `SourceLocation` and `IdentifierInfo*` pair-like data structures to `IdentifierLoc` (PR #136077)

2025-04-16 Thread via cfe-commits

llvmbot wrote:




@llvm/pr-subscribers-hlsl

Author: None (yronglin)


Changes

This PR reland https://github.com/llvm/llvm-project/pull/135808, fixed some 
missed changes in LLDB.
I found this issue when I working on 
https://github.com/llvm/llvm-project/pull/107168.

Currently we have many similiar data structures like:
- std::pair.
- Element type of ModuleIdPath.
- IdentifierLocPair.
- IdentifierLoc.

This PR unify these data structures to IdentifierLoc, moved IdentifierLoc 
definition to SourceLocation.h, and deleted other similer data structures.


---

Patch is 110.90 KiB, truncated to 20.00 KiB below, full version: 
https://github.com/llvm/llvm-project/pull/136077.diff


47 Files Affected:

- (modified) clang-tools-extra/pp-trace/PPCallbacksTracker.cpp (+2-2) 
- (modified) clang/include/clang/AST/OpenACCClause.h (+10-10) 
- (modified) clang/include/clang/Basic/IdentifierTable.h (+23-3) 
- (modified) clang/include/clang/Lex/ModuleLoader.h (+2-1) 
- (modified) clang/include/clang/Lex/PPCallbacks.h (+1) 
- (modified) clang/include/clang/Lex/Preprocessor.h (+4-5) 
- (modified) clang/include/clang/Parse/LoopHint.h (+1-1) 
- (modified) clang/include/clang/Parse/Parser.h (+5-8) 
- (modified) clang/include/clang/Sema/ParsedAttr.h (-10) 
- (modified) clang/include/clang/Sema/Sema.h (+1-1) 
- (modified) clang/include/clang/Sema/SemaCodeCompletion.h (+1-2) 
- (modified) clang/include/clang/Sema/SemaObjC.h (+2-2) 
- (modified) clang/include/clang/Sema/SemaOpenACC.h (+1-1) 
- (modified) clang/lib/AST/OpenACCClause.cpp (+2-2) 
- (modified) clang/lib/AST/TextNodeDumper.cpp (+2-2) 
- (modified) clang/lib/Frontend/CompilerInstance.cpp (+28-25) 
- (modified) clang/lib/Frontend/FrontendActions.cpp (+2-2) 
- (modified) clang/lib/Lex/PPDirectives.cpp (+11-11) 
- (modified) clang/lib/Lex/PPLexerChange.cpp (+3-3) 
- (modified) clang/lib/Lex/Pragma.cpp (+35-38) 
- (modified) clang/lib/Lex/Preprocessor.cpp (+8-8) 
- (modified) clang/lib/Parse/ParseDecl.cpp (+14-14) 
- (modified) clang/lib/Parse/ParseExpr.cpp (+4-3) 
- (modified) clang/lib/Parse/ParseHLSL.cpp (+1-1) 
- (modified) clang/lib/Parse/ParseObjc.cpp (+18-20) 
- (modified) clang/lib/Parse/ParseOpenACC.cpp (+7-5) 
- (modified) clang/lib/Parse/ParsePragma.cpp (+7-8) 
- (modified) clang/lib/Parse/ParseStmt.cpp (+3-3) 
- (modified) clang/lib/Parse/Parser.cpp (+9-10) 
- (modified) clang/lib/Sema/ParsedAttr.cpp (-8) 
- (modified) clang/lib/Sema/SemaARM.cpp (+1-1) 
- (modified) clang/lib/Sema/SemaCodeComplete.cpp (+4-4) 
- (modified) clang/lib/Sema/SemaDeclAttr.cpp (+65-59) 
- (modified) clang/lib/Sema/SemaDeclObjC.cpp (+19-16) 
- (modified) clang/lib/Sema/SemaHLSL.cpp (+6-6) 
- (modified) clang/lib/Sema/SemaModule.cpp (+23-19) 
- (modified) clang/lib/Sema/SemaObjC.cpp (+23-22) 
- (modified) clang/lib/Sema/SemaOpenACCClause.cpp (+6-5) 
- (modified) clang/lib/Sema/SemaStmtAttr.cpp (+16-13) 
- (modified) clang/lib/Sema/SemaSwift.cpp (+12-12) 
- (modified) clang/lib/Sema/SemaTemplateVariadic.cpp (+5-5) 
- (modified) clang/lib/Sema/SemaType.cpp (+6-7) 
- (modified) clang/lib/Serialization/ASTReader.cpp (+1-1) 
- (modified) clang/lib/Serialization/ASTWriter.cpp (+4-4) 
- (modified) clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp (+1-1) 
- (modified) 
lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp (+4-2) 
- (modified) 
lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp (+8-9) 


``diff
diff --git a/clang-tools-extra/pp-trace/PPCallbacksTracker.cpp 
b/clang-tools-extra/pp-trace/PPCallbacksTracker.cpp
index 3bb30fd15b2e1..4c916fa30685b 100644
--- a/clang-tools-extra/pp-trace/PPCallbacksTracker.cpp
+++ b/clang-tools-extra/pp-trace/PPCallbacksTracker.cpp
@@ -547,8 +547,8 @@ void PPCallbacksTracker::appendArgument(const char *Name, 
ModuleIdPath Value) {
 if (I)
   SS << ", ";
 SS << "{"
-   << "Name: " << Value[I].first->getName() << ", "
-   << "Loc: " << getSourceLocationString(PP, Value[I].second) << "}";
+   << "Name: " << Value[I].getIdentifierInfo()->getName() << ", "
+   << "Loc: " << getSourceLocationString(PP, Value[I].getLoc()) << "}";
   }
   SS << "]";
   appendArgument(Name, SS.str());
diff --git a/clang/include/clang/AST/OpenACCClause.h 
b/clang/include/clang/AST/OpenACCClause.h
index 681567228cbb0..f18a6cf62f2c5 100644
--- a/clang/include/clang/AST/OpenACCClause.h
+++ b/clang/include/clang/AST/OpenACCClause.h
@@ -258,7 +258,7 @@ inline bool operator!=(const OpenACCBindClause &LHS,
   return !(LHS == RHS);
 }
 
-using DeviceTypeArgument = std::pair;
+using DeviceTypeArgument = IdentifierLoc;
 /// A 'device_type' or 'dtype' clause, takes a list of either an 'asterisk' or
 /// an identifier. The 'asterisk' means 'the rest'.
 class OpenACCDeviceTypeClause final
@@ -280,16 +280,16 @@ class OpenACCDeviceTypeClause final
 "Invalid clause kind for device-type");
 
 assert(!llvm::any_of(Archs, [](const DeviceTypeArgument &Arg) {
-  return