summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/MicrosoftMangle.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Emit virtual/deleting destructors properly with -cxx-abi microsoft, PR15058Timur Iskhodzhanov2013-02-131-5/+60
| | | | llvm-svn: 175045
* Add OpenCL samplers as Clang builtin types and check sampler related ↵Guy Benyei2013-02-071-0/+1
| | | | | | restrictions. llvm-svn: 174601
* Implement OpenCL event_t as Clang builtin type, including event_t related ↵Guy Benyei2013-01-201-0/+1
| | | | | | OpenCL restrictions (OpenCL 1.2 spec 6.9) llvm-svn: 172973
* Re-commit r170428 changes with Linux style file endings.Guy Benyei2012-12-181-0/+7
| | | | | | Add OpenCL images as clang builtin types. llvm-svn: 170432
* Revert changes from r170428, as I accidentally changed the line endings of ↵Guy Benyei2012-12-181-1725/+1718
| | | | | | these files to Windows style. llvm-svn: 170431
* Add OpenCL images as clang builtin types.Guy Benyei2012-12-181-1718/+1725
| | | | llvm-svn: 170428
* Pull the Attr iteration parts out of Attr.h, so including DeclBase.h doesn't ↵Benjamin Kramer2012-12-011-1/+1
| | | | | | | | | pull in all the generated Attr code. Required to pull some functions out of line, but this shouldn't have a perf impact. No functionality change. llvm-svn: 169092
* [-cxx-abi microsoft] Also spill the argument-back-references context when ↵Timur Iskhodzhanov2012-11-291-3/+7
| | | | | | mangling templates llvm-svn: 168862
* Fix PR14413 - incorrect mangling of anonymous namespaces with -cxx-abi microsoftTimur Iskhodzhanov2012-11-261-1/+1
| | | | llvm-svn: 168583
* Fix PR14321, a crash when Clang is built with GCC 4.7 at -O1 or greater.Matt Beaumont-Gay2012-11-161-1/+1
| | | | | | | | | GCC 4.7 reuses stack slots fairly aggressively, which exposes more temporary lifetime bugs. No new test, this was caught by the existing CodeGenCXX/mangle-ms-templates.cpp. llvm-svn: 168124
* [ms] Make mangleIntegerLiteral less aware of exact type of the literal.Nico Weber2012-11-131-7/+8
| | | | | | | | | | | | | Integer literal mangling does not actually depend on exact type of the literal. This will simplify calling mangleIntegerLiteral when literal type is not known, for example, when sizes or offsets are mangled as integer literals. Also, call mangleNumber instead of directly printing mangled values of 0/1, to avoid this knowledge from being in multiple places. Patch from Evgeny Eltsin! llvm-svn: 167878
* [ms] Implement int64_t version of mangleNumber() in terms of the APSInt version.Nico Weber2012-11-091-24/+8
| | | | | | No intended functionality change. llvm-svn: 167602
* [Windows] Fix mangling of number literal '0'Nico Weber2012-11-081-2/+2
| | | | | | | | | | Do this by making the mangleNumber(APSInt) overload look like the int64_t version. (The latter should probably just delegate to the former). Test from Evgeny Eltsin! llvm-svn: 167599
* Make DiagnosticOptions intrusively reference-counted, and make sureDouglas Gregor2012-10-231-0/+1
| | | | | | | the various stakeholders bump up the reference count. In particular, the diagnostics engine now keeps the DiagnosticOptions object alive. llvm-svn: 166508
* When mangling an APSInt with the ms abi, make sure to look at all nibbles.Nico Weber2012-10-031-1/+1
| | | | | | Currently, it's ignored if the number of set bits isn't divisible by 4. llvm-svn: 165116
* While I'm here, resync a %select with the enum definition it selects on.Nico Weber2012-10-031-2/+2
| | | | | | | | | | | | | * nullptr used to be mapped to ERROR, now mapped to nullptr * integral was missing * expressions now have their own error message, so they won't reach this. Map them to ERROR. Note that clang usually crashes before emitting this diagnostic anyway (see PR13984), so this change alone doesn't have an observable effect. It makes the code more correct though. llvm-svn: 165095
* Move expression mangling in the microsoft mangler to its own function.Nico Weber2012-10-031-10/+21
| | | | | | | | | | This matches what's done in ItaniumMangle and makes it a bit easier to implement mangling for more expressions. Also use the slightly nicer "not yet implemented" error message from there. No functionality change (except for the different error message). llvm-svn: 165093
* Replace a default: with an explicit list of cases. No functionality change.Nico Weber2012-10-031-1/+6
| | | | llvm-svn: 165091
* Fix PR13444 - wrong mangling of "const char * const *" and friends with ↵Timur Iskhodzhanov2012-09-031-66/+76
| | | | | | "-cxx-abi microsoft" llvm-svn: 163110
* Normalize line endings of r163013 (part 2).Joao Matos2012-08-311-7/+7
| | | | llvm-svn: 163032
* Improved MSVC __interface support by adding first class support for it, ↵Joao Matos2012-08-311-6/+7
| | | | | | instead of aliasing to "struct" which had some incorrect behaviour. Patch by David Robins. llvm-svn: 163013
* Use cast<> instead of static_cast. Patch by Timur Iskhodzhanov!John McCall2012-08-271-7/+7
| | | | llvm-svn: 162683
* Fix the mangling of function pointers in the MS ABI.John McCall2012-08-251-2/+6
| | | | | | Patch by Timur Iskhodzhanov! llvm-svn: 162638
* Remove an outdated comment; add one test to compare function pointer and ↵Timur Iskhodzhanov2012-07-261-2/+0
| | | | | | block mangling llvm-svn: 160783
* Fix PR13389 (Wrong mangling of return type qualifiers with -cxx-abi microsoft)Timur Iskhodzhanov2012-07-261-2/+9
| | | | llvm-svn: 160780
* Add a FIXME to revisit the performance of BackRefMap laterTimur Iskhodzhanov2012-07-251-0/+2
| | | | llvm-svn: 160709
* Fix PR13207 (Mangling of templates with back references when using -cxx-abi ↵Timur Iskhodzhanov2012-07-241-10/+55
| | | | | | microsoft) llvm-svn: 160667
* [Windows] Use thiscall as the default calling convention for class methods. ↵Timur Iskhodzhanov2012-07-121-2/+10
| | | | | | PR12785 llvm-svn: 160121
* [Windows] Improve mangling of templates when back references are presentTimur Iskhodzhanov2012-06-261-0/+7
| | | | llvm-svn: 159234
* [Windows] Fix mangling of repeated types in the presence of bool and ↵Timur Iskhodzhanov2012-06-231-22/+34
| | | | | | function pointers PR13176,PR13177 llvm-svn: 159059
* MicrosoftMangle: Fix mangling of integral constant non-type template ↵Charles Davis2012-06-231-1/+10
| | | | | | arguments in a class specialization. llvm-svn: 159056
* MS: Mangle rvalue references and nullptr_t, and produce back-references whenRichard Smith2012-06-211-15/+48
| | | | | | appropriate. Patch by João Matos! llvm-svn: 158895
* Remove the trailing backslash from the comment to remove the warning aboutKaelyn Uhrain2012-06-131-1/+1
| | | | | | a multi-line comment, fixing builds with e.g. -Werror=comment enabled. llvm-svn: 158406
* Grab bag of Microsoft Mangler fixes:Charles Davis2012-06-131-169/+425
| | | | | | | | | | - Support mangling virtual function tables (base tables need work on the ManglerContext interface). - Correct mangling of local scopes (i.e. functions and C++ methods). - Replace every llvm_unreachable() for actually-reachable code with a diagnostic. llvm-svn: 158376
* PR13047: Fix various abuses of clang::Type in the MS mangler, to make it workRichard Smith2012-06-081-12/+10
| | | | | | in the presence of type sugar. llvm-svn: 158184
* Plug a long standing memory leak in TemplateArgument.Benjamin Kramer2012-06-071-1/+1
| | | | | | | | | | | | | | | The integral APSInt value is now stored in a decomposed form and the backing store for large values is allocated via the ASTContext. This way its not leaked as TemplateArguments are never destructed when they are allocated in the ASTContext. Since the integral data is immutable it is now shared between instances, making copying TemplateArguments a trivial operation. Currently getting the integral data out of a TemplateArgument requires creating a new APSInt object. This is cheap when the value is small but can be expensive if it's not. If this turns out to be an issue a more efficient accessor could be added. llvm-svn: 158150
* PR13022: cope with parenthesized function types in MS name mangling.Richard Smith2012-06-041-1/+1
| | | | llvm-svn: 157959
* Use fewer temporaries mangling APSInt objects. The performance differenceCharles Davis2012-05-291-6/+7
| | | | | | | is negligible, but it makes the code clearer. Based on a suggestion by Jordy Rose. llvm-svn: 157601
* Fix mangling of integral template arguments between 1 and 10. Add a test caseCharles Davis2012-05-281-2/+2
| | | | | | for this. Reported by Timur Iskhodzhanov. llvm-svn: 157583
* Fix Lang's fix. This should fix the tests for +Asserts builds.Charles Davis2012-05-281-1/+1
| | | | llvm-svn: 157561
* Fix call to APSInt constructor - it doesn't take an initial value, just aLang Hames2012-05-271-3/+4
| | | | | | | | bitwidth and signedness. Also rename the variable to reflect its purpose. No test case - discovered during random code exploration. llvm-svn: 157547
* Mangle template instantiations properly (as of VC 7.x) when compiling forCharles Davis2012-05-261-7/+132
| | | | | | | the Microsoft Visual C++ ABI. Currently limited to type and integral non-type arguments. Based on a patch by Timur Iskhodzhanov! llvm-svn: 157524
* When mangling a synthetic function declaration, we might not haveJohn McCall2012-05-011-5/+9
| | | | | | | type-source information for its parameters. Don't crash when mangling them in the MS C++ ABI. Patch by Timur Iskhodzhanov! llvm-svn: 155879
* Unify naming of LangOptions variable/get function across the Clang stack ↵David Blaikie2012-03-111-2/+2
| | | | | | | | | | (Lex to AST). The member variable is always "LangOpts" and the member function is always "getLangOpts". Reviewed by Chris Lattner llvm-svn: 152536
* Add Microsoft mangling of constructors and destructors. Patch by Dmitry!Michael J. Spencer2011-12-011-6/+10
| | | | llvm-svn: 145581
* Macro metaprogramming for builtin types.John McCall2011-10-181-7/+7
| | | | llvm-svn: 142420
* Add a new placeholder type to represent "unbridged"John McCall2011-10-171-0/+1
| | | | | | | | casts in ARC. No semantic analysis yet. llvm-svn: 142208
* Provide half floating point support as a storage only type.Anton Korobeynikov2011-10-141-0/+1
| | | | | | Lack of half FP was a regression compared to llvm-gcc. llvm-svn: 142016
* Support for C1x _Atomic specifier (see testcase). This is primarily being ↵Eli Friedman2011-10-061-0/+4
| | | | | | | | committed at the moment to help support C++0x <atomic>, but it should be a solid base for implementing the full specification of C1x _Atomic. Thanks to Jeffrey Yasskin for the thorough review! llvm-svn: 141330
* Rename Diagnostic to DiagnosticsEngine as per issue 5397David Blaikie2011-09-251-2/+2
| | | | llvm-svn: 140478
OpenPOWER on IntegriCloud