aboutsummaryrefslogtreecommitdiff
path: root/gcc/go/gofrontend
diff options
context:
space:
mode:
authorMichael Matloob <matloob@golang.org>2021-02-11 19:28:57 -0500
committerIan Lance Taylor <iant@golang.org>2021-02-12 11:18:32 -0800
commit9769564e7456453e2273071d0faa5aab2554ff78 (patch)
tree3a471e8ee60b7be687ab7501f70379618adcf174 /gcc/go/gofrontend
parentf3d7fd1475eb1ed2b3a39f988b33db176d4f7419 (diff)
downloadgcc-9769564e7456453e2273071d0faa5aab2554ff78.zip
gcc-9769564e7456453e2273071d0faa5aab2554ff78.tar.gz
gcc-9769564e7456453e2273071d0faa5aab2554ff78.tar.bz2
compiler: open byte slice and string embeds using the absolute path
The paths vector contains the names of the files that the embed_files_ map is keyed by. While the code processing embed.FS values looks up the paths in the embed_files_ map, the code processing string and byte slice embeds tries opening the files using their names directly. Look up the full paths in the embed_files_ map when opening them. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/291429
Diffstat (limited to 'gcc/go/gofrontend')
-rw-r--r--gcc/go/gofrontend/MERGE2
-rw-r--r--gcc/go/gofrontend/embed.cc5
2 files changed, 3 insertions, 4 deletions
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE
index 905c6fe..3175ba0 100644
--- a/gcc/go/gofrontend/MERGE
+++ b/gcc/go/gofrontend/MERGE
@@ -1,4 +1,4 @@
-78770fd9c29037dec8b2919c0f02067915c6ad33
+a5d7c4225fbbd06b97db6fa424cc0cb5191082d4
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
diff --git a/gcc/go/gofrontend/embed.cc b/gcc/go/gofrontend/embed.cc
index bea1003..0a7df05 100644
--- a/gcc/go/gofrontend/embed.cc
+++ b/gcc/go/gofrontend/embed.cc
@@ -812,8 +812,7 @@ Gogo::initializer_for_embeds(Type* type,
}
// Each pattern in the embedcfg file maps to a list of file
- // names. For each file name, the embedcfg file records an
- // absolute path. Add those absolute paths to PATHS.
+ // names. Add those file names to PATHS.
for (std::vector<std::string>::const_iterator pf = pp->second.begin();
pf != pp->second.end();
pf++)
@@ -865,7 +864,7 @@ Gogo::initializer_for_embeds(Type* type,
}
std::string data;
- if (!read_file(paths[0].c_str(), loc, &data))
+ if (!read_file(this->embed_files_[paths[0]].c_str(), loc, &data))
return Expression::make_error(loc);
Expression* e = Expression::make_string(data, loc);