summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic
Commit message (Collapse)AuthorAgeFilesLines
* Avoid binding a reference to a dereferenced null pointer, if we try to emit aRichard Smith2012-08-171-0/+3
| | | | | | diagnostic before we have a source manager. llvm-svn: 162070
* Remove FIXME, the constraints contain more options than theEric Christopher2012-08-161-1/+0
| | | | | | current available documentation. llvm-svn: 162065
* Add a missing 'break' to ensure that we reject inline assemblyEric Christopher2012-08-161-1/+1
| | | | | | constraints we don't recognize. llvm-svn: 162064
* Fix undefined behavior: reference bound to dereferenced null pointer.Richard Smith2012-08-141-1/+2
| | | | llvm-svn: 161899
* Fix undefined behavior: don't bind a dereferenced null pointer to a reference.Richard Smith2012-08-141-1/+1
| | | | | | No functionality change. llvm-svn: 161832
* Frontend: define _LP64 in a target-independent wayDylan Noblesmith2012-08-101-6/+0
| | | | | | | | | | | | | | Instead of adding it to each individual subclass in Targets.cpp, simply check the appropriate target values. Where before it was only on x86_64 and ppc64, it's now also defined on mips64 and nvptx64. Also add a bunch of negative tests to ensure it is *not* defined on any other architectures while we're here. llvm-svn: 161685
* Add missing cctype includes.Joerg Sonnenberger2012-08-102-0/+2
| | | | llvm-svn: 161660
* clang support for Bitrig (an OpenBSD fork); patch by David Hill.Eli Friedman2012-08-081-0/+53
| | | | llvm-svn: 161546
* Revert part of r161175 which was wrong for OpenBSD's PowerPC target.Hans Wennborg2012-08-081-1/+0
| | | | | | Contributed by Brad Smith <brad@comstyle.com> llvm-svn: 161481
* Add OpenBSD arch targets for powerpc, arm, mips64, mips64el and sparc.Hans Wennborg2012-08-021-1/+13
| | | | | | Contributed by Brad Smith <brad@comstyle.com> llvm-svn: 161175
* TLS is not supported on OpenBSDHans Wennborg2012-08-011-0/+1
| | | | | | | This fixes PR13502 and adds a test to keep track of which targets support TLS and which do not. llvm-svn: 161124
* Fixes a segfault in Tooling when using pch's:Manuel Klimek2012-07-311-0/+4
| | | | | | | | Clear the FileManager's stat cache in between running translation units, as the stat cache loaded from a pch is only valid for one compiler invocation. llvm-svn: 161047
* Add a function to convert a single Unicode code point to a UTF8 sequence.Dmitri Gribenko2012-07-272-2/+17
| | | | llvm-svn: 160890
* clang/lib: [CMake] Reformat, alphabetize lists.NAKAMURA Takumi2012-07-271-1/+1
| | | | llvm-svn: 160850
* Change the way KEYNOMS is defined to be more comprehensible. Francois Pichet2012-07-241-2/+2
| | | | llvm-svn: 160663
* char16_t and char32_t are defined via typedef in MSVC 11 RC. So introduce a ↵Francois Pichet2012-07-221-1/+5
| | | | | | way to disable keywords under Microsoft mode. llvm-svn: 160612
* Add a per target max vector alignment field (e.g., 32-byte alignment for x86 ↵Chad Rosier2012-07-132-0/+3
| | | | | | | | | | due to AVX). Currently, if no aligned attribute is specified the alignment of a vector is inferred from its size. Thus, very large vectors will be over-aligned with no benefit. Target owners should set this target max. llvm-svn: 160209
* Modify tree printing mode for template type diffing. If a diagnostic hasRichard Trieu2012-07-131-2/+3
| | | | | | | multiple %diff's, only print the first tree and fallback to inline printing for the rest of the diagnostic. llvm-svn: 160193
* Add the ObjFW runtime. Patch by Jonathan Schleifer!John McCall2012-07-121-0/+3
| | | | llvm-svn: 160102
* clang/lib/Basic/CMakeLists.txt: Add missing dependency, ClangDiagnosticComment.NAKAMURA Takumi2012-07-121-0/+1
| | | | llvm-svn: 160096
* Enable comment parsing and semantic analysis to emit diagnostics. A fewDmitri Gribenko2012-07-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | diagnostics implemented -- see testcases. I created a new TableGen file for comment diagnostics, DiagnosticCommentKinds.td, because comment diagnostics don't logically fit into AST diagnostics file. But I don't feel strongly about it. This also implements support for self-closing HTML tags in comment lexer and parser (for example, <br />). In order to issue precise diagnostics CommentSema needs to know the declaration the comment is attached to. There is no easy way to find a decl by comment, so we match comments and decls in lockstep: after parsing one declgroup we check if we have any new, not yet attached comments. If we do -- then we do the usual comment-finding process. It is interesting that this automatically handles trailing comments. We pick up not only comments that precede the declaration, but also comments that *follow* the declaration -- thanks to the lookahead in the lexer: after parsing the declgroup we've consumed the semicolon and looked ahead through comments. Added -Wdocumentation-html flag for semantic HTML errors to allow the user to disable only HTML warnings (but not HTML parse errors, which we emit as warnings in -Wdocumentation). llvm-svn: 160078
* Introduce a flag in SourceManager to treat non-system source filesArgyrios Kyrtzidis2012-07-112-8/+22
| | | | | | | | | | | | | | | | | | | | as "volatile", meaning there's a high enough chance that they may change while we are trying to use them. This flag is only enabled by libclang. Currently "volatile" source files will be stat'ed immediately before opening them, because the file size stat info may not be accurate since when we got it (e.g. from the PCH). This avoids crashes when trying to reference mmap'ed memory from a file whose size is not what we expect. Note that there's still a window for a racing issue to occur but the window for it should be way smaller than before. We can consider later on to avoid mmap completely on such files. rdar://11612916 llvm-svn: 160074
* Emit -verify diagnostics even when we have a fatal error.Jordan Rose2012-07-112-25/+33
| | | | | | | | | | | | | | Previously we'd halt at the fatal error as expected, but not actually emit any -verify-related diagnostics. This lets us catch cases that emit a /different/ fatal error from the one we expected. This is implemented by adding a "force emit" mode to DiagnosticBuilder, which will cause diagnostics to immediately be emitted regardless of current suppression. Needless to say this should probably be used /very/ sparingly. Patch by Andy Gibbs! Tests for all of Andy's -verify patches coming soon. llvm-svn: 160053
* Fix handling of curly braces in NVPTX inline asmJustin Holewinski2012-07-111-0/+1
| | | | | | | | Fixes bug 13322 Patch by Dmitry Mikushin llvm-svn: 160050
* LLVM_ON_WIN32 case: use the proper key in the UniqueFiles map.Axel Naumann2012-07-111-1/+7
| | | | llvm-svn: 160041
* Improve r159256 following Chandler's comments:Axel Naumann2012-07-101-10/+9
| | | | | | Implement UniqueFileContainer::erase(), camelCase, add comment on future optimizations of the cache versus de-optimizations of invalidations. llvm-svn: 159997
* Properly update the FormattedArgs vector when the template type diffing fallsRichard Trieu2012-07-101-0/+9
| | | | | | back to regular type printing. llvm-svn: 159976
* Wire up -mrdrnd for X86.Benjamin Kramer2012-07-071-4/+27
| | | | | | | For some reason GCC decided to call the feature rdrnd instead of rdrand, which requires translating it for LLVM. llvm-svn: 159897
* Remove unreachable default case to pacify clang's -Wcovered-switch-default.Benjamin Kramer2012-07-061-1/+0
| | | | llvm-svn: 159829
* MIPS: Define __mips_dsp_rev / __mips_dspr2 / __mips_dsp macrosSimon Atanasyan2012-07-051-0/+23
| | | | | | if -mdsp or -mdspr2 options are provided. llvm-svn: 159774
* MIPS: Add -mdsp/-mno-dsp and -mdspr2/-mno-dspr2 command line options support.Simon Atanasyan2012-07-051-1/+1
| | | | llvm-svn: 159769
* MIPS: Define __mips16 macro if -mips16 option is provided.Simon Atanasyan2012-07-051-0/+8
| | | | llvm-svn: 159753
* MIPS: Replace the pair of boolean flags by enumeration to hold selected ↵Simon Atanasyan2012-07-051-24/+26
| | | | | | float ABI. llvm-svn: 159752
* MIPS: Add -mips16 / -mno-mips16 command line support.Simon Atanasyan2012-07-051-1/+2
| | | | llvm-svn: 159747
* A few more cleanups for the GNU family of ObjC runtimes.David Chisnall2012-07-041-1/+4
| | | | llvm-svn: 159708
* Rename the GCC Objective-C runtime to gcc from gnu-fragile and the GNUstepDavid Chisnall2012-07-031-6/+6
| | | | | | runtime to gnustep from gnu. Fix EH for the GCC runtime. llvm-svn: 159684
* Add additional architecture defines for PPC targets.Hal Finkel2012-07-031-9/+49
| | | | | | Patch by Andy Gibbs. llvm-svn: 159665
* Share ConvertUTF8toWide() between Lex and CodeGen.Nico Weber2012-07-032-0/+55
| | | | llvm-svn: 159634
* Documentation cleanup: Delete a duplicated/malformed doc comment.James Dennett2012-07-021-2/+0
| | | | llvm-svn: 159628
* Update the %diff modifer to have an alternate string print when a template treeRichard Trieu2012-06-291-7/+11
| | | | | | | | | | is selected. This will allow more flexibility when converting diagnostics to use template type diffing. Also updated the internal manual and test cases for correctly keeping the bold attribute and for tree printing. llvm-svn: 159463
* Support MIPS DSP Rev1 intrinsics. Simon Atanasyan2012-06-281-1/+10
| | | | | | This patch was reviewed in the llvm-commits list by Jim Grosbach. llvm-svn: 159366
* Fix for r159256 on Windows.Axel Naumann2012-06-271-0/+4
| | | | llvm-svn: 159262
* From Vassil Vassilev:Axel Naumann2012-06-271-0/+13
| | | | | | | add interface for removing a FileEntry from the cache. Forces a re-read the contents from disk, e.g. because a tool (like cling) wants to pick up a modified file. llvm-svn: 159256
* Add template type diffing to Clang. This feature will provide a betterRichard Trieu2012-06-261-1/+78
| | | | | | | | | | | | comparison between two templated types when they both appear in a diagnostic. Type elision will remove indentical template arguments, which can be disabled with -fno-elide-type. Cyan highlighting is applied to the differing types. For more formatting, -fdiagnostic-show-template-tree will output the template type as an indented text tree, with differences appearing inline. Template tree works with or without type elision. llvm-svn: 159216
* Remove a goofy CMake hack and use the standard CMake facilities toChandler Carruth2012-06-211-15/+15
| | | | | | | | | express library-level dependencies within Clang. This is no more verbose really, and plays nicer with the rest of the CMake facilities. It should also have no change in functionality. llvm-svn: 158888
* Introduce ObjCRuntime::hasWeakClassImport() and use it in the appropriateJohn McCall2012-06-201-2/+3
| | | | | | | | | places. I've turned this off for the GNU runtimes --- I don't know if they support weak class import, but it's easy enough for them to opt in. Also tweak a comment per review by Jordan. llvm-svn: 158860
* Restructure how the driver communicates information about theJohn McCall2012-06-203-0/+132
| | | | | | | | | | | | | | | | | | | | | | | | target Objective-C runtime down to the frontend: break this down into a single target runtime kind and version, and compute all the relevant information from that. This makes it relatively painless to add support for new runtimes to the compiler. Make the new -cc1 flag, -fobjc-runtime=blah-x.y.z, available at the driver level as a better and more general alternative to -fgnu-runtime and -fnext-runtime. This new concept of an Objective-C runtime also encompasses what we were previously separating out as the "Objective-C ABI", so fragile vs. non-fragile runtimes are now really modelled as different kinds of runtime, paving the way for better overall differentiation. As a sort of special case, continue to accept the -cc1 flag -fobjc-runtime-has-weak, as a sop to PLCompatibilityWeak. I won't go so far as to say "no functionality change", even ignoring the new driver flag, but subtle changes in driver semantics are almost certainly not intended. llvm-svn: 158793
* Revert predefined decl tracking.Meador Inge2012-06-191-1/+0
| | | | | | | | | | r158085 added some logic to track predefined declarations. The main reason we had predefined declarations in the input was because the __builtin_va_list declarations were injected into the preprocessor input. As of r158592 we explicitly build the __builtin_va_list declarations. Therefore the predefined decl tracking is no longer needed. llvm-svn: 158732
* Fix the location of the fixit for -Wnewline-eof.Jordan Rose2012-06-191-2/+3
| | | | | | | It turns out SourceManager treating the "one-past-the-end" location as invalid, but then failing to set the invalid flag properly. llvm-svn: 158699
* Documentation cleanup: escaped # characters in Doxygen comments.James Dennett2012-06-171-3/+3
| | | | llvm-svn: 158614
OpenPOWER on IntegriCloud