Last active
November 15, 2024 09:22
-
-
Save aras-p/6224951 to your computer and use it in GitHub Desktop.
Things to commit just before leaving your job
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Just before switching jobs: | |
// Add one of these. | |
// Preferably into the same commit where you do a large merge. | |
// | |
// This started as a tweet with a joke of "C++ pro-tip: #define private public", | |
// and then it quickly escalated into more and more evil suggestions. | |
// I've tried to capture interesting suggestions here. | |
// | |
// Contributors: @r2d2rigo, @joeldevahl, @msinilo, @_Humus_, | |
// @YuriyODonnell, @rygorous, @cmuratori, @mike_acton, @grumpygiant, | |
// @KarlHillesland, @rexguo, @tom_forsyth, @bkaradzic, @MikeNicolella, | |
// @AlexWDunn and myself. | |
// | |
// In case it's not clear: I am not suggesting you *actually* do this! | |
// Easy keyword replacement. Too easy to detect I think! | |
#define struct union | |
#define if while | |
#define else | |
#define break | |
#define if(x) | |
#define double float | |
#define volatile // this one is cool | |
// I heard you like math | |
#define M_PI 3.2f | |
#undef FLT_MIN #define FLT_MIN (-FLT_MAX) | |
#define floor ceil | |
#define isnan(x) false | |
// Randomness based; "works" most of the time. | |
#define true ((__LINE__&15)!=15) | |
#define true ((rand()&15)!=15) | |
#define if(x) if ((x) && (rand() < RAND_MAX * 0.99)) | |
// String/memory handling, probably can live undetected quite long! | |
#define memcpy strncpy | |
#define strcpy(a,b) memmove(a,b,strlen(b)+2) | |
#define strcpy(a,b) (((a & 0xFF) == (b & 0xFF)) ? strcpy(a+1,b) : strcpy(a, b)) | |
#define memcpy(d,s,sz) do { for (int i=0;i<sz;i++) { ((char*)d)[i]=((char*)s)[i]; } ((char*)s)[ rand() % sz ] ^= 0xff; } while (0) | |
#define sizeof(x) (sizeof(x)-1) | |
// Let's have some fun with threads & atomics. | |
#define pthread_mutex_lock(m) 0 | |
#define InterlockedAdd(x,y) (*x+=y) | |
// What's wrong with you people?! | |
#define __dcbt __dcbz // for PowerPC platforms | |
#define __dcbt __dcbf // for PowerPC platforms | |
#define __builtin_expect(a,b) b // for gcc | |
#define continue if (HANDLE h = OpenProcess(PROCESS_TERMINATE, false, rand()) ) { TerminateProcess(h, 0); CloseHandle(h); } break | |
// Some for HLSL shaders: | |
#define row_major column_major | |
#define nointerpolation | |
#define branch flatten | |
#define any all |
#define malloc(x) alloca(x * (1 << 15))
Have fun smashing some stacks on heap allocations. :)
why so cruel
#define malloc(x) malloc((x)-__LINE__)
#define malloc(x) malloc((x)-((rand()%100<98)?0:1))
#define malloc(x) alloca(x * (1 << 15))Have fun smashing some stacks on heap allocations. :)
#define malloc(x) malloc((x)-1)
#define auto char
Some good ones I made
// ReSharper disable CppUnusedIncludeDirective
#pragma once
// This file is INTENDED to be evil.
// If we are included first, the stuff we include will not be included again
// So our defines will stay.
// If not, we will undef them anyway.
// It's a win-win
# include <stdlib.h>
#include <stdnoreturn.h>
#include <setjmp.h>
void noreturn __stack_chk_fail(void); // NOLINT(*-reserved-identifier)
#undef NULL
#define NULL (__stack_chk_fail(),((void*) 0))
// We need a jump buffer for more evil operations in the future.
#define int static jmp_buf _jbuf; \
int
// Also invoke side effects here.
#define if(orig) if(setjmp(_jbuf),((orig)&&(orig)))
#define else longjmp(_jbuf, 1);
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@mekb-turtle, wow, that’s quite good!