Skip to content

Instantly share code, notes, and snippets.

@dcci
dcci / gist:f83538d46dbcde9457bc663a2218c97e
Created June 23, 2016 21:00
Replacing malloc() on Windows.
#include <limits.h>
#include <malloc.h>
#include <new.h>
#include <windows.h>
#include <stddef.h>
#include <stdio.h>
namespace {
const size_t kWindowsPageSize = 4096;
const size_t kMaxWindowsAllocation = INT_MAX - kWindowsPageSize;
@dcci
dcci / gist:c737c11cc58c0c13bffac3dab30c6002
Created April 9, 2016 00:25
DILocalVariable memory layout
*** Dumping AST Record Layout
0 | class llvm::DILocalVariable
0 | class llvm::DIVariable (base)
0 | class llvm::DINode (base)
0 | class llvm::MDNode (base)
0 | class llvm::Metadata (base)
0 | const unsigned char SubclassID
1:0-1 | unsigned int Storage
2 | unsigned short SubclassData16
4 | unsigned int SubclassData32
[davide@localhost bin]$ g++ blah.cpp -o blah
blah.cpp: In function ‘int main()’:
blah.cpp:10:9: error: ‘union’ tag used in naming ‘struct G<int>’ [-fpermissive]
union G<int> foo;
^
blah.cpp:4:7: note: ‘struct G<int>’ was previously declared here
class G {
^
[davide@localhost bin]$ cat blah.cpp
#include <stdio.h>
@dcci
dcci / gist:efaea9678788d74769a4
Created December 22, 2015 16:12
dlopen() deadlock
#include <assert.h>
#include <link.h>
#include <dlfcn.h>
#include <stdio.h>
#include <pthread.h>
static int
callback(struct dl_phdr_info *info, size_t size, void *data)
{
void *handle;
@dcci
dcci / gist:27a191c991052a1b71cb
Created October 17, 2015 01:02
Go home clang, you're drunk.
% cat template.cpp
template<class T>
class X {
T f(T x) { return x; }
T foo(void);
};
template<class T>
T X::foo(void)
@dcci
dcci / gist:8910a17770e46ecce3dc
Last active October 17, 2015 01:03
random bit flip
[1984/2575] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExprScalar.cpp.o
FAILED: /usr/bin/CC -DCLANG_ENABLE_ARCMT -DCLANG_ENABLE_OBJC_REWRITER -DCLANG_ENABLE_STATIC_ANALYZER -DGTEST_HAS_RTTI=0 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -std=c++11 -fcolor-diagnostics -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -Itools/clang/lib/CodeGen -I../tools/clang/lib/CodeGen -I../tools/clang/include -Itools/clang/include -Iinclude -I../include -I/usr/local/include -fno-exceptions -fno-rtti -MMD -MT tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExprScalar.cpp.o -MF tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExprScalar.cpp.o.d -o tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExprScalar.