diff --git a/include/clang/Basic/Attr.td b/include/clang/Basic/Attr.td
index a37e19f9f32979ffce59051d11aa1495c83a6e49..c50c8831969064a6b1fa5265a3e44047447192f6 100644
--- a/include/clang/Basic/Attr.td
+++ b/include/clang/Basic/Attr.td
@@ -2862,6 +2862,7 @@ def Platina : Attr {
                   , Pragma<"platina", "do">
                   , Pragma<"platina", "lbound">
                   , Pragma<"platina", "let">
+                  , Pragma<"platina", "glet">
                   ];
   let Args = [IdentifierArgument<"Type">, StringArgument<"PlatinaExpr">];
 
diff --git a/include/clang/Parse/Parser.h b/include/clang/Parse/Parser.h
index e0f46179d3b297e8d0b171e76af42c79317fc1f2..ed9e191460bf8a2ff521dd2b054f97e2384d8bc2 100644
--- a/include/clang/Parse/Parser.h
+++ b/include/clang/Parse/Parser.h
@@ -189,6 +189,7 @@ class Parser : public CodeCompletionHandler {
   std::unique_ptr<PragmaHandler> PlatinaCalleeHandler;
   std::unique_ptr<PragmaHandler> PlatinaDoHandler;
   std::unique_ptr<PragmaHandler> PlatinaLetHandler;
+  std::unique_ptr<PragmaHandler> PlatinaGLetHandler;
   std::unique_ptr<PragmaHandler> PlatinaLoopboundHandler;
   std::unique_ptr<PragmaHandler> PlatinHandler;
   std::unique_ptr<PragmaHandler> LoopHintHandler;
diff --git a/lib/Parse/ParsePragma.cpp b/lib/Parse/ParsePragma.cpp
index 16d4bb03f354d68fa355e30d5402b93a3a494ce5..72c181e09dce2fb411ec870c42fc97eec12fcf4e 100644
--- a/lib/Parse/ParsePragma.cpp
+++ b/lib/Parse/ParsePragma.cpp
@@ -229,6 +229,10 @@ struct PragmaPlatinaLetHandler : public PragmaPlatinaHandler {
   PragmaPlatinaLetHandler() : PragmaPlatinaHandler("let") {}
 };
 
+struct PragmaPlatinaGLetHandler : public PragmaPlatinaHandler {
+  PragmaPlatinaGLetHandler() : PragmaPlatinaHandler("glet") {}
+};
+
 struct PragmaPlatinaLoopboundHandler : public PragmaPlatinaHandler {
   // Sorry, we have to settle for lbound here, as tablegen seems to ignore
   // pragma namespaces and bugs on the duplicated "loopbound"
@@ -401,6 +405,9 @@ void Parser::initializePragmaHandlers() {
   PlatinaLetHandler.reset(new PragmaPlatinaLetHandler());
   PP.AddPragmaHandler("platina", PlatinaLetHandler.get());
 
+  PlatinaGLetHandler.reset(new PragmaPlatinaGLetHandler());
+  PP.AddPragmaHandler("platina", PlatinaGLetHandler.get());
+
   PlatinaLoopboundHandler.reset(new PragmaPlatinaLoopboundHandler());
   PP.AddPragmaHandler("platina", PlatinaLoopboundHandler.get());
 
@@ -524,6 +531,9 @@ void Parser::resetPragmaHandlers() {
   PP.RemovePragmaHandler("platina", PlatinaLetHandler.get());
   PlatinaLetHandler.reset();
 
+  PP.RemovePragmaHandler("platina", PlatinaGLetHandler.get());
+  PlatinaGLetHandler.reset();
+
   PP.RemovePragmaHandler("platina", PlatinaLoopboundHandler.get());
   PlatinaLoopboundHandler.reset();