aboutsummaryrefslogtreecommitdiff
path: root/gcc/go/gofrontend
AgeCommit message (Collapse)AuthorFilesLines
2020-11-30compiler: improve error messages for expected curly braceIan Lance Taylor2-4/+4
For golang/go#17328 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/273890
2020-11-30compiler: use correct assignment order for type assertionsIan Lance Taylor2-3/+27
For "a, b := v.(T)" we must set a before b. For golang/go#13433 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/273906
2020-11-30compiler: always use int context for index valuesIan Lance Taylor2-27/+6
For golang/go#14844 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/273889
2020-11-30compiler: better error messages for missing interface methodIan Lance Taylor2-1/+10
For golang/go#10700 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/273886
2020-11-30compiler: improve error for import of non-stringIan Lance Taylor2-2/+2
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/273867
2020-11-28compiler: avoid follow-on errors for bad typesIan Lance Taylor4-8/+82
Mark bad types as erroneous, to avoid generating further errors. This required some code using array types to check for errors. For https://golang.org/issue/19880 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/273626
2020-11-28compiler: better error for x, x := 1, 2Ian Lance Taylor2-4/+12
Was assign.go:59:28: error: multiple assignments to x Now assign.go:59:28: error: ‘x’ repeated on left side of := Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/273546
2020-11-25compiler: avoid silent truncation for string(1 << 32)Ian Lance Taylor2-2/+10
In the conversion of a constant integer to a string type, the value of the constant integer was being silently truncated from unsigned long to unsigned int, producing the wrong string value. Add an explicit overflow check to avoid this problem. For golang/go#42790 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/272611
2020-11-23log/syslog: correct asm name for C functionIan Lance Taylor1-1/+1
Patch from Rainer Orth. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/272259
2020-11-20libgo: update to Go 1.15.5 releaseIan Lance Taylor1-1/+1
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/272146
2020-11-20compiler, libgo: change mangling schemeIan Lance Taylor12-713/+986
Overhaul the mangling scheme to avoid ambiguities if the package path contains a dot. Instead of using dot both to separate components and to mangle characters, use dot only to separate components and use underscore to mangle characters. For golang/go#41862 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/271726
2020-11-17cmd/go, cmd/cgo: update gofrontend mangling checksIan Lance Taylor1-1/+1
This is a port of two patches in the master repository. https://golang.org/cl/259298 cmd/cgo: split gofrontend mangling checks into cmd/internal/pkgpath This is a step toward porting https://golang.org/cl/219817 from the gofrontend repo to the main repo. Note that this also corrects the implementation of the v2 mangling scheme to use ..u and ..U where appropriate. https://golang.org/cl/259299 cmd/go: use cmd/internal/pkgpath for gccgo pkgpath symbol For golang/go#37272 For golang/go#41862 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/270637
2020-11-10libgo: update to Go 1.15.4 releaseIan Lance Taylor1-1/+1
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/268177
2020-10-28libgo: handle linking to NetBSD's versioned symbolsNikhil Benesch1-1/+1
On NetBSD, for backwards compatibility, various libc symbols are renamed to a symbol with a version suffix. For example, this is the (abbreviated) definition of sigaction: int sigaction(...) __asm__ ("__sigaction14") This poses a challenge for libgo, which attempts to link sigaction by way of an "//extern" comment: //extern sigaction func sigaction(...) This results in a reference to the deprecated compatibility symbol "sigaction", rather than the desired "__sigaction14" symbol. This patch introduces a new "//extern-sysinfo" comment to handle this situation. The new mklinknames.awk script scans a package for these comments and outputs a "//go:linkname" directive that links the wrapper to the correct versioned symbol, as determined by parsing the __asm__ annotation on the function's declaration in gen-sysinfo.go. For now, only the following packages are scanned by mklinknames.awk: os os/user runtime syscall gotools/: * Makefile.am (check-runtime): Add runtime_linknames.go to --extrafiles. * Makefile.in: Regenerate. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/265125
2020-10-28syscall: don't build libcall_bsd.go on solarisIan Lance Taylor1-1/+1
This new file was based on master sources that are built for *BSD but not Solaris Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/266017
2020-10-27libgo: update to Go 1.15.3 releaseIan Lance Taylor1-1/+1
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/265717
2020-10-27compiler, go/internal/gccgoimporter: export notinheap annotationIan Lance Taylor5-9/+28
This is the gofrontend version of https://golang.org/cl/259297. This is required now because that change is in the 1.15.3 release. This requires changing the go/internal/gccgoimporter package, to skip the new annotation. This change will need to be ported to the gc and x/tools repos. For golang/go#41761 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/265258
2020-10-27compiler: remove unused Type::in_heap_ member variableIan Lance Taylor2-3/+1
This member variable was added in https://golang.org/cl/46490, but it was never used. The code uses Named_type::in_heap_ instead. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/265257
2020-10-26syscall: import additional BSD-specific syscall wrappersNikhil Benesch1-1/+1
Import additional code from upstream for handing system calls on BSD systems. This makes the syscall package on NetBSD complete enough to compile the standard library. Updates golang/go#38538. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/265123
2020-10-23net/http/cgi: merge upstream changes to default env varsNikhil Benesch1-1/+1
Incorporate upstream modifications to the cgi package's set of rules about which environment variables should be inherited by child processes by default on each platform. In particular this permits tests to pass on NetBSD by preserving the value of the LD_LIBRARY_PATH environment variable. This is a partial backport of the following upstream CLs: https://golang.org/cl/263802 https://golang.org/cl/263577 https://golang.org/cl/254740 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/264097
2020-10-21syscall: only compile ptrace varargs shim on LinuxNikhil Benesch1-1/+1
Only compile the __go_ptrace varargs shim on Linux to avoid compilation failures on some other platforms. The C ptrace function is not entirely portable (e.g., NetBSD has `int data` instead of `void* data`), and so far Linux is the only platform that needs the varargs shim. Additionally, make the types in the ptrace and raw_ptrace function declarations match. This makes it more clear that the only difference between the two is that calls via the former are allowed to block while calls via the latter are not. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/263517
2020-10-21syscall: import upstream code for BSD sockets and sysctlsNikhil Benesch1-1/+1
Import some missing upstream code for BSD sockets and sysctls and adapt it for gccgo. Updates golang/go#38538. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/261137
2020-10-20libgo: adjust NetBSD-specific types for stable syscall APINikhil Benesch1-1/+1
The backwards-compatibility guarantees of the syscall package require some munging of the C API inferred by mksysinfo.sh. Specifically, the RTM_RESOLVE constant must be added if it is missing, and the stat_t struct must use the suffix "timespec" rather than "tim" for its time-related fields. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/263519
2020-10-20syscall: remove Sendfile on NetBSDNikhil Benesch1-1/+1
NetBSD does not support the sendfile syscall. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/263521
2020-10-15compiler: don't export function type parameter namesIan Lance Taylor2-3/+7
When hashing a function type the parameter names are ignored. Therefore, we should not write them into the export data. Otherwise, minor changes in the order in which we process the types can cause the export data to change uselessly, leading to unnecessary rebuilds. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/262818
2020-10-15runtime: use correct types in __go_ptrace shimNikhil Benesch1-1/+1
Make the types of the addr and data arguments in the __go_ptrace shim match the types declared in Go and the types declared by the C ptrace function, i.e., void*. This avoids a warning about an implicit int-to-pointer cast on some platforms. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/262340
2020-10-15libgo: correct Makefile typo in path to x/net/route packageNikhil Benesch1-1/+1
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/262342
2020-10-15compiler: export type for string and bool constantsIan Lance Taylor3-39/+53
Also consolidate the identical code for constant type export into a pair of static methods. Fixes golang/go#35739 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/262437
2020-10-14libgo: print reason code if throwing unwind exception failsNikhil Benesch1-1/+1
Calls to _Unwind_RaiseException and friends *can* return due to bugs in libgo or memory corruption. When this occurs, print a message to stderr with the reason code before aborting to aid debugging. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/261257
2020-10-14libgo: export NetBSD-specific types in mksysinfo.shNikhil Benesch1-1/+1
The syscall package depends on many NetBSD-specific types on NetBSD. Teach mksysinfo.sh to export these types. This alone is not sufficient to get the syscall package to compile on NetBSD, but it's a start. Note that the IfMsgHdr type is recapitalized to IfMsghdr, which requires changes in the AIX port. The new capitalization is what's used by upstream in existing NetBSD-specific code and is more consistent with the capitalization of other C structs with the "hdr" suffix. Updates golang/go#38538. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/261739
2020-10-14runtime: correct semaphore implementation on netbsdNikhil Benesch1-1/+1
NetBSD's semaphores use the underlying lighweight process mechanism (LWP) on NetBSD, rather than pthreads. This means the m.prodcid needs to be set to the LWP ID rather than the pthread ID in order for unpark notifications to get sent to the right place. Introduce a new getProcID() method that selects the correct ID for the platform. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/261742
2020-10-13runtime: populate signal PC on NetBSDNikhil Benesch1-1/+1
The NetBSD libc provides an architecture-independent macro that can extract the PC from a ucontext struct. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/261740
2020-10-13syscall: port fix for netbsd unix sockets from upstreamNikhil Benesch1-1/+1
NetBSD does not include the null terminator when in its reported socket length. Port the upstream bugfix for the issue (#6627). This was likely missed during the usual upstream merge because the gc and gccgo socket implementations have diverged quite a bit. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/261741
2020-10-13reflect: ensure uniqueness of type descriptors on AIX.Clément Chigot1-1/+1
On AIX, duplication of type descriptors can occur if one is declared in the libgo and one in the Go program being compiled. The AIX linker isn't able to merge them together as Linux one does. One solution is to always load libgo first but that needs a huge mechanism in gcc core. Thus, this patch ensures that the duplication isn't visible for the end user. In reflect and internal/reflectlite, the comparison of rtypes is made on their name and not only on their addresses. In reflect, toType() function is using a canonicalization map to force rtypes having the same rtype.String() to return the same Type. This can't be made in internal/reflectlite as it needs sync package. But, for now, it doesn't matter as internal/reflectlite is not widely used. Fixes golang/go#39276 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/260158
2020-10-07libgo/configure: remove -fno-section-anchors for AIXClément Chigot1-1/+1
This option is no longer needed. There is no crash without it since at least gcc-9. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/260157
2020-10-07libgo: handle go1.10+ correctly in match.shNikhil Benesch1-1/+1
match.sh was not correctly handling build constraints for Go versions that have a two-digit suffix, like "go1.10". The same issue will arise with Go 1.100, but that is a long ways off. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/260077
2020-10-06compiler: avoid undefined behavior in Import::readNikhil Benesch4-10/+11
For some implementations of Stream, advancing the stream will invalidate the previously-returned peek buffer. Copy the peek buffer before advancing in Import::read to avoid this undefined behavior. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/259438
2020-10-05gofrontend: correct file reading logic in Stream_from_fileNikhil Benesch2-5/+5
The implementation of Stream_from_file mishandled several cases: * It reversed the check for whether bytes were already available in the peek buffer. * It considered positive return values from lseek to be an error, when only a -1 return value indicates an error. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/259437
2020-10-01compiler: set varargs correctly for type of method expressionIan Lance Taylor2-3/+7
Fixes golang/go#41737 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/258977
2020-09-30libgo: add 32-bit RISC-V (RV32) supportMaciej W. Rozycki1-1/+1
Add support for the 32-bit RISC-V (RV32) ISA matching the 64-bit RISC-V (RV64) port except for async preemption added as a stub only. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/251179
2020-09-28net: add hurd build tagIan Lance Taylor1-1/+1
Patch from Svante Signell. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/257857
2020-09-24runtime: remove __go_ptrace on AIXClément Chigot1-1/+1
AIX ptrace syscalls doesn't have the same semantic than the glibc one. The syscall package is already handling it correctly so disable the new __go_ptrace C function for AIX. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/256777
2020-09-23libgo: update to Go1.15.2 releaseIan Lance Taylor1-1/+1
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/256618
2020-09-22syscall: fix TestForeground for AIXClément Chigot1-1/+1
Syscall function can't be used on AIX. Therefore, Ioctl in TestForeground must call raw_ioctl. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/175080
2020-09-22syscall: remove ptrace syscall on ppc64Clément Chigot1-1/+1
ptrace is available only for 32 bits programs. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/252558
2020-09-22runtime, net: fix build errors on AIXClément Chigot1-1/+1
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/235158
2020-09-22compiler: call runtime.eqtype for non-interface type switch on aixClément Chigot3-12/+21
All type switch clauses must call runtime.eqtype if the linker isn't able to merge type descriptors pointers. Previously, only interface-type clauses were doing it. Updates golang/go#39276 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/255202
2020-09-21compiler: finalize methods for type aliases of struct typesIan Lance Taylor3-21/+35
Previously we would finalize the methods of the alias type itself, but since its a type alias we really need to finalize the methods of the aliased type. Also, handle method expressions of unnamed struct types. Test case is https://golang.org/cl/251168. Fixes golang/go#38125 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/251279
2020-09-21go/internal/gccgoimporter: recognize aixbigafMagic archivesClément Chigot1-1/+1
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/255201
2020-09-21libgo: don't put golang.org packages in zstdpkglist.goIan Lance Taylor1-1/+1
This ensures that internal/goroot.IsStandardPackage does not treat golang.org packages as being in the standard library. For golang/go#41368 Fixes golang/go#41499 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/256319