Skip to content

Instantly share code, notes, and snippets.

// RUN: rm -rf %t && split-file %s %t
// RUN: llvm-mc -filetype=obj -triple=x86_64-w64-mingw32 %t/lib.s -o %t/lib.o
// RUN: ld.bfd -m i386pep %t/lib.o --dll -o %t/lib.dll --out-implib %t/lib.dll.a @%t/wrap.rsp --entry _dllmain --export-all-symbols
// RUN: llvm-mc -filetype=obj -triple=x86_64-w64-mingw32 %t/main.s -o %t/main.o
// RUN: llvm-mc -filetype=obj -triple=x86_64-w64-mingw32 %t/table.s -o %t/table.o
// RUN: llvm-mc -filetype=obj -triple=x86_64-w64-mingw32 %t/override.s -o %t/override.o
// RUN: ld.bfd -m i386pep %t/main.o %t/table.o %t/override.o %t/lib.dll.a -o %t/bfd_imp.exe @%t/wrap.rsp
// RUN: llvm-readobj --coff-imports --coff-basereloc %t/bfd_imp.exe | FileCheck %s
// RUN: %t/bfd_imp.exe
// RUN: ld.bfd -m i386pep %t/main.o %t/table.o %t/override.o %t/lib.dll -o %t/bfd_dll.exe @%t/wrap.rsp
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp
index 1bd9056cad81..cd84c306348d 100644
--- a/clang/lib/Sema/SemaDeclCXX.cpp
+++ b/clang/lib/Sema/SemaDeclCXX.cpp
@@ -6588,6 +6588,15 @@ void Sema::checkClassLevelDLLAttribute(CXXRecordDecl *Class) {
// seem to be true in practice?
for (Decl *Member : Class->decls()) {
+ // TESTING: inherit dllimport/dllexport to nested class in mingw
+ if (Context.getTargetInfo().getTriple().isOSCygMing() && !getDLLAttr(Member)) {
$ TARGET=x86_64-pc-cygwin ./run_test.sh
x86_64-pc-cygwin-gcc (GCC) 15.0.1 20250406 (experimental)
Copyright (C) 2025 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
no annotation, dll, reference directly
DECLSPEC_OUTER='' DECLSPEC_INNER='' EXTERN='extern'
sv=0x5bad42060 sv(via outer)=0x5bad42060 sv(direct)=0x5bad42060
BLOCKSIZE=100
rm x*.gz
bzcat source.txt.bz2 | split -l $BLOCKSIZE -d --filter='gzip --fast > ${FILE}.gz'
for f in x*.gz; do zcat $f | shuf | gzip --fast > shuf-$f; done
echo shuf-*.gz | gawk -v seed="${RANDOM}" 'BEGIN{srand(seed);} {while(NF) { i=int(rand()*NF)+1; cmd=sprintf("zcat %s", $i); if ((cmd | getline l) > 0) { print l; } else { $i=""; $0=$0; } } }' | gzip > shuf.gz
.stream-item {
margin-bottom: 0px !important;
}
.item-box {
padding: 2px !important;
border-bottom: 1px solid gray;
}
.tweet {
display: flex !important;
flex-direction: column !important;
@kikairoya
kikairoya / hjkl.user.js
Created January 13, 2017 10:59
jjjjjjjjjjjjjjjjjj
(function() {
function _onkeypress(key) {
switch (key.key) {
case "h":
case "H":
window.scrollBy(-100, 0);
return false;
case "j":
case "J":
window.scrollBy(0, 100);
@kikairoya
kikairoya / .emacs_ddskk
Last active October 16, 2015 07:44
ddskkの挙動が気に食わなかった
(when (require 'skk nil t)
(global-set-key (kbd "C-x j") 'skk-auto-fill-mode)
(global-set-key (kbd "C-x C-j") 'skk-auto-fill-mode)
(setq default-input-method "japanese-skk")
(setq skk-egg-like-newline t)
(defun u-skk-ctrlj-force-hiragana ()
(interactive)
(if (and (boundp 'isearch-mode)
isearch-mode)
nil
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.11 (GNU/Linux)
mQENBFVX6JsBCADNgqCiacKJqj9eoMNz55r3OzPlTMU7nwHdfrU+6Vq+iKhDMQwq
rEt77sUqJfzjAn6DzorzhoGPzBH4RJQlYnquWB7ZmO3HG9j+BgBSWGUYYZWcvyvQ
FlDlwk3bgh2mHyWKhuEgFfKXB2pLX1WYkNSJtKGCd3O4OwZJyfT2il78R+6Ffl6k
cvSK9Hkeupu3wuBau5tZC/B1ovMZXycXw2OYNoN9sdnkurQA49kHlq7aX88v0Ug+
cDj0h9wuvuwYSjkNRBdKzl/HVm6j87kOXhCTbb0wZ2+BOhXuD6CMpJ9UlTqUM56T
M+dLL818wcjzPJr+Y70GLHmxW/X51X4VnChlABEBAAG0NFRvbW9oaXJvIEthc2hp
d2FkYSAoa2lrYWlyb3lhKSA8a2lrYWlyb3lhQGdtYWlsLmNvbT6JATgEEwECACIF
// auto convert input and output encoding
// copyright (c) 2014 kikairoya <[email protected]>
// this file can use, redistribute and/or modify under
// Boost Software License 1.0 or GNU GPLv2
//
// usage:
// $ ${something outputs UTF-8,CP932,eucJP} | LANG=ja_JP.eucJP autoconv
// --> converts stdout encoding to eucJP
// $ LANG=ja_JP.UTF-8 autoconv ${something outputs UTF-8,CP932,eucJP}
// --> prints stdout and stderr encoding to UTF-8
/* modified levenshtein distance calculation
This program can be used, redistributed or modified under any of
Boost Software License 1.0, GPL v2 or GPL v3
copyright(c) 2014 kikairoya <[email protected]>
*/
#include <string.h>