summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Get arm_acle tests from r211962 workingHEADmasterAlp Toker2014-06-28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211979 91177308-0d34-0410-b5e6-96231b3b80d8
* Extend -Wdynamic-class-memaccess to records containing dynamic classesReid Kleckner2014-06-27
| | | | | | | | | | Reviewers: rtrieu Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D4325 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211972 91177308-0d34-0410-b5e6-96231b3b80d8
* Introduce arm_acle.h supporting existing LLVM builtin intrinsicsYi Kong2014-06-27
| | | | | | | | | | | | | | Summary: This patch introduces ACLE header file, implementing extensions that can be directly mapped to existing Clang intrinsics. It implements for both AArch32 and AArch64. Reviewers: t.p.northover, compnerd, rengolin Reviewed By: compnerd, rengolin Subscribers: rnk, echristo, compnerd, aemerson, mroth, cfe-commits Differential Revision: http://reviews.llvm.org/D4296 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211962 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove 'const' from MemoryBuffers used through the SourceManagerDavid Blaikie2014-06-27
| | | | | | | | | | | | | | This removes a const_cast added in r211884 that occurred due to an inconsistency in how MemoryBuffers are handled between some parts of clang and LLVM. MemoryBuffers are immutable and the general convention in the LLVM project is to omit const from immutable types as it's simply redundant/verbose (see llvm::Type, for example). While this change doesn't remove "const" from /every/ MemoryBuffer, it at least makes this chain of ownership/usage consistent. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211915 91177308-0d34-0410-b5e6-96231b3b80d8
* Add reparse test for libclangBen Langmuir2014-06-27
| | | | | | Adapted from a reproducer by Dan Schmidt, thanks! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211910 91177308-0d34-0410-b5e6-96231b3b80d8
* clang-cl: Map /EHs- to -fno-exceptionsReid Kleckner2014-06-27
| | | | | | | | | | | | | | | This isn't 100% compatible with MSVC, but it's close enough. MSVC's /EH flag doesn't really control exceptions so much as how to clean up after an exception is thrown. The upshot is that cl.exe /EHs- will compile try, throw, and catch statements with a warning, but clang-cl will reject such constructs with a hard error. We can't compile such EH constructs anyway, but this may matter to consumers of the AST. Reviewers: hans Differential Revision: http://reviews.llvm.org/D4317 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211909 91177308-0d34-0410-b5e6-96231b3b80d8
* CodeGen: Fix a typo in getThreadLocalWrapperLinkageDavid Majnemer2014-06-27
| | | | | | The description had a misspelling. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211908 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a bug in my previous patch by restoring the behavior that the fatalChandler Carruth2014-06-27
| | | | | | | | | | | | | | error handler is only registered once. To avoid the use of std::call_once (the obvious way to do this) I've wrapped everything up into a managed static and done the work in a constructor. Silly, but it should be effective. Some out-of-tree libclang users reported this to me, and I've asked them to put together a test case which exhibits this behavior, but I wanted to fix things ASAP since the nature of the fix is straight forward. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211905 91177308-0d34-0410-b5e6-96231b3b80d8
* This fixes libclang to cope with the now compile-time multithreadedChandler Carruth2014-06-27
| | | | | | | | | selection re-enabled in r211900 in LLVM. The approach (unlike r211121) doesn't rely on std::mutex or std::call_once to avoid breaknig cygwin bots. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211901 91177308-0d34-0410-b5e6-96231b3b80d8
* [ARM] Fix AAPCS non-compliance caused by very large structsOliver Stannard2014-06-27
| | | | | | | | | | | | | | | | This is a fix to the code in clang which inserts padding arguments to ensure that the ARM backend can emit AAPCS-VFP compliant code. This code needs to track the number of registers which have been allocated in order to do this. When passing a very large struct (>64 bytes) by value, clang emits IR which takes a pointer to the struct, but the backend converts this back to passing the struct in registers and on the stack. The bug was that this was being considered by clang to only use one register, meaning that there were situations in which padding arguments were incorrectly emitted by clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211898 91177308-0d34-0410-b5e6-96231b3b80d8
* Replace GetProgramPath("ld") with GetLinkerPath().Logan Chien2014-06-27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211895 91177308-0d34-0410-b5e6-96231b3b80d8
* [ARM-BE] Generate correct NEON intrinsics for big endian systems.James Molloy2014-06-27
| | | | | | | | | | | | | The NEON intrinsics in arm_neon.h are designed to work on vectors "as-if" loaded by (V)LDR. We load vectors "as-if" (V)LD1, so the intrinsics are currently incorrect. This patch adds big-endian versions of the intrinsics that does the "obvious but dumb" thing of reversing all vector inputs and all vector outputs. This will produce extra REVs, but we trust the optimizer to remove them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211893 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't check clang binary name, as it can be different in some test setups.Alexander Kornienko2014-06-27
| | | | | | | | | | | | | | Summary: This unbreaks our internal build after these tests were turned on in r211738. Reviewers: chandlerc Reviewed By: chandlerc Subscribers: benlangmuir, cfe-commits Differential Revision: http://reviews.llvm.org/D4311 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211887 91177308-0d34-0410-b5e6-96231b3b80d8
* [OPENMP] Parsing and sema analysis for 'copyprivate' clause.Alexey Bataev2014-06-27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211886 91177308-0d34-0410-b5e6-96231b3b80d8
* const_cast the memory MemoryBuffer following LLVM r211883Alp Toker2014-06-27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211884 91177308-0d34-0410-b5e6-96231b3b80d8
* Driver: Pass -ivfsoverlay to module crashdumpsJustin Bogner2014-06-27
| | | | | | | | When we create a crashdump involving modules, we build a VFS to reproduce the problem with. This updates the reproduction script to use that VFS. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211876 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a FIXME for an unfortunate issue in ConvertBackendLocation()Alp Toker2014-06-27
| | | | | | | This function is copying the entire file contents into memory repeatedly and allocating new file IDs *each time* a source location is processed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211874 91177308-0d34-0410-b5e6-96231b3b80d8
* Driver: use GNU::Link for the Generic_GCC toolchainSaleem Abdulrasool2014-06-27
| | | | | | | | | | | | | | | | | This changes the behaviour of the driver for linking to match that of the Generic_GCC::Assemble. The default link should use "ld" rather than "gcc" for the linker as gcc does. This avoids the unnecessary round-tripping through gcc. It also is much more reasonable behaviour from the user's perspective. This should have been updated with SVN r195554 which changed the behaviour of Generic_GCC::Assemble. The gcc_forward test needs to be updated to mark the fact that -march is a flag for GCC not ld. This was updated as a typo fix, but added a check for a flag that is not a link flag. The bindings test covers the change for testing, and thus no new test was added. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211866 91177308-0d34-0410-b5e6-96231b3b80d8
* CodeGenAction: don't duplicate entire .ll/.bc files into memoryAlp Toker2014-06-27
| | | | | | Requires supporting changes from LLVM r211861. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211862 91177308-0d34-0410-b5e6-96231b3b80d8
* [OPENMP] Added several test cases in nesting of OpenMP regions test after ↵Alexey Bataev2014-06-27
| | | | | | review from Samuel F Antao. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211857 91177308-0d34-0410-b5e6-96231b3b80d8
* Account for differences in grep implementationsAlp Toker2014-06-27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211856 91177308-0d34-0410-b5e6-96231b3b80d8
* Restore test from r211844 skipping '.file' directivesAlp Toker2014-06-27
| | | | | | | At least this answers the question of whether .bc/.ll input processed by the frontend produces identical output to the original compilation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211853 91177308-0d34-0410-b5e6-96231b3b80d8
* Partially disable test from r211844Alp Toker2014-06-27
| | | | | | | ELF assembly contains .line directives that differ based on the input filename. Weaken the test while considering options. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211849 91177308-0d34-0410-b5e6-96231b3b80d8
* Add test coverage for .bc input in the frontendAlp Toker2014-06-27
| | | | | | | | | | | | | Test that we can consume LLVM bitcode and additionally check that it produces the same output as a direct compilation. The feature is crashy and has gone untested until now, but we might as well provide some coverage as long as it remains in tree. Also test LL source input in the same way because the existing tests for that don't look convincing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211844 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove .bc from test config.suffixesAlp Toker2014-06-27
| | | | | | This was unused. Besides, a binary file can't really contain lit ShTests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211843 91177308-0d34-0410-b5e6-96231b3b80d8
* clang/test/Driver/fuse-ld.c: Really fix to match dos path.NAKAMURA Takumi2014-06-27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211841 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not inline methods of C++ containers (coming from headers).Anna Zaks2014-06-27
| | | | | | | | | | | | | | | | | | | This silences false positives (leaks, use of uninitialized value) in simple code that uses containers such as std::vector and std::list. The analyzer cannot reason about the internal invariances of those data structures which leads to false positives. Until we come up with a better solution to that problem, let's just not inline the methods of the containers and allow objects to escape whenever such methods are called. This just extends an already existing flag "c++-container-inlining" and applies the heuristic not only to constructors and destructors of the containers, but to all of their methods. We have a bunch of distinct user reports all related to this issue (radar://16058651, radar://16580751, radar://16384286, radar://16795491 [PR19637]). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211832 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow different path separator for windows build.Logan Chien2014-06-27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211823 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid extra back reference key lookup in msmanglerReid Kleckner2014-06-26
| | | | | | | | | | | | | | | Avoid a second key lookup when the back reference key is going to be inserted in the StringMap. The string lookups in the msmangler are the main responsible for the huge overhead when compared to the itanium mangler. This patch makes a small but noticeable improvement. Reviewed by: rnk Differential Revision: http://reviews.llvm.org/D4130 Patch by Agustín Bergé! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211813 91177308-0d34-0410-b5e6-96231b3b80d8
* Objective-C ARC. Provide diagnostic and fix-it Fariborz Jahanian2014-06-26
| | | | | | | | | | when casting a retainable object to a objc_bridge_related CF type with the suggestion of applying the method specified in the bridging attribute to the object. // rdar://15932435 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211807 91177308-0d34-0410-b5e6-96231b3b80d8
* Driver: Fix a misleading comment and test for what it actually didJustin Bogner2014-06-26
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211806 91177308-0d34-0410-b5e6-96231b3b80d8
* Driver: Remove trailing whitespaceJustin Bogner2014-06-26
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211805 91177308-0d34-0410-b5e6-96231b3b80d8
* clang-cl: Don't store the cl compiler Tool on the stack (PR20131)Hans Wennborg2014-06-26
| | | | | | | | | | | | | | The Command will refer back to the Tool as its source, so it has to outlive the Command. Having the Tool on the stack would cause us to crash when using "clang-cl -GR -fallback", because if the Command fails, Driver::ExecuteCompilation tries to peek at the Command's source. Differential Revision: http://reviews.llvm.org/D4314 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211802 91177308-0d34-0410-b5e6-96231b3b80d8
* ARM: Correctly identify cortex-m4 as v7em.Jim Grosbach2014-06-26
| | | | | | | | | | | Get the predefined macro for the architecture correct. cortex-m4: __ARM_ARCH_7EM__ cortex-m3: __ARM_ARCH_7M__ cortex-m0: __ARM_ARCH_6M__ rdar://17420090 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211792 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a Visualizer for VarDecl.Zachary Turner2014-06-26
| | | | | | | | Reviewed by: Aaron Ballman Differential Revision: http://reviews.llvm.org/D4303 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211788 91177308-0d34-0410-b5e6-96231b3b80d8
* Propset the executables for GetProgramPath().Logan Chien2014-06-26
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211786 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement the -fuse-ld= option.Logan Chien2014-06-26
| | | | | | | | | | | | | | | This commit implements the -fuse-ld= option, so that the user can specify -fuse-ld=bfd to use ld.bfd. This commit re-applies r194328 with some test case changes. It seems that r194328 was breaking macosx or mingw build because clang can't find ld.bfd or ld.gold in the given sysroot. We should use -B to specify the executable search path instead. Patch originally by David Chisnall. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211785 91177308-0d34-0410-b5e6-96231b3b80d8
* Add ppc64/power8 as a targetWill Schmidt2014-06-26
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211778 91177308-0d34-0410-b5e6-96231b3b80d8
* [OPENMP] Initial parsing and sema analysis for 'single' directive.Alexey Bataev2014-06-26
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211774 91177308-0d34-0410-b5e6-96231b3b80d8
* [OPENMP] Initial parsing and sema analysis for 'section' directive.Alexey Bataev2014-06-26
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211767 91177308-0d34-0410-b5e6-96231b3b80d8
* Sema: Allow dllimport entities in template args for mingwDavid Majnemer2014-06-26
| | | | | | | | | | | | | | Previously dllimport variables inside of template arguments relied on not using the C++11 codepath when -fms-compatibility was set. While this allowed us to achieve compatibility with MSVC, it did so at the expense of MingW. Instead, try to use the DeclRefExpr we dig out of the template argument. If it has the dllimport attribute, accept it and skip the C++11 null-pointer check. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211766 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert some function arguments to use ArrayRef.Craig Topper2014-06-26
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211764 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert StringLiteralParser constructor to use ArrayRef instead of a pointer ↵Craig Topper2014-06-26
| | | | | | and count. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211763 91177308-0d34-0410-b5e6-96231b3b80d8
* Make test from r211758 portableAlp Toker2014-06-26
| | | | | | | It turns out the -fblocks option is determined by the default tooling target and not implied by the other two flags. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211761 91177308-0d34-0410-b5e6-96231b3b80d8
* CodeGen: Improve warnings about uninstrumented files when profilingJustin Bogner2014-06-26
| | | | | | | | | Improve the warning when building with -fprofile-instr-use and a file appears not to have been profiled at all. This keys on whether a function is defined in the main file or not to avoid false negatives when one includes a header with functions that have been profiled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211760 91177308-0d34-0410-b5e6-96231b3b80d8
* Reformat RAVs to sync up following recent updatesAlp Toker2014-06-26
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211759 91177308-0d34-0410-b5e6-96231b3b80d8
* RAV: visit copy expressions of captured variables in blocks (ObjC++11)Alp Toker2014-06-26
| | | | | | Patch by Mathieu Baudet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211758 91177308-0d34-0410-b5e6-96231b3b80d8
* Forward -u to the linker on gnutools toolchainsReid Kleckner2014-06-26
| | | | | | | | | | | | | | | | Summary: The BSDs and Darwin all forward the whole 'u' group, but gcc only forwards -u so far as I can tell. I only forward -u, since that's a minimal change, and many people object to magically recognizing and forwarding linker arguments. Reviewers: chandlerc, joerg Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D4304 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211756 91177308-0d34-0410-b5e6-96231b3b80d8
* Make -Wincomplete-umbrella go through the VFSBen Langmuir2014-06-25
| | | | | | | By using vfs::recursive_directory_iterator, this warning will now fire when some or all of a module's headers are from VFS mappings. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211746 91177308-0d34-0410-b5e6-96231b3b80d8
* Make PR20038.cpp test case portable to non-Itanium ABIsDavid Blaikie2014-06-25
| | | | | | | The only call in this function is to the dtor, so there's no need to name a non-portable mangled function name to match it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211742 91177308-0d34-0410-b5e6-96231b3b80d8