aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2012-11-11s/BCPLComment/LineComment/Nico Weber
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167690 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-10objective-C blocks: Change BLOCK_HAS_EXTENDED_LAYOUT to be 1<<31.Fariborz Jahanian
lower 24bit is currently being used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167678 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-10Rework my implementation of circular-reference finding to not useDouglas Gregor
CXXRecordDecl::forallBases, which does *not* do what I need. Fixes the failure introduced in r167651. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167668 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-10Add clang support of RTM from TSXMichael Liao
- New options '-mrtm'/'-mno-rtm' are added to enable/disable RTM feature - Builtin macro '__RTM__' is defined if RTM feature is enabled - RTM intrinsic header is added and introduces 3 new intrinsics, namely '_xbegin', '_xend', and '_xabort'. - 3 new builtins are added to keep compatible with gcc, namely '__builtin_ia32_xbegin', '__builtin_ia32_xend', and '__builtin_ia32_xabort'. - Test cases for pre-defined macro and new intrinsic codegen are added. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167665 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-10Revert "Disable -Wimplicit-fallthrough when not using C++.", pending further ↵Ted Kremenek
discussion on cfe-dev. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167662 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-10Disable -Wimplicit-fallthrough when not using C++.Ted Kremenek
The rationale is that there is no good workflow to silence the warning for specific cases, other than using pragmas. This is because the attribute to decorate an explicit fall through is only available in C++11. By that argument, this should probably also be disabled unless one is using C++11, but apparently there is an explicit test case for this warning when using C++98. This will require further discussion on cfe-commits. Fixes: <rdar://problem/12584746> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167655 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-10[analyzer] When invalidating symbolic offset regions, take fields into account.Jordan Rose
Previously, RegionStore was being VERY conservative in saying that because p[i].x and p[i].y have a concrete base region of 'p', they might overlap. Now, we check the chain of fields back up to the base object and check if they match. This only kicks in when dealing with symbolic offset regions because RegionStore's "base+offset" representation of concrete offset regions loses all information about fields. In cases where all offsets are concrete (s.x and s.y), RegionStore will already do the right thing, but mixing concrete and symbolic offsets can cause bindings to be invalidated that are known to not overlap (e.g. p[0].x and p[i].y). This additional refinement is tracked by <rdar://problem/12676180>. <rdar://problem/12530149> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167654 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-10Handle redeclarations of catch variables in catch blocks.David Blaikie
Fix to regression caused by r167650, caught by Richard Smith in code review. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167653 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-10Diagnostic circular inheritance involving dependent base classes. WeDouglas Gregor
would have diagnosed this at instantiation time anyway, if only we didn't hang on all of these test cases. Fixes <rdar://problem/12629723> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167651 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-10PR14296: function parameter name collisions in function try/catchDavid Blaikie
C++11 3.3.3/2 "A parameter name shall not be redeclared in the outermost block of the function definition nor in the outermost block of any handler associated with a function-try-block." It's not totally clear to me whether the "FIXME" case is covered by this, but Richard Smith thinks it probably should be. It's just a bit more involved to fix that case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167650 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-10Make __LDBL_MAX__ etc. have the correct type on targets where long ↵Eli Friedman
double/double/etc. have the same format. PR14285. Based on patch by Jeroen Dobbelaere. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167649 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-09-Wobjc-literal-compare: look through implicit casts.Jordan Rose
This warning was failing to fire under ARC because of the implicit lifetime casts added around the object literal expression. <rdar://problem/11300873>, again. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167648 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-09PR13788: Don't perform checks on the initializer of a dependently-typedRichard Smith
variable. Previously we didn't notice the type was dependent if the only dependence came from an array bound. Patch by Brian Brooks! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167642 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-09PR14303: Add a NoDriverOption flag to those options which are not accepted byRichard Smith
the driver (the options defined in CC1Options.td) and exclude their help from "clang --help". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167638 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-09Add a SourceLocation::printToString() that returns in a std::string what dump()Argyrios Kyrtzidis
writes to stderr; for debugging purposes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167629 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-09Add a FileCharacteristic parameter to SourceManager::createFileIDForMemBufferArgyrios Kyrtzidis
for completeness and use it in CompilerInstance::InitializeSourceManager if the input is a memory buffer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167628 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-09Turn FrontendInputFile into an immutable class and have it also acceptArgyrios Kyrtzidis
a memory buffer instead of only a filename. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167627 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-09Make CompilerInstance::InitializeSourceManager accept a FrontendInputFile,Argyrios Kyrtzidis
no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167626 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-09Implement -mstrict-align using '-backend-option -arm-strict-align' as this savesChad Rosier
us from having to make any backend changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167623 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-09[driver] Add a -mstrict-align compiler option for ARM targets.Chad Rosier
rdar://12340498 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167619 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-09Improved support for removing the comma preceding __VA_ARGS__ where __VA_ARGS__Andy Gibbs
is empty in a variadic macro expansion. This fixes a divergence in support for the ", ## __VA_ARGS__" GCC extension which differed in behaviour when in strict C99 mode (note: there is no change in behaviour has been made in the gnu99 mode that clang uses by default). In addition, there is improved support for the Microsoft alternative extension ", __VA_ARGS__". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167613 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-09Use isInvalidDecl() instead of isStatic() as suggested by dblaikie.Nico Weber
I couldn't think of a way to make an operator() invalid without returning earlier from this function other than making it static, so no new test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167609 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-09Don't crash on calling static member overloaded operator, PR14120Nico Weber
Patch from Brian Brooks! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167604 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-09Remove old driver code to grab the iOS simulator version from the -D option.Bob Wilson
We can now rely on the -mios-simulator-version-min command line option and remove the awful hack. <rdar://problem/10304510> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167603 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-09[ms] Implement int64_t version of mangleNumber() in terms of the APSInt version.Nico Weber
No intended functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167602 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-08[Windows] Fix mangling of number literal '0'Nico Weber
Do this by making the mangleNumber(APSInt) overload look like the int64_t version. (The latter should probably just delegate to the former). Test from Evgeny Eltsin! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167599 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-08Remove more code related to invoking llvm-gcc. <rdar://problem/11991320>Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167598 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-08Fix a source range regression in C++ new expressions with call initializers.David Blaikie
Introduced in r167507, discovered in review by Abramo Bagnara. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167597 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-08Fix a bug I found while preparing my devmtg talk: When passing NULL to aMatt Beaumont-Gay
function that takes a const Foo&, where Foo is convertible from a large number of pointer types, we print ALL the overloads, no matter the setting of -fshow-overloads. There is potential follow-on work in unifying the "print candidates, but not too many" logic between OverloadCandidateSet::NoteCandidates and ImplicitConversionSequence::DiagnoseAmbiguousConversion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167596 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-08LiteralSupport: Don't overflow the temporary buffer when decoding invalid ↵Benjamin Kramer
string parts. Instead just use a dummy buffer, we're not going to use the decoded string anyways. Fixes PR14292. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167594 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-08LiteralSupport: Clean up style violations. No functionality change.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167593 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-08Allow to pass from syntactic form of InitListExpr to semantic form (just as ↵Abramo Bagnara
viceversa). No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167591 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-08Avoid to write function name in comment. Thanks to Dmitri Gribenko.Abramo Bagnara
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167588 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-08Readded line removed by mistake.Abramo Bagnara
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167587 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-08Fixed converted ConstantArrayTypeLoc range. Added a missing testcase for ↵Abramo Bagnara
ConstructorDecl source range. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167583 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-08Fixed range of implicit MemberExpr.Abramo Bagnara
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167581 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-08Set TLSSupported to false on Haiku.Benjamin Kramer
Haiku does not support this (yet). Leaving it set to true leads to configure scripts detecting __thread being available and Clang emitting code for it, resulting in binaries the runtime_loader will refuse to load. Patch by Jonathan Schleifer! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167576 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-08Driver/Darwin: The -arch argument values aren't exactly the arch names from aDaniel Dunbar
triple. - Translate the special case of powerpc to its expected -arch name. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167571 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-08Rip out a bunch of code for invoking gcc from clang.Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167567 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-08Remove code to fall back to llvm-gcc for i386 kexts.Bob Wilson
More cleanups to follow in separate commits.... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167566 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-08PR14284: crash on ext-valid returning NULL from a void functionDavid Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167565 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-07When deciding whether to convert an array construction loop into a memcpy, lookRichard Smith
at whether the *selected* constructor would be trivial rather than considering whether the array's element type has *any* non-trivial constructors of the relevant kind. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167562 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-07[Driver] Fix -Wp,-MMD pr13959Michael J. Spencer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167559 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-07Reduce nesting. No functionality change.Nico Weber
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167551 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-07When template deduction fails on a derived class, try a template deduction onRichard Trieu
the base class. If the base class deduction succeeds, use those results. If it fails, keep using the results from the derived class template deduction. This prevents an assertion later where the type of deduction failure doesn't match up with the template deduction info. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167550 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-07objective-C blocks: bring back the CharUnit patch forFariborz Jahanian
captured block variable layout meta-data. No intended change in functionality. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167549 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-07PR12713 - crash on invalid due to unmatched parens in decltypeDavid Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167547 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-07objective-C modern translator. Start the lineFariborz Jahanian
directive on a new line. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167542 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-07When loading a module fails because it is out of date, rebuild thatDouglas Gregor
module in place. <rdar://problem/10138913> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167539 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-07[analyzer] Check that the argument to CFMakeCollectable is non-NULL.Jordan Rose
Patch by Sean McBride! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167537 91177308-0d34-0410-b5e6-96231b3b80d8