Properly Create C++ string objects

"" is an empty C string in Objective-C++.

We need to use the proper constructors to
convert a C string into std::string.

Bug: angleproject:7646
Change-Id: Ided31dcbd9434cbae3ea828e29767bb3899e0f56
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3887639
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/gpu_info_util/SystemInfo_macos.mm b/src/gpu_info_util/SystemInfo_macos.mm
index 662ed54..a114686 100644
--- a/src/gpu_info_util/SystemInfo_macos.mm
+++ b/src/gpu_info_util/SystemInfo_macos.mm
@@ -47,7 +47,7 @@
 
     if (platformExpert == IO_OBJECT_NULL)
     {
-        return "";
+        return {};
     }
 
     CFDataRef modelData = static_cast<CFDataRef>(
@@ -55,10 +55,10 @@
     if (modelData == nullptr)
     {
         IOObjectRelease(platformExpert);
-        return "";
+        return {};
     }
 
-    std::string result = reinterpret_cast<const char *>(CFDataGetBytePtr(modelData));
+    std::string result(reinterpret_cast<const char *>(CFDataGetBytePtr(modelData)));
 
     IOObjectRelease(platformExpert);
     CFRelease(modelData);
diff --git a/src/libANGLE/renderer/metal/mtl_common.mm b/src/libANGLE/renderer/metal/mtl_common.mm
index 0c2af78..3f05092 100644
--- a/src/libANGLE/renderer/metal/mtl_common.mm
+++ b/src/libANGLE/renderer/metal/mtl_common.mm
@@ -96,7 +96,7 @@
 {
     if (!error)
     {
-        return "";
+        return {};
     }
 
     std::stringstream errorStream;
diff --git a/src/libANGLE/renderer/metal/mtl_utils.mm b/src/libANGLE/renderer/metal/mtl_utils.mm
index 59da3a5..fe0c3f8 100644
--- a/src/libANGLE/renderer/metal/mtl_utils.mm
+++ b/src/libANGLE/renderer/metal/mtl_utils.mm
@@ -52,7 +52,7 @@
 std::string GetMetalCaptureFile()
 {
 #if !ANGLE_METAL_FRAME_CAPTURE_ENABLED
-    return "";
+    return {};
 #else
     auto var                   = std::getenv("ANGLE_METAL_FRAME_CAPTURE_FILE");
     const std::string filePath = var ? var : "";