@@ -258,7 +258,7 @@ inline bool operator!=(const OpenACCBindClause &LHS,
258258 return !(LHS == RHS);
259259}
260260
261- using DeviceTypeArgument = IdentifierLoc ;
261+ using DeviceTypeArgument = std::pair<IdentifierInfo *, SourceLocation> ;
262262// / A 'device_type' or 'dtype' clause, takes a list of either an 'asterisk' or
263263// / an identifier. The 'asterisk' means 'the rest'.
264264class OpenACCDeviceTypeClause final
@@ -280,16 +280,16 @@ class OpenACCDeviceTypeClause final
280280 " Invalid clause kind for device-type" );
281281
282282 assert (!llvm::any_of (Archs, [](const DeviceTypeArgument &Arg) {
283- return Arg.getLoc () .isInvalid ();
283+ return Arg.second .isInvalid ();
284284 }) && " Invalid SourceLocation for an argument" );
285285
286- assert ((Archs. size () == 1 ||
287- !llvm::any_of (Archs,
288- [](const DeviceTypeArgument &Arg) {
289- return Arg.getIdentifierInfo () == nullptr ;
290- })) &&
291- " Only a single asterisk version is permitted, and must be the "
292- " only one" );
286+ assert (
287+ (Archs. size () == 1 || !llvm::any_of (Archs,
288+ [](const DeviceTypeArgument &Arg) {
289+ return Arg.first == nullptr ;
290+ })) &&
291+ " Only a single asterisk version is permitted, and must be the "
292+ " only one" );
293293
294294 std::uninitialized_copy (Archs.begin (), Archs.end (),
295295 getTrailingObjects<DeviceTypeArgument>());
@@ -302,7 +302,7 @@ class OpenACCDeviceTypeClause final
302302 }
303303 bool hasAsterisk () const {
304304 return getArchitectures ().size () > 0 &&
305- getArchitectures ()[0 ].getIdentifierInfo () == nullptr ;
305+ getArchitectures ()[0 ].first == nullptr ;
306306 }
307307
308308 ArrayRef<DeviceTypeArgument> getArchitectures () const {
0 commit comments