+ This website will teach you C++ Itanium Name Mangling. Itanium-style
+ mangling is used on a lot of platforms, including Linux.
+
+
+ Since C++ mangling (the entire ABI) is considered stable today, you
+ will be able to use this knowledge forever!
+
+
+ This website consists of many lessons, each teaching you something new
+ about C++ Itanium Mangling. There will be many interactive quizzes at
+ each step to test your knowledge.
+
+ Welcome to the interactive Itanium C++ mangling learning website! In
+ this course you will learn everything there is to know about Itanium
+ C++ Mangling, especially the things you've never wanted to know.
+
+
+ For every exercise, there will be a small quiz. If you complete the
+ quiz, you can continue
+
+
+
To complete the first quiz, press the button below.
+
+
+
+
+
+ Congrats, you just completed your first challenge! Good job. So,
+ let's start with the mangling. Before diving too deep into the
+ innards of Itanium Mangling, let's get more familiar with the way
+ this works by mangling something trivial: a C function. C functions
+ are traditionally not mangled (*this is not always fully true on all
+ platforms). The simplest possible C function takes no arguments and
+ returns no value. For C it doesn't actually matter what the
+ parameters or return value are, since there is no mangling.
+
+
+ To reference this function in C++, we use an
+ extern "C" block.
+
+
+extern "C" {
+ void hello() {}
+}
+
+
+ Because no mangling is applied to the identifier at all, the symbol
+ for this function will simply be hello.
+
+
+ Similarly, a more complex example would be the following function:
+