summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Add missing MD canonicalization to MS vtable builderReid Kleckner2015-02-251-0/+1
| | | | llvm-svn: 230445
* Remove slow and apparently pointless updating of all identifiers at the startRichard Smith2015-02-251-17/+0
| | | | | | of writing out an AST file. llvm-svn: 230428
* Fold ParseSEHTryBlockCommon() into its only caller. No behavior change.Nico Weber2015-02-251-7/+4
| | | | | | | ParseCXXTryBlockCommon() makes sense because it has two callers due to function try blocks. There are no SEH function try blocks. llvm-svn: 230426
* Wrap clang module files in a Mach-O, ELF, or COFF container.Adrian Prantl2015-02-2512-36/+285
| | | | | | | | | | | | | | | | | This is a necessary prerequisite for debugging with modules. The .pcm files become containers that hold the serialized AST which allows us to store debug information in the module file that can be shared by all object files that were built importing the module. This reapplies r230044 with a fixed configure+make build and updated dependencies and testcase requirements. Over the last iteration this version adds - missing target requirements for testcases that specify an x86 triple, - a missing clangCodeGen.a dependency to libClang.a in the make build. rdar://problem/19104245 llvm-svn: 230423
* Make RedeclarableResult's ownership-transferring constructor be a moveRichard Smith2015-02-251-4/+4
| | | | | | constructor. llvm-svn: 230417
* [modules] Fix a bug that would result in a build with P paths through a moduleRichard Smith2015-02-251-0/+3
| | | | | | | graph with M modules to take O(P) time, not just O(M) time, when using explicit module builds. llvm-svn: 230412
* Revert r230314, "Fix codegen for virtual methods that are (re-) exported ↵NAKAMURA Takumi2015-02-251-5/+1
| | | | | | | | | | from multiple modules." It crashes for targeting (i686|x86_64)-win32. clang: clang/lib/AST/VTableBuilder.cpp:142: {anonymous}::FinalOverriders::OverriderInfo {anonymous}::FinalOverriders::getOverrider(const clang::CXXMethodDecl*, clang::CharUnits) const: Assertion `OverridersMap.count(std::make_pair(MD, BaseOffset)) && "Did not find overrider!"' failed. llvm-svn: 230406
* clang-format: Change location of stashed tokenJacques Pienaar2015-02-241-2/+4
| | | | | | Commit of patch in http://reviews.llvm.org/D7871 llvm-svn: 230395
* CUDA: Add option to allow host device functions to call host functionsJacques Pienaar2015-02-242-3/+18
| | | | | | Commiting code from review http://reviews.llvm.org/D7841 llvm-svn: 230385
* PR22673 again: diagnose use of the used decl, not the found decl. This is alsoRichard Smith2015-02-241-2/+2
| | | | | | | wrong (DiagnoseUseOfDecl should take both), but it's more consistent with what we do in other places. llvm-svn: 230384
* PR22673: Don't forget to check a constructor for deletedness when we use it toRichard Smith2015-02-241-3/+7
| | | | | | implicitly construct a temporary in a reference binding. llvm-svn: 230381
* MS extensions: Properly diagnose address of MS property declReid Kleckner2015-02-242-3/+6
| | | | | | | | | | | | Summary: Fixes PR22671. Reviewers: rsmith Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D7863 llvm-svn: 230362
* ARM: Simplify PCS handling.Tim Northover2015-02-241-179/+9
| | | | | | | | The backend should now be able to handle all AAPCS rules based on argument type, which means Clang no longer has to duplicate the register-counting logic and the CodeGen can be significantly simplified. llvm-svn: 230349
* Commit patch for PR19649. Set the correct sign of wide character for ↵Michael Wong2015-02-241-1/+3
| | | | | | | | | | literals based on underlying type of wchar_t. Reviewed: http://reviews.llvm.org/D7559 Patch by Rachel Craig; Test cases by Hubert Tong. llvm-svn: 230333
* [OPENMP] Update codegen for 'omp flush' directive.Alexey Bataev2015-02-242-9/+5
| | | | | | | __kmpc_omp_flush() runtime library now has only one argument and is not a vararg anymore. This update makes the codegen compatible with these changes. llvm-svn: 230331
* [WinX86_64 ABI] Treat C99 _Complex as a structMichael Kuperstein2015-02-241-1/+1
| | | | | | | | | MSVC does not support C99 _Complex. ICC, however, does support it on windows x86_64, and treats it, for purposes of parameter passing, as equivalent to a struct containing two fields (for the real and imaginary part). Differential Revision: http://reviews.llvm.org/D7825 llvm-svn: 230315
* Fix codegen for virtual methods that are (re-) exported from multiple modules.Manuel Klimek2015-02-241-1/+5
| | | | | | | Fixes multiple crashes where a non-canonical decl would be used as key in a lookup. llvm-svn: 230314
* Revert "Wrap clang module files in a Mach-O, ELF, or COFF container."Adrian Prantl2015-02-2412-285/+36
| | | | | | | This reverts commit r230305. Off to fix another round of missing dependencies on various platforms. llvm-svn: 230309
* Don't load Framework module.map files when searching subdirectoriesBen Langmuir2015-02-241-2/+4
| | | | | | | | | | | This would cause frameworks to have spurious "redefinition" errors if they had both a (legacy) "module.map" and a (new) "module.modulemap" file and we happened to do a sub-directory search in that directory using a non-framework include path (e.g. -Ifoo/ -Ffoo/). For migration purposes it's very handy that the compiler will prefer the new spelling of the filename and not look at the old one if it doesn't need to. llvm-svn: 230308
* Wrap clang module files in a Mach-O, ELF, or COFF container.Adrian Prantl2015-02-2412-36/+285
| | | | | | | | | | | | | | This is a necessary prerequisite for debugging with modules. The .pcm files become containers that hold the serialized AST which allows us to store debug information in the module file that can be shared by all object files that were built importing the module. rdar://problem/19104245 This reapplies r230044 with a fixed configure+make build and updated dependencies. Take 3. llvm-svn: 230305
* InstrProf: Make sure counts in lambdas don't escape to the parent scopeJustin Bogner2015-02-241-0/+5
| | | | | | | | When generating coverage maps, we were traversing the body as if it were part of the parent function, but this doesn't make sense since we're currently counting lambdas as separate functions. llvm-svn: 230304
* [modules] Properly check whether a declaration is std::initializer_list. ThisRichard Smith2015-02-241-1/+1
| | | | | | | bug is not actually modules-specific, but it's a little tricky to tickle it outside of modules builds, so submitting with the reduced testcase I have. llvm-svn: 230303
* [modules] Ensure we've imported all declarations of a template beforeRichard Smith2015-02-241-3/+15
| | | | | | | attempting to lazily deserialize its specializations; otherwise, there might be pending specializations that we don't know about yet. llvm-svn: 230301
* Refactor *TemplateDecl::addSpecialization to reduce duplication and add someRichard Smith2015-02-241-32/+36
| | | | | | more asserts. llvm-svn: 230296
* CodeGenModule::EmitVTableBitSetEntries: Add check for identical bit set entries.Peter Collingbourne2015-02-241-0/+3
| | | | | | | No two elements of this array should be the same, but the standard library may pass the same element as both arguments to this function. llvm-svn: 230293
* Restore the libc++ definition of max_align_t on Apple platformsDmitri Gribenko2015-02-241-3/+6
| | | | | | | | | | | | | Clang has introduced ::max_align_t in stddef.h in r201729, but libc++ was already defining std::max_align_t on Darwin because there was none in the global namespace. After that Clang commit though, libc++ started defining std::max_align_t to be a typedef for ::max_align_t, which has a different definition. This changed the ABI. This commit restores the previous definition. rdar://19919394 rdar://18557982 llvm-svn: 230292
* Revert "Improve declaration / expression disambiguation around ↵Justin Bogner2015-02-231-44/+22
| | | | | | | | | | | ptr-operators, and use" This seems to break mixing function-style and c-style casts, and is breaking bootstrapping llvm. This reverts r230261. llvm-svn: 230274
* Improve declaration / expression disambiguation around ptr-operators, and useRichard Smith2015-02-231-22/+44
| | | | | | | | the presence of an abstract declarator with a ptr-operator as proof that a construct cannot parse as an expression to improve diagnostics along error recovery paths. llvm-svn: 230261
* Only lower __builtin_setjmp / __builtin_longjmp toJoerg Sonnenberger2015-02-233-0/+36
| | | | | | | | | | llvm.eh.sjlj.setjmp / llvm.eh.sjlj.longjmp, if the backend is known to support them outside the Exception Handling context. The default handling in LLVM codegen doesn't work and will create incorrect code. The ARM backend on the other hand will assert if the intrinsics are used. llvm-svn: 230255
* Fixed typo.Zoran Jovanovic2015-02-231-1/+1
| | | | llvm-svn: 230253
* InstrProf: Run clang-format to fix some strange indentation (NFC)Justin Bogner2015-02-231-424/+421
| | | | | | | | Somehow this file ended up with a strange hybrid of the old "indent inside a namespace" style and the new "don't", giving us a wonderful two-space indent starting halfway through a namespace. Fix it. llvm-svn: 230244
* -fms-extensions: Bump the default _MSC_VER from 1700 to 1800, aka VS2013Reid Kleckner2015-02-231-1/+1
| | | | | | | | VS 2013 is the minimum supported version, so it's reasonable for Clang to simulate this by default. This also simplifies the clang-cl self-host, since we have the 18.00 version check. llvm-svn: 230243
* [TSan][Clang][MIPS] Enabled thread option for MIPS64 platformMohit K. Bhakkad2015-02-231-1/+1
| | | | | | | | Reviewers: kcc, samsonov, petarj, eugenis Differential Revision: http://reviews.llvm.org/D6147 llvm-svn: 230209
* Add C11 *_DECIMAL_DIG.Ed Schouten2015-02-231-2/+3
| | | | | | | | | | | | | | | Before C11 there was only the DECIMAL_DIG definition. As of C11, we now have one definition per floating point type (e.g. DBL_DECIMAL_DIG). Change the existing code to define the new versions. To remain backward compatible, define __DECIMAL_DIG__ as __LDBL_DECIMAL_DIG__. Also update the tests. It seems that some of the existing test vectors were incorrect. Change all tests for __DECIMAL_DIG__ to expect __LDBL_DECIMAL_DIG__. Add tests for *_DECIMAL_DIG for FreeBSD/amd64, as I happen to have such a system laying around. I've validated that the values are in sync with <float.h>. llvm-svn: 230207
* Remove comment addressed by d0k in r229327.Nico Weber2015-02-231-2/+0
| | | | llvm-svn: 230199
* Relax the requirement on sized deallocation a bit: Default on unsized delete ↵Larisse Voufo2015-02-221-0/+9
| | | | | | if sized delete is not provided in global scope, and -fdefine-sized-deallocation option is disabled. llvm-svn: 230160
* Remove two unused methods. No behavior change.Nico Weber2015-02-221-2/+0
| | | | llvm-svn: 230152
* Cleanup: remove artificial division between lookup results and const lookupRichard Smith2015-02-2111-32/+32
| | | | | | | results. No-one was ever modifying a lookup result, and it would not be reasonable to do so. llvm-svn: 230123
* Revert r167816 and replace it with a proper fix for the issue: do notRichard Smith2015-02-214-37/+25
| | | | | | | invalidate lookup_iterators and lookup_results for some name within a DeclContext if the lookup results for a *different* name change. llvm-svn: 230121
* Improve diagnostic when failing to synthesize implicit member due to ↵Hans Wennborg2015-02-211-0/+6
| | | | | | | | | | | | | | dllexport (PR22591) This is only a problem in C++03 mode targeting MS ABI (MinGW doesn't export inline methods, and C++11 marks these methods implicitly deleted). Since targeting the MS ABI in pre-C++11 mode is a rare configuration, this will probably not get fixed, but we can at least have a better error message. llvm-svn: 230115
* Move -fdefine-sized-deallocation and -fno-sized-deallocation options from ↵Larisse Voufo2015-02-211-9/+0
| | | | | | driver into CC1 for now. llvm-svn: 230112
* [Objective-C]. Provide a new formatting kind, "os_trace" whichFariborz Jahanian2015-02-212-2/+4
| | | | | | | can take a "const char*" format but supports standard printf and CF/NS types . rdar://19904147 llvm-svn: 230109
* Revert "Wrap clang module files in a Mach-O, ELF, or COFF container."Adrian Prantl2015-02-2112-285/+36
| | | | | | | | This reverts commit 230099. The Linux configure+make build variant still needs some work. llvm-svn: 230103
* [Mips] Support mips32r3, mips32r5, mips64r3, mips64r5 MIPS ISA namesSimon Atanasyan2015-02-202-2/+14
| | | | | | | | | The patch teaches the clang's driver to understand new MIPS ISA names, pass appropriate options to the assembler, defines corresponding macros etc http://reviews.llvm.org/D7737 llvm-svn: 230092
* Wrap clang module files in a Mach-O, ELF, or COFF container.Adrian Prantl2015-02-2012-36/+285
| | | | | | | | | | | | | | This is a necessary prerequisite for debugging with modules. The .pcm files become containers that hold the serialized AST which allows us to store debug information in the module file that can be shared by all object files that were built importing the module. rdar://problem/19104245 This reapplies r230044 with a fixed configure+make build and updated dependencies. Take 2. llvm-svn: 230089
* Revert "Wrap clang module files in a Mach-O, ELF, or COFF container."Adrian Prantl2015-02-2012-285/+36
| | | | | | | | This reverts commit r230067. Investigating another batch of problems found by the bots. llvm-svn: 230073
* Wrap clang module files in a Mach-O, ELF, or COFF container.Adrian Prantl2015-02-2012-36/+285
| | | | | | | | | | | | | | This is a necessary prerequisite for debugging with modules. The .pcm files become containers that hold the serialized AST which allows us to store debug information in the module file that can be shared by all object files that were built importing the module. rdar://problem/19104245 This reapplies r230044 with a fixed configure+make build and updated dependencies. llvm-svn: 230067
* Don't try to rebuild modules on umbrella header mismatchBen Langmuir2015-02-201-3/+7
| | | | | | | | | | | | | | | There are two issues here: 1) It's too late to rebuild at this point, because we won't go through removeModules and when we try to reload the new .pcm we'll get the old one instead. We might be able to call removeModules after an OutOfDate here, but I'm not yet confident that it is always safe to do so. 2) In practice, this check fails spuriously when the umbrella header appears to change because of a VFS change that means it maps to a different copy of the same file. Because of this, we just skip the check for now. llvm-svn: 230064
* Fix merging of << at end of input.Jacques Pienaar2015-02-201-20/+13
| | | | | | Commit of review http://reviews.llvm.org/D7766 llvm-svn: 230061
* Implement Control Flow Integrity for virtual calls.Peter Collingbourne2015-02-2010-8/+150
| | | | | | | | | | | | | | | This patch introduces the -fsanitize=cfi-vptr flag, which enables a control flow integrity scheme that checks that virtual calls take place using a vptr of the correct dynamic type. More details in the new docs/ControlFlowIntegrity.rst file. It also introduces the -fsanitize=cfi flag, which is currently a synonym for -fsanitize=cfi-vptr, but will eventually cover all CFI checks implemented in Clang. Differential Revision: http://reviews.llvm.org/D7424 llvm-svn: 230055
OpenPOWER on IntegriCloud