summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* Switch the X86TargetInfo object from a string representation of theChandler Carruth2011-09-281-57/+179
| | | | | | | | | | | | | | | | | | selected CPU model to the enumeration. This parses the string representation once using a StringSwitch on SetCPU. It returns an error for strings which are not recognized (yay!). Finally it replaces ridiculous if-chains with switches that cover all enumerators. The last change required adding several missing entries to the features function. These were obvious on inspection. Yay for a pattern that gives warnings when we miss one. No new test cases yet, as I want to get the 64-bit errors working first. I'll then start fleshing out the testing more. Currently I'm primarily testing on Linux, but I'm hoping check whether there are interesting differences on darwin before long... llvm-svn: 140685
* Introduce an enumeration for the x86 CPUs recognized by Clang. I'veChandler Carruth2011-09-281-0/+124
| | | | | | | tried to give these nice doxyments, but if I've gotten any of my history wrong, please chime in. llvm-svn: 140684
* Clean up a bit of the uses of CPU in the TargetInfo classes. This makesChandler Carruth2011-09-281-11/+6
| | | | | | | | | | | | it an error if a CPU is provided for a target that doesn't implement logic handling CPU settings, to match the ABI settings. It also removes the CPU parameter from the getDefaultFeatures method. This parameter was always filled in with the same value as setCPU was called with, and at this point every single target implementation that referenced the CPU within this function has needed to store the CPU via setCPU anyways in order to implement other interface points. llvm-svn: 140683
* Driver: Fix two bad typos that were breaking the buildbots.Benjamin Kramer2011-09-282-3/+2
| | | | llvm-svn: 140682
* Begin fixing Clang's predefined macros for various architectures. ThisChandler Carruth2011-09-281-6/+101
| | | | | | | | | | | | | | | | is *very* much a WIP that I'll be refining over the next several commits, but I need to get this checkpoint in place for sanity. This also adds a much more comprehensive test for architecture macros, which is roughly generated by inspecting the behavior of a trunk build of GCC. It still requires some massaging, but eventually I'll even check in the script that generates these so that others can use it to append more tests for more architectures, etc. Next up is a bunch of simplification of the Targets.cpp code, followed by a lot more test cases once we can reject invalid architectures. llvm-svn: 140673
* Introduce Decl::getParentFunctionOrMethod which if the decl is defined insideArgyrios Kyrtzidis2011-09-281-5/+5
| | | | | | a function/method/block it returns the corresponding DeclContext, otherwise it returns null. llvm-svn: 140672
* [driver] If no OSX or iOS target has been specified and we're compiling for Chad Rosier2011-09-281-0/+6
| | | | | | | armv7, go ahead as assume we're targeting iOS. rdar://10147774 llvm-svn: 140668
* PR11002: Make sure we emit sentinel warnings with a valid source location. ↵Eli Friedman2011-09-271-4/+7
| | | | | | (Ideally, we want to use the location returned by getLocForEndOfToken, but that is not always successful.) llvm-svn: 140658
* Include prefix with default synthesized ivars.Ted Kremenek2011-09-271-3/+14
| | | | llvm-svn: 140657
* Only print _Bool as 'bool' when 'bool' is defined as an object-likeDouglas Gregor2011-09-278-59/+81
| | | | | | macro whose only replacement token is '_Bool'. llvm-svn: 140656
* Remove the egregious hack that made Objective-C++ ARC work with olderDouglas Gregor2011-09-271-70/+1
| | | | | | | versions of libc++. Newer versions of libc++ know how to deal with ARC properly. Fixes <rdar://problem/10062179>. llvm-svn: 140651
* When 'bool' is not a built-in type but is defined as a macro, printDouglas Gregor2011-09-2714-75/+73
| | | | | | | 'bool' rather than '_Bool' within types, to make things a bit more readable. Fixes <rdar://problem/10063263>. llvm-svn: 140650
* objcetive-c-arc: When overriding a method, its ns_consumed patameterFariborz Jahanian2011-09-271-3/+30
| | | | | | | | attribute must match its overriden method. Same also for ns_returns_retained/not_retained on the result type. This is one half of // rdar://10187884 llvm-svn: 140649
* Fix a crash in MallocOverflowSecurityChecker. Patch by Lei Zhang.Anna Zaks2011-09-271-0/+2
| | | | llvm-svn: 140648
* Check for GCC paths that have the target triple in them. This is required ↵David Chisnall2011-09-273-47/+54
| | | | | | for a lot of cross-compile toolchains. Also add some slightly better support for -B. llvm-svn: 140645
* Get rid of useless helper Sema::CastCategory.Eli Friedman2011-09-275-16/+11
| | | | llvm-svn: 140642
* de-tmpify clang.Benjamin Kramer2011-09-2713-97/+90
| | | | llvm-svn: 140637
* Some changes to improve compatibility for MSVC-style C++ struct layout. ↵Eli Friedman2011-09-272-41/+216
| | | | | | Patch from r4start at gmail.com (with some minor modifications by me). llvm-svn: 140623
* Constant evaluation for pointer CXXScalarValueInitExprPeter Collingbourne2011-09-271-0/+2
| | | | llvm-svn: 140613
* Introduce a callback to PPCallbacks for lines skipped by the preprocessor.Argyrios Kyrtzidis2011-09-271-3/+10
| | | | | | Patch by Jason Haslam! llvm-svn: 140612
* Break SourceManager::translateFileLineCol into translateFile, no ↵Argyrios Kyrtzidis2011-09-271-5/+16
| | | | | | functionality change. llvm-svn: 140610
* When parsing a character literal, extract the characters from theDouglas Gregor2011-09-271-1/+1
| | | | | | | | buffer as an 'unsigned char', so that integer promotion doesn't sign-extend character values > 127 into oblivion. Fixes <rdar://problem/10188919>. llvm-svn: 140608
* Revert r139989 and r140031, which implemented the Objective-C typeDouglas Gregor2011-09-272-33/+9
| | | | | | | | | system change in <rdar://problem/10109725> that allows conversion from 'self' in class methods to the root of the class's hierarchy. This conversion rule is a hack that has non-trivial repurcussions (particularly with overload resolution). llvm-svn: 140605
* Let -B work for ld paths on Linux.David Chisnall2011-09-271-2/+2
| | | | llvm-svn: 140604
* Revert r140589. It was causing failures during llvm compilation:Bill Wendling2011-09-272-53/+2
| | | | | | | | | | | | | | llvm[1]: Compiling CommandLine.cpp for Debug+Asserts build if /Users/void/llvm/llvm-opt.obj/Release+Asserts/bin/clang++ -I/Users/void/llvm/llvm.obj/include -I/Users/void/llvm/llvm.obj/lib/Support -I/Users/void/llvm/llvm.src/include -I/Users/void/llvm/llvm.src/lib/Support -D_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -g -fno-exceptions -fno-common -Woverloaded-virtual -Wcast-qual -m64 -Wall -W -Wno-unused-parameter -Wwrite-strings -c -MMD -MP -MF "/Users/void/llvm/llvm.obj/lib/Support/Debug+Asserts/CommandLine.d.tmp" -MT "/Users/void/llvm/llvm.obj/lib/Support/Debug+Asserts/CommandLine.o" -MT "/Users/void/llvm/llvm.obj/lib/Support/Debug+Asserts/CommandLine.d" /Users/void/llvm/llvm.src/lib/Support/CommandLine.cpp -o /Users/void/llvm/llvm.obj/lib/Support/Debug+Asserts/CommandLine.o ; \ then /bin/mv -f "/Users/void/llvm/llvm.obj/lib/Support/Debug+Asserts/CommandLine.d.tmp" "/Users/void/llvm/llvm.obj/lib/Support/Debug+Asserts/CommandLine.d"; else /bin/rm "/Users/void/llvm/llvm.obj/lib/Support/Debug+Asserts/CommandLine.d.tmp"; exit 1; fi In file included from /Users/void/llvm/llvm.src/lib/Support/CommandLine.cpp:25: /Users/void/llvm/llvm.src/include/llvm/Support/system_error.h:690:14: error: unknown type name 'make_error_condition'; did you mean 'error_condition'? {*this = make_error_condition(_e);} ^~~~~~~~~~~~~~~~~~~~ error_condition ... llvm-svn: 140599
* Renaming PathDiagnosticClients.h to PathDiagnosticConsumers.h (issue 5397)David Blaikie2011-09-274-5/+5
| | | | llvm-svn: 140596
* PR11009: Fix a FIXME which was leading to an assertion failure with rvalue ↵Eli Friedman2011-09-271-4/+1
| | | | | | references. llvm-svn: 140594
* Add typo correction for the type name in C++ "new" statementsKaelyn Uhrain2011-09-272-2/+53
| | | | llvm-svn: 140589
* objc - don't complain about unimplemented property when conformingFariborz Jahanian2011-09-271-1/+2
| | | | | | | protocol declares the property, as well as one of its superclasses. Property will be implemented in the super class. // rdar://10120691 llvm-svn: 140586
* Fix regression of -Warray-bounds involving varargs functions [PR 11007].Ted Kremenek2011-09-261-0/+4
| | | | llvm-svn: 140584
* Add a comment in ASTReader::ReadPragmaDiagnosticMappings that the user bitArgyrios Kyrtzidis2011-09-261-0/+1
| | | | | | is set by the setDiagnosticMapping call. llvm-svn: 140578
* objc - compare setter/property types usingFariborz Jahanian2011-09-261-2/+2
| | | | | | hasSameUnqualifiedType in //rdar://10156674 llvm-svn: 140576
* objc - in matching setter argument type to its property type,Fariborz Jahanian2011-09-261-1/+2
| | | | | | ingore the type qualifiers. // rdar://10156674 llvm-svn: 140571
* objc-arc: mark functions which return types which can't be dealt withFariborz Jahanian2011-09-261-1/+3
| | | | | | | in arc mode and are in system headers as unavailable. // rdar://10186625 llvm-svn: 140565
* Make necessary changes in AddMIPSTargetArgs for targeting Mips64. Enable use ofAkira Hatanaka2011-09-261-16/+52
| | | | | | | -mcpu. llvm-svn: 140562
* CheckStringInit has side effects; make sure we don't run it in VerifyOnly ↵Eli Friedman2011-09-261-3/+5
| | | | | | | | mode, at least for the moment. <rdar://problem/10185490>. Sebastian, please take a look at this; I'm not entirely sure it is the right thing to do. llvm-svn: 140552
* Fix a typo in the new VerifyOnly handling in SemaInit. No visible ↵Eli Friedman2011-09-261-1/+1
| | | | | | difference at the moment, as far as I can tell. llvm-svn: 140546
* Fix assertion hit when @encoding C++ classes. rdar://10172840 & ↵Argyrios Kyrtzidis2011-09-261-2/+3
| | | | | | http://llvm.org/PR10990 llvm-svn: 140542
* Add back support for a manually formatted section of the diagnosticChandler Carruth2011-09-261-1/+4
| | | | | | | | | | | message. Specifically, we now only line-wrap the first line of te diagnostic message and assume the remainder is manually formatted. While adding it back, simplify the logic for doing this. Finally, add a test that ensures we actually preserve this feature. =D *Now* its not dead code. Thanks to Doug for the test case. llvm-svn: 140538
* Update comments.Eric Christopher2011-09-261-3/+3
| | | | llvm-svn: 140531
* Fix comment to reflect reality.Eric Christopher2011-09-261-2/+1
| | | | llvm-svn: 140530
* Re-arrange and bitfieldify data members of CXXConstructExpr to save aDouglas Gregor2011-09-261-3/+3
| | | | | | little storage. llvm-svn: 140529
* Diagnose attempts to use 'using typename' with a non-identifier name,Douglas Gregor2011-09-261-0/+9
| | | | | | from Stepan Dyatkovskiy. Fixes PR10925. llvm-svn: 140528
* Hoist and beef up the asserts about the level of infrastructure expectedChandler Carruth2011-09-261-5/+10
| | | | | | | | | | | | | | | | | when working with a diagnostic attached to a source location. Also comment more thoroughly why its important to handle non-location diagnostic messages separately. Finally, hoist the creation of the TextDiagnostic object up to the beginning of the location-based diagnostics. This paves the way for sinking more and more of the logic into this class. When everything below this constructor is sunk into the TextDiagnostic class it should be sufficiently "feature complete" to accomplish my two goals: 1) Have the printing of a macro expansion note use the exact same code as any other note. 2) Be able to implement clang_formatDiagnostic in terms of this class. llvm-svn: 140526
* Switch the emission of diagnostics without a source location toChandler Carruth2011-09-261-22/+32
| | | | | | | | | | | | | | | | | | | | | a dedicated path. The logic for such diagnostics is much simpler than for others. This begins to make an important separation in this routine. We expect most (and most interesting) textual diagnostics to be made in the presence of at least *some* source locations and a source manager. However the DiagnosticConsumer must be prepared to diagnose errors even when the source manager doesn't (yet) exist or when there is no location information at all. In order to sink more and more logic into the TextDiagnostic class while minimizing its complexity, my plan is to force the DiagnosticConsumer to special case diagnosing any locationless messages and then hand the rest to the TextDiagnostic class. I'd appreciate any comments on this design. It requires a bit of code duplication in order to keep interfaces simple. Alternatively, if we really need TextDiagnostic to be capable of handling diagnostics even in the absence of a viable SourceManager, then this split isn't necessary. llvm-svn: 140525
* Extract the actual printing of the message string into a helperChandler Carruth2011-09-261-32/+33
| | | | | | | | | function. Doing this conveniently requires moving the word wrapping to use a StringRef which seems generally an improvement. There is a lot that could be simplified in the word wrapping by using StringRef that I haven't looked at yet... llvm-svn: 140524
* Group the helpers for word wrapping with the primary routine. NoChandler Carruth2011-09-261-92/+92
| | | | | | functionality changed. llvm-svn: 140523
* Associate the macro arguments location map with a FileID insteadArgyrios Kyrtzidis2011-09-261-17/+17
| | | | | | | of a ContentCache, since multiple FileIDs can have the same ContentCache but the expanded macro arguments locations will be different. llvm-svn: 140521
* Don't map a file:line:col triplet that is inside the preamble range toArgyrios Kyrtzidis2011-09-261-12/+44
| | | | | | | | | | | | | | a "loaded" location of the precompiled preamble. Instead, handle specially locations of preprocessed entities: -When looking up for preprocessed entities, map main file locations inside the preamble range to a preamble loaded location. -When getting the source range of a preprocessing cursor, map preamble loaded locations back to main file locations. Fixes rdar://10175093 & http://llvm.org/PR10999 llvm-svn: 140519
* Properly initialize Preprocessor::CurLexerKind to avoid use of uninitialized ↵Zhongxing Xu2011-09-261-2/+2
| | | | | | variable. llvm-svn: 140514
OpenPOWER on IntegriCloud