summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/MicrosoftMangle.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* Removing a bunch of dead returns/breaks after llvm_unreachables.David Blaikie2011-09-231-9/+0
| | | | llvm-svn: 140407
* Switch assert(0/false) llvm_unreachable.David Blaikie2011-09-231-38/+39
| | | | llvm-svn: 140367
* remove unneeded llvm:: namespace qualifiers on some core types now that ↵Chris Lattner2011-07-231-27/+27
| | | | | | | | LLVM.h imports them into the clang namespace. llvm-svn: 135852
* Implement a new type node, UnaryTransformType, designed to represent aAlexis Hunt2011-05-241-0/+4
| | | | | | | | type that turns one type into another. This is used as the basis to implement __underlying_type properly - with TypeSourceInfo and proper behavior in the face of templates. llvm-svn: 132017
* Remove comments about __int8 and friends from the mangler. Turns out we don'tCharles Davis2011-04-291-7/+0
| | | | | | | actually have to implement them, since in modern versions of MSVC they're aliases to the standard C types. llvm-svn: 130509
* Make yet another placeholder type, this one marking that an expression is a ↵John McCall2011-04-261-0/+1
| | | | | | | | | | | bound member function, i.e. something of the form 'x.f' where 'f' is a non-static member function. Diagnose this in the general case. Some of the new diagnostics are probably worse than the old ones, but we now get this right much more universally, and there's certainly room for improvement in the diagnostics. llvm-svn: 130239
* Support for C++11 (non-template) alias declarations.Richard Smith2011-04-151-1/+1
| | | | llvm-svn: 129567
* fix a bunch of comment typos found by codespell. Patch byChris Lattner2011-04-151-1/+1
| | | | | | Luis Felipe Strano Moraes! llvm-svn: 129559
* Implement ARM pcs attribute. Basically it's another way of calling ↵Anton Korobeynikov2011-04-141-0/+2
| | | | | | | | | | convention selection (AAPCS or AAPCS+VFP), similar to fastcall / stdcall / whatevercall seen on x86. In particular, all library functions should always be AAPCS regardless of floating point ABI used. llvm-svn: 129534
* Basic, untested implementation for an "unknown any" type requested by LLDB.John McCall2011-04-071-0/+1
| | | | | | | | | | | | The idea is that you can create a VarDecl with an unknown type, or a FunctionDecl with an unknown return type, and it will still be valid to access that object as long as you explicitly cast it at every use. I'm still going back and forth about how I want to test this effectively, but I wanted to go ahead and provide a skeletal implementation for the LLDB folks' benefit and because it also improves some diagnostic goodness for placeholder expressions. llvm-svn: 129065
* Revert "Add CC_Win64ThisCall and set it in the necessary places."Tilmann Scheller2011-03-021-3/+0
| | | | | | This reverts commit 126863. llvm-svn: 126886
* Add CC_Win64ThisCall and set it in the necessary places.Tilmann Scheller2011-03-021-0/+3
| | | | llvm-svn: 126863
* Implement the C++0x deduced 'auto' feature.Richard Smith2011-02-201-3/+4
| | | | | | This fixes PR 8738, 9060 and 9132. llvm-svn: 126069
* For consistency, use llvm::raw_ostream in the rest of the mangle api.Rafael Espindola2011-02-111-19/+17
| | | | llvm-svn: 125360
* Use raw_ostream instead of raw_svector_ostream.Rafael Espindola2011-02-111-8/+8
| | | | llvm-svn: 125330
* Use raw_svector_ostream in more places in the mangler.Rafael Espindola2011-02-101-13/+12
| | | | llvm-svn: 125321
* Change QualType::getTypePtr() to return a const pointer, then change aJohn McCall2011-01-191-1/+1
| | | | | | thousand other things which were (generally inadvertantly) relying on that. llvm-svn: 123814
* Start implementing support for substitution into pack expansions thatDouglas Gregor2011-01-141-0/+6
| | | | | | | | | | | | | | | | | involve template parameter packs at multiple template levels that occur within the signatures members of class templates (and partial specializations thereof). This is a work-in-progress that is deficient in several ways, notably: - It only works for template type parameter packs, but we need to also support non-type template parameter packs and template template parameter packs. - It doesn't keep track of the lengths of the substituted argument packs in the expansion, so it can't properly diagnose length mismatches. However, this is a concrete step in the right direction. llvm-svn: 123425
* Move name mangling support from CodeGen to AST. In thePeter Collingbourne2011-01-131-0/+1184
process, perform a number of refactorings: - Move MiscNameMangler member functions to MangleContext - Remove GlobalDecl dependency from MangleContext - Make MangleContext abstract and move Itanium/Microsoft functionality to their own classes/files - Implement ASTContext::createMangleContext and have CodeGen use it No (intended) functionality change. llvm-svn: 123386
OpenPOWER on IntegriCloud