summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* [Driver][Mips] Remove flags which is not used in multi-library selection.Simon Atanasyan2014-07-161-2/+0
| | | | | | No functional changes. llvm-svn: 213142
* [Driver][Mips] Reduce code duplication. Remove static isMipsNan2008() function.Simon Atanasyan2014-07-161-6/+2
| | | | | | Use the tools::mips::isNaN2008() routine instead. llvm-svn: 213141
* [mips] Correct the invocation of GAS in several cases.Daniel Sanders2014-07-162-8/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: As a result of this patch, assembling an empty file with GCC and Clang (using GAS as the assembler) now produces identical objects. -mfp32/-mfpxx/-mfp64 now form a trinity of options. -mfpxx is the default when the triple vendor is 'img' or 'mti', the ABI is O32, and the CPU is between mips2 and mips32r2/mips64r2 (inclusive). -mno-shared is always given to the assembler to match the effect of -mabicalls (currently unimplemented but Clang acts as if it is given). Similarly, -call_nonpic is always given to match the effect of -mplt (also unimplemented and acts as if given) except when the ABI is 64 in which case -mplt has no effect so -KPIC is given instead. -mhard-float/-msoft-float are now passed on. -modd-spreg/-mno-odd-spreg are now passed on. -mno-mips16 is correctly passed on. The assembler option is -no-mips16 not -mno-mips16 Differential Revision: http://reviews.llvm.org/D4515 llvm-svn: 213138
* [mips] Add support for -mfpxx and -mno-fpxx.Daniel Sanders2014-07-161-0/+4
| | | | | | Differential Revision: http://reviews.llvm.org/D4464 llvm-svn: 213132
* Don't add -Bsymbolic by default on Android.Evgeniy Stepanov2014-07-161-3/+0
| | | | | | | -Bsymbolic is not a platform requirement and should not be added unconditionally. llvm-svn: 213126
* MS ABI: Up the required alignment after inserting padding between vbasesDavid Majnemer2014-07-161-1/+3
| | | | | | | | | | We would correctly insert sufficiently aligned padding between vbases when our leading base was empty, however we would neglect to increase the required alignment of the most derived class. This fixes PR20315. llvm-svn: 213123
* AST: Convert a SmallPtrSet to a SmallPtrSetImpl in RecordLayoutBuilderDavid Majnemer2014-07-161-4/+4
| | | | | | No functionality changed, it just makes the code a little less brittle. llvm-svn: 213122
* AST: Cleanup RecordLayoutBuilderDavid Majnemer2014-07-161-90/+77
| | | | | | | | | | | No functionality changed, just some cleanups: - Switch some loops to range-based for. - Name some iterators with a more creative name than "I". - Reduce dependence on auto. Does RD->bases() give you a list of CXXBaseSpecifiers or CXXRecordDecls? It's more clear to just say which upfront. llvm-svn: 213121
* Improve error recovery around colon.Serge Pavlov2014-07-162-24/+34
| | | | | | | | | | | | Recognize additional cases, when '::' is mistyped as ':'. This is a fix to RP18587 - colons have too much protection in member-declarations Review is tracked by http://reviews.llvm.org/D3653. This is an attempt to recommit the fix, initially committed as r212957 but then reverted in r212965 as it broke self-build. In the updated patch ParseDirectDeclarator turns on colon protection in for context as well. llvm-svn: 213120
* Driver: bifurcate extended and basic MSC versioningSaleem Abdulrasool2014-07-164-31/+50
| | | | | | | | | | | | | | | | | | | | | | | This restores the original behaviour of -fmsc-version. The older option remains as a mechanism for specifying the basic version information. A secondary option, -fms-compatibility-version permits the user to specify an extended version to the driver. The new version takes the value as a dot-separated value rather than the major * 100 + minor format that -fmsc-version format. This makes it easier to specify the value as well as a more flexible manner for specifying the value. Specifying both values is considered an error. The older parameter is left solely as a driver option, which is normalised into the newer parameter. This allows us to retain a single code path in the compiler itself whilst preserving the semantics of the old parameter as well as avoid having to determine which of two formats are being used by the invocation. The test changes are due to the fact that the compiler no longer supports the old option, and is a direct conversion to the new option. llvm-svn: 213119
* Handle diagnostic warnings in Frontend diagnostic handler.Tyler Nowicki2014-07-161-13/+29
| | | | | | | | | | | | Clang uses a diagnostic handler to grab diagnostic messages so it can print them with the line of source code they refer to. This patch extends this to handle diagnostic warnings that were added to llvm to produce a warning when loop vectorization is explicitly specified (using a pragma clang loop directive) but fails. Reviewed by: Aaron Ballman llvm-svn: 213112
* Avoid referencing the vtable when calling the ctor without emitting itReid Kleckner2014-07-161-2/+0
| | | | | | | | | | | | | | This fixes compilation errors about incomplete types used with WebKit's RefPtr template. Simply calling an out of line constructor should not instantiate all inline and defaulted virtual methods. Tested by building and testing several big piles of code on Linux. Reviewers: rsmith Differential Revision: http://reviews.llvm.org/D4429 llvm-svn: 213109
* Use the integrated assembler by default on OpenBSD/sparc.Brad Smith2014-07-151-1/+3
| | | | llvm-svn: 213105
* Switching some iterator-based for loops to use range-based for loops. No ↵Aaron Ballman2014-07-151-49/+28
| | | | | | functional changes intended. llvm-svn: 213098
* Add __INTMAX_C_SUFFIX__ and __UINTMAX_C_SUFFIX__.Joerg Sonnenberger2014-07-151-0/+4
| | | | llvm-svn: 213097
* Added the pack_elements range accessor. Refactoring some for loops to use ↵Aaron Ballman2014-07-1510-50/+29
| | | | | | range-based for loops instead. No functional changes intended. llvm-svn: 213095
* clang-cl: Implement the -arch flagEhsan Akhgari2014-07-151-2/+28
| | | | | | | | | | | | | | | Summary: This implements the -arch flag for both x86 and x86-64 by letting them affect the default target features we pass to cc1. -m machine flags will override the features set by -arch. Reviewers: hansw Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D4519 llvm-svn: 213083
* Add codegen for more R600 builtinsMatt Arsenault2014-07-151-1/+46
| | | | llvm-svn: 213079
* Objective-C IRGen. Fixes an inconsistant linkage ofFariborz Jahanian2014-07-151-7/+4
| | | | | | | ObC's metaclass metadata with its class metadata which results in an assert. rdar://17633301 llvm-svn: 213076
* Don't create non-temporary twines.Joerg Sonnenberger2014-07-151-3/+2
| | | | llvm-svn: 213066
* Make sure int64_t and uint64_t are consistent.Joerg Sonnenberger2014-07-151-2/+2
| | | | llvm-svn: 213065
* Prune Redundant libdeps in CMake's target_link_libraries and LLVMBuild.txt.NAKAMURA Takumi2014-07-151-1/+0
| | | | | | I checked this with Release+Asserts on x86_64-mingw32. Please restore partially if this were overkill. llvm-svn: 213064
* Provide builtin macros as template for PRIab and SCNab, matching theJoerg Sonnenberger2014-07-152-0/+41
| | | | | | underlaying types. llvm-svn: 213063
* clang-format: Improve heuristic around avoiding bad line breaks.Daniel Jasper2014-07-151-1/+2
| | | | | | | | | | | Now, this can be properly formatted: static_cast<A< // B> *>( // ); Before, clang-format could end up, not formatting the code at all. llvm-svn: 213055
* AST: Don't walk all redeclarations when looking for a uuid attrDavid Majnemer2014-07-151-6/+4
| | | | | | No funcionality changed, just a simplification of the existing code. llvm-svn: 213044
* [modules] Rearrange and unify the way we determine if we need to pull inRichard Smith2014-07-151-28/+30
| | | | | | | | | redeclaration chains when pulling in a declaration. We need the redecl chain unless we know some other declaration will trigger it to be pulled in; that happens if our originally-canonical declaration had all the knowledge that we have (and isn't us). llvm-svn: 213043
* [OPENMP] Several cosmetic fixes in comments, tests and the code for '#pragma ↵Alexey Bataev2014-07-151-0/+3
| | | | | | omp single'. llvm-svn: 213040
* Don't get confused on the number of braces when braces start after the first ↵Ehsan Akhgari2014-07-151-2/+1
| | | | | | | | | | | | | | | | __asm Summary: Without this, we would not consume the closing brace which would cause the parser to start consuming C++ and bad things would happen. Reviewers: majnemer Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D4505 llvm-svn: 213032
* VirtualFileSystem: Correctly generate the mapping for an empty VFSJustin Bogner2014-07-151-23/+22
| | | | | | | In r209332 I accidentally broke generation of empty VFS maps. This fixes the issue and adds a test. llvm-svn: 213028
* PR19751: (T())++ is not a cast-expression.Richard Smith2014-07-152-2/+6
| | | | llvm-svn: 213022
* AST: Fix __uuidof for template specializationsDavid Majnemer2014-07-141-5/+5
| | | | | | | | | | | While we previously supported __uuidof applied to a template specialization, we would only find the uuid attribute if it was applied to the template argument. We would erroneously ignore the uuid attribute on the specialization itself. This is required to parse Windows Runtime C++ Template Library headers. llvm-svn: 213016
* Remove dead code.Richard Smith2014-07-141-11/+0
| | | | llvm-svn: 213013
* AST: Cleanup __uuidof related codeDavid Majnemer2014-07-141-9/+8
| | | | | | | | Switch some things to use range-based for loops. Change CXXUuidofExpr::GetUuidAttrOfType's return type to be const. No functionality changed. llvm-svn: 213009
* Continue parsing an expression list even after an error is encountered.Kaelyn Takata2014-07-141-5/+8
| | | | | | | | | Otherwise, multiple errors such as having unknown identifiers for two arguments won't be diagnosed properly (e.g. only the first one would have a diagnostic message if typo correction fails even though both would be diagnosed if typo correction suggests a replacement). llvm-svn: 213003
* Fix build with various feature flag combinationsAlp Toker2014-07-141-3/+1
| | | | llvm-svn: 212996
* Drop separate UIntMaxType and just derive it from IntMaxType.Joerg Sonnenberger2014-07-142-19/+2
| | | | llvm-svn: 212987
* Introduce getCorrespondingUnsignedType() in TargetInfo to work like theJoerg Sonnenberger2014-07-141-2/+4
| | | | | | | | corresponding AST context function, only restricted to basic integer types. Use this to ensure getUIntPtrType() gives types consistent with getIntPtrType(). Fix NVPTX backend to give signed intptr_t. llvm-svn: 212982
* In C++98, if an rvalue reference binds to a function lvalue (or an xvalue or anRichard Smith2014-07-141-1/+1
| | | | | | | | array prvalue), treat that as a direct binding. Only the class prvalue case needs to be excluded here; the rest are extensions anyway, so we can treat them as we would in C++11. llvm-svn: 212978
* Fix case-sensitivity of inferred framework modulesBen Langmuir2014-07-141-0/+6
| | | | | | | Just because we can open a directory named "COcoa.framework" doesn't mean we should provide a "COcoa" module on a case-insensitive filesystem. llvm-svn: 212975
* Fix typosAlp Toker2014-07-143-3/+3
| | | | | | Also consolidate 'backward compatibility' llvm-svn: 212974
* Revert "Improve error recovery around colon."Reid Kleckner2014-07-142-31/+24
| | | | | | | | This reverts commit r212957. It broke the self-host on code like this from LLVM's option library: for (auto Arg: filtered(Id0, Id1, Id2)) llvm-svn: 212965
* Improve error recovery around colon.Serge Pavlov2014-07-142-24/+31
| | | | | | | | | Recognize additional cases, when '::' is mistyped as ':'. This is a fix to RP18587 - colons have too much protection in member-declarations. Differential Revision: http://reviews.llvm.org/D3653 llvm-svn: 212957
* CodeGen: Let arrays be inputs to inline asmDavid Majnemer2014-07-141-5/+6
| | | | | | | | | | | An array showing up in an inline assembly input is accepted in ICC and GCC 4.8 This fixes PR20201. Differential Revision: http://reviews.llvm.org/D4382 llvm-svn: 212954
* ARM: Add NOP intrinsic mapping in arm_acle.hYi Kong2014-07-141-2/+8
| | | | llvm-svn: 212950
* ARM: Implement __builtin_arm_nop intrinsicYi Kong2014-07-141-0/+6
| | | | | | | | | | | This patch implements __builtin_arm_nop intrinsic for AArch32 and AArch64, which generates hint 0x0, the alias of NOP instruction. This intrinsic is necessary to implement ACLE __nop intrinsic. Differential Revision: http://reviews.llvm.org/D4495 llvm-svn: 212947
* clang-format: Improve cast detection (fix false positive).Daniel Jasper2014-07-141-0/+2
| | | | | | | | | | Before: fn(a)(b)+1; After: fn(a)(b) + 1; llvm-svn: 212935
* [x32] Add __ILP32__ macro for ILP32 platformsPavel Chupin2014-07-141-0/+6
| | | | | | | | | | | | | | | | Summary: Add __ILP32__ and _ILP32 macro for corresponding platforms. Cover x86_64-*-*-gnux32 with test. Test Plan: test added Reviewers: chandlerc, atanasyan Subscribers: cfe-commits, dschuff, zinovy.nis Differential Revision: http://reviews.llvm.org/D4473 llvm-svn: 212931
* [CMake] Update libdeps.NAKAMURA Takumi2014-07-142-0/+2
| | | | llvm-svn: 212920
* [CMake] Reorder libdeps by alphabetical order.NAKAMURA Takumi2014-07-144-5/+5
| | | | llvm-svn: 212919
* Superficial fix for PR20218: binding a function lvalue to a const reference toRichard Smith2014-07-141-17/+28
| | | | | | | | | | | | | a function pointer is neither better nor worse than binding a function lvalue to a function rvalue reference. Don't get confused and think that both bindings are binding to a function lvalue (which would make the lvalue form win); the const reference is binding to an rvalue. The "real" bug in PR20218 is still present: we're getting the wrong answer from template argument deduction, and that's what leads us to this weird overload set. llvm-svn: 212916
OpenPOWER on IntegriCloud