summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* Add R600 builtin codegen.Matt Arsenault2014-06-243-3/+48
| | | | llvm-svn: 211631
* Correctly Load Mixed FP-GP Variadic Arguments for x86-64.Rafael Espindola2014-06-241-2/+2
| | | | | | | | | | | | | | | | | | | | According to the x86-64 ABI, structures with both floating point and integer members are split between floating-point and general purpose registers, and consecutive 32-bit floats can be packed into a single floating point register. In the case of variadic functions these are stored to memory and the position recorded in the va_list. This was already correctly implemented in llvm.va_start. The problem is that the code in clang for implementing va_arg was reading floating point registers from the wrong location. Patch by Thomas Jablin. Fixes PR20018. llvm-svn: 211626
* Use appropriate default PIE settings for OpenBSD.Brad Smith2014-06-241-0/+21
| | | | llvm-svn: 211624
* Add directory_iterator for (non-recursive) iteration of VFS directoriesBen Langmuir2014-06-241-7/+191
| | | | | | | | The API is based on sys::fs::directory_iterator, but it allows iterating over overlays and the yaml-based VFS. For now, it isn't used by anything (except its tests). llvm-svn: 211623
* [Driver][Mips] Support mips64-linux-gnuabi64 / mips64el-linux-gnuabi64 ↵Simon Atanasyan2014-06-241-2/+40
| | | | | | | | | target triples. The patch fixes the bug #19869. http://llvm.org/bugs/show_bug.cgi?id=19869 llvm-svn: 211619
* Objective-C. When we use @selector(save:), etc. there may be more Fariborz Jahanian2014-06-242-12/+27
| | | | | | | | | | | | | than one method with mismatched type of same selector name. clang issues a warning to point this out since it may cause undefined behavior. There are cases though that some APIs don't care about user methods and such warnings are perceived as noise. This patch allows users to add paren delimiters around selector name to turn off such warnings. So, @selector((save:)) will turn off the warning. It also provides 'fixit' so user knows what to do. // rdar://16458579 llvm-svn: 211611
* Add new debug kind LocTrackingOnly.Diego Novillo2014-06-243-16/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This new debug emission kind supports emitting line location information in all instructions, but stops code generation from emitting debug info to the final output. This mode is useful when the backend wants to track source locations during code generation, but it does not want to produce debug info. This is currently used by optimization remarks (-Rpass, -Rpass-missed and -Rpass-analysis). When one of the -Rpass flags is used, the front end will enable location tracking, only if no other debug option is enabled. To prevent debug information from being generated, a new debug info kind LocTrackingOnly causes DIBuilder::createCompileUnit() to not emit the llvm.dbg.cu annotation. This blocks final code generation from generating debug info in the back end. Depends on D4234. Reviewers: echristo, dblaikie Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D4235 llvm-svn: 211610
* Allow static_assert inside an anonymous union; fixes PR20021 as well as ↵Aaron Ballman2014-06-241-0/+2
| | | | | | implements C++ Issue 1940. llvm-svn: 211606
* Use lowercase windows.h for mingw cross compilation.Logan Chien2014-06-241-1/+1
| | | | llvm-svn: 211604
* Fix "warning: fallthrough annotation does not directly precede switch label" ↵Alexander Kornienko2014-06-241-0/+3
| | | | | | | | | | | | | | | | in lambdas. Summary: This patch fixes http://llvm.org/PR17864 - "warning: fallthrough annotation does not directly precede switch label" in lambdas. Reviewers: rsmith Reviewed By: rsmith Subscribers: rnk, cfe-commits Differential Revision: http://reviews.llvm.org/D4258 llvm-svn: 211599
* [mips] Correct linux dynamic linker for -mnan=2008Daniel Sanders2014-06-242-5/+25
| | | | | | | | | | | | Summary: The dynamic linker is named ld-linux-mipsn8.so.1 when -mnan=2008 is given (or is the default). It remains ld.so.1 for other cases. This is necessary for MIPS32r6/MIPS64r6 since these ISA's default to -mnan=2008. Differential Revision: http://reviews.llvm.org/D4273 llvm-svn: 211598
* [OPENMP] Additional checking for 'collapse' clause.Alexey Bataev2014-06-241-9/+42
| | | | llvm-svn: 211589
* ARM: remove dead CodeGen functions.Tim Northover2014-06-242-33/+0
| | | | | | These two are no longer being used by NEON codegen. llvm-svn: 211586
* clang-format: Understand that breaking before lambdas is fine.Daniel Jasper2014-06-241-1/+1
| | | | | | | | | | | | Before: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa([]( const aaaaaaaaaa &a) { return a; }); After: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa( [](const aaaaaaaaaa &a) { return a; }); llvm-svn: 211575
* Driver: Restore proper naming of crashdump filesJustin Bogner2014-06-241-1/+2
| | | | | | Based on a review of r211411 by Jordan Rose. llvm-svn: 211572
* AST: Address of dllimport functions isn't constantDavid Majnemer2014-06-241-1/+4
| | | | | | | | | | | | | | | | The address of dllimport functions can be accessed one of two ways: - Through the IAT which is symbolically referred to with a symbol starting with __imp_. - Via the wrapper-function which ends up calling through the __imp_ symbol. The problem with using the wrapper-function is that it's address will not compare as equal in all translation units. Specifically, it will compare unequally with the translation unit which defines the function. This fixes PR19955. llvm-svn: 211570
* AST: Address of dllimport variables isn't constantDavid Majnemer2014-06-241-0/+3
| | | | | | | | | | | | | The address of dllimport variables isn't something that can be meaningfully used in a constexpr context and isn't suitable for evaluation at load-time. They require loads from memory to properly evaluate. This fixes PR19955. Differential Revision: http://reviews.llvm.org/D4250 llvm-svn: 211568
* [OPENMP] Added initial checking of nesting of OpenMP regions.Alexey Bataev2014-06-241-3/+49
| | | | llvm-svn: 211566
* Propagate isAddressOfMember into typo correction so that we don't correct ↵Nick Lewycky2014-06-233-7/+36
| | | | | | &qualified-id into &unqualified-id. Also make sure to set the naming class when we find the qualified-id in a different class than the nested name specifier specified so far. Fixes PR19681! llvm-svn: 211551
* Fix spelling. s/overloaed/overloaded/Jim Grosbach2014-06-231-2/+2
| | | | llvm-svn: 211530
* CodeGen: Remove a stray tab character (NFC)Justin Bogner2014-06-231-1/+1
| | | | llvm-svn: 211528
* Driver: correct behaviour of -fmsc-version=MAJORSaleem Abdulrasool2014-06-231-1/+5
| | | | | | | | | Ensure that we properly handle the case where just the major version component is provided by the user. Thanks to Alp Toker for pointing out that this was not handled correctly! llvm-svn: 211506
* Stop sharing the FileManager in ASTUnit::ParseBen Langmuir2014-06-231-1/+7
| | | | | | | | | | We were using old stat values for any files that had previously been looked up, leading to badness. There might be a more elegant solution in invalidating the cache for those file (since we already know which ones they are), but it seems too likely there are existing references to them hiding somewhere. llvm-svn: 211504
* [OPENMP] Reformatting and code improvement.Alexey Bataev2014-06-231-10/+7
| | | | llvm-svn: 211489
* clang-format: [proto] Add required space before absolute references.Daniel Jasper2014-06-231-0/+4
| | | | llvm-svn: 211488
* clang-format: Fix corner case in pointer/reference detection.Daniel Jasper2014-06-231-0/+2
| | | | llvm-svn: 211487
* Parse: Simplify construction of the clobber listDavid Majnemer2014-06-231-4/+1
| | | | | | | | This avoids going over the clobber list twice. No functionality change. llvm-svn: 211485
* StaticAnalyzer: Switch a loop to a range-based forDavid Majnemer2014-06-231-3/+2
| | | | | | Merely a code simplification, no functionality change. llvm-svn: 211484
* DiagnosticIDs: use diagnostic severities to simplify extension handlingAlp Toker2014-06-225-30/+13
| | | | llvm-svn: 211479
* Driver: Skip the -ivfsoverlay argument in driver crash diagsJustin Bogner2014-06-221-1/+1
| | | | llvm-svn: 211474
* Revert "Revert r211402 (and r211408,r211410), "CodeGen: Refactor ↵David Majnemer2014-06-224-366/+427
| | | | | | | | | dynamic_cast and typeid" It crashes msvc codegen in clang/test/SemaCXX/undefined-internal.cpp." This reverts commit r211467 which reverted r211408,r211410, it caused crashes in test/SemaCXX/undefined-internal.cpp for i686-win32 targets. llvm-svn: 211473
* Revert r211402 (and r211408,r211410), "CodeGen: Refactor dynamic_cast and ↵NAKAMURA Takumi2014-06-224-430/+366
| | | | | | | | | | typeid" It crashes msvc codegen in clang/test/SemaCXX/undefined-internal.cpp. It is reproducible with: $ clang -cc1 -triple i686-win32 -emit-llvm-only clang/test/SemaCXX/undefined-internal.cpp llvm-svn: 211467
* TextDiagnosticPrinter: use the mapped level for remark flag computationAlp Toker2014-06-222-6/+1
| | | | | | | | | Custom diagnostics don't have a builtin class so this wouldn't have worked. Reduces surface area of remark-related changes. No test coverage. llvm-svn: 211462
* Enable WindowsToolChain on all native Windows buildsAlp Toker2014-06-221-7/+2
| | | | | | | | Make binaries built by MSVC, mingw and clang functionally equivalent. The checks are trivially performed at runtime to eliminate functional differences between supported configurations that used to be hard-coded. llvm-svn: 211461
* WindowsToolChain: decouple build environment from the toolchainAlp Toker2014-06-221-17/+2
| | | | | | | | | | | Don't try to find the MSVC version that the binaries were built with. Doing so defeats testing by causing invalid test passes on the build servers. Whichever Visual Studio (or clang-cl.exe) edition was used to build the clang package, it's strictly orthogonal and has no relation to software versions available on the user's PC. llvm-svn: 211459
* Make WindowsToolChain portableAlp Toker2014-06-221-10/+19
| | | | | | | | De-conditionalize as much as possible so we can start to fix this code. No change in functionality. llvm-svn: 211458
* [analyzer] Check for NULL passed to CFAutorelease.Jordan Rose2014-06-211-6/+11
| | | | | | Patch by Sean McBride, tests adjusted by me. llvm-svn: 211453
* DiagnosticRenderer: emit basic notes as real diagnosticsAlp Toker2014-06-212-11/+6
| | | | | | | Fixes terminal column wrapping and vestigial 'note:' prefixes that would appear when using emitBasicNote(). llvm-svn: 211448
* TextDiagnostic: print remark level diagnostics in bold tooAlp Toker2014-06-211-19/+14
| | | | | | | | | | | The purpose of bolding these is to make them visually distinct from continuations (supplemental note diagnostics). Therefore, the bolding applies to all severities _including_ remarks -- it's not in any way an indicator of priority. Also simplify and comment. No tests. llvm-svn: 211447
* Lex: Use the correct types for MS integer suffixesDavid Majnemer2014-06-213-29/+31
| | | | | | | | | | | | | | | | Something went wrong with r211426, it is an older version of this code and should not have been committed. It was reverted with r211434. Original commit message: We didn't properly implement support for the sized integer suffixes. Suffixes like i16 were essentially ignored instead of mapping them to the appropriately sized integer type. This fixes PR20008. Differential Revision: http://reviews.llvm.org/D4132 llvm-svn: 211441
* [PCH] Remove the BackingIvarReferencedInAccessor field from DECL_OBJC_IVAR ↵Argyrios Kyrtzidis2014-06-211-2/+0
| | | | | | | | abbreviation record. Patch by Yiding Jia! llvm-svn: 211438
* Revert "Lex: Use the correct types for MS integer suffixes"Rafael Espindola2014-06-213-27/+26
| | | | | | | | | This reverts commit r211426. This broke the arm bots. The crash can be reproduced on X86 by running. ./bin/clang -cc1 -fsyntax-only -verify -fms-extensions ~/llvm/clang/test/Lexer/ms-extensions.c -triple arm-linux llvm-svn: 211434
* Lex: Use the correct types for MS integer suffixesDavid Majnemer2014-06-213-26/+27
| | | | | | | | | | | | We didn't properly implement support for the sized integer suffixes. Suffixes like i16 were essentially ignored instead of mapping them to the appropriately sized integer type. This fixes PR20008. Differential Revision: http://reviews.llvm.org/D4132 llvm-svn: 211426
* Driver: In crashdumps with -fmodule, dump the module dependenciesJustin Bogner2014-06-202-18/+46
| | | | llvm-svn: 211421
* Driver: enhance MSC version compatibilitySaleem Abdulrasool2014-06-203-4/+59
| | | | | | | | | | | | | | | | | | | | | | | | | The version information for Visual Studio is spread over multiple variables. The newer Windows SDK has started making use of some of the extended versioning variables that were previously undefined. Enhance our compatibility definitions for these cases. _MSC_VER is defined to be the Major * 100 + Minor. _MSC_FULL_VER is defined to be Major * 10000000 + Minor * 100000 + Build. And _MSC_BUILD is the build revision of the compiler. Extend the -fmsc-version option in a compatible manner. If the value is the previous form of MMmm, then we assume that the build number is 0. Otherwise, a specific build number may be passed by using the form MMmmbbbbb. Due to bitwidth limitations of the option, it is currently not possible to define a revision value. The version information can be passed as either the decimal encoded value (_MSC_FULL_VER or _MSC_VER) or as a dot-delimited value. The change to the TextDiagnostic is to deal with the updated encoding of the version information. llvm-svn: 211420
* Driver: Record that we're in crashdump and push flags to ConstructJobJustin Bogner2014-06-203-9/+10
| | | | | | | | | | | It's more flexible and arguably better layering to set flags to modify compiling for diagnostics in the CC1 job themselves, rather than tweaking the driver flags and letting them propagate. There is one visible change this causes: crash report files will now get preprocessed names (.i and friends). llvm-svn: 211411
* Driver: Remove some superfluous calls to Arg->claim()Justin Bogner2014-06-201-14/+5
| | | | | | | Args.getLastArg() claims the Arg it returns, so calling claim on these results is unnecessary. llvm-svn: 211403
* CodeGen: Refactor dynamic_cast and typeidDavid Majnemer2014-06-204-366/+430
| | | | | | | | | | | This refactors the emission of dynamic_cast and typeid expressions so that ABI specific knowledge lives in appropriate places. There are quite a few benefits for having the two implementations share a common core like sharing logic for optimization opportunities. While we are at it, clean up the tests. llvm-svn: 211402
* [C++1z] Implement N3928: message in static_assert is optional.Richard Smith2014-06-202-19/+30
| | | | llvm-svn: 211394
* [C++1z] Implement N3981: Disable trigraphs by default in C++1z mode.Richard Smith2014-06-201-1/+2
| | | | llvm-svn: 211392
OpenPOWER on IntegriCloud