d6f716ab2a 
								
							 
						 
						
							
							
								
								[driver] Parse diagnostic args in the driver.  
							
							... 
							
							
							
							Previously, only diagnostics thrown by the cc1 process were
actually honoring the diagnostic options given on the command line,
like -Werror.
Reuse the existing code in Frontend currently used for cc1,
adjusting it to not interpret -Wl, linker flags as warnings.
Also fix a faulty test exposed by this change.
It wasn't actually testing anything, and was giving this warning:
clang-3: warning: argument unused during compilation: '-verify'
Which -Werror didn't turn into an error because it was output
by the driver, not the cc1 process, and diagnostic options
weren't parsed by the driver. And you couldn't see the warning
when running the test suite.
Fixes PR12181.
Patch by Dylan Noblesmith <nobled@dreamwidth.org>.
llvm-svn: 152660 
							
						 
						
							2012-03-13 20:09:56 +00:00  
				
					
						
							
							
								 
						
							
								c95d81924d 
								
							 
						 
						
							
							
								
								Basic: import IntrusiveRefCntPtr<> into clang namespace  
							
							... 
							
							
							
							The class name is long enough without the llvm:: added.
Also bring in RefCountedBase and RefCountedBaseVPTR.
llvm-svn: 150958 
							
						 
						
							2012-02-20 14:00:23 +00:00  
				
					
						
							
							
								 
						
							
								f1a13f29f2 
								
							 
						 
						
							
							
								
								drop more llvm:: prefixes on SmallString<>  
							
							... 
							
							
							
							More cleanup after r149799.
llvm-svn: 150380 
							
						 
						
							2012-02-13 12:32:26 +00:00  
				
					
						
							
							
								 
						
							
								1cd1069b68 
								
							 
						 
						
							
							
								
								drop more llvm:: prefixes on OwningPtr<>  
							
							... 
							
							
							
							More cleanup after r149798.
llvm-svn: 150379 
							
						 
						
							2012-02-13 12:32:21 +00:00  
				
					
						
							
							
								 
						
							
								422377cfd3 
								
							 
						 
						
							
							
								
								rename -ccc-host-triple into -target  
							
							... 
							
							
							
							llvm-svn: 148582 
							
						 
						
							2012-01-20 22:01:23 +00:00  
				
					
						
							
							
								 
						
							
								d749c6bf2e 
								
							 
						 
						
							
							
								
								Revert r148138; it's causing test failures.  
							
							... 
							
							
							
							llvm-svn: 148141 
							
						 
						
							2012-01-13 21:33:06 +00:00  
				
					
						
							
							
								 
						
							
								9a8d528ddf 
								
							 
						 
						
							
							
								
								rename -ccc-host-triple into -target  
							
							... 
							
							
							
							llvm-svn: 148138 
							
						 
						
							2012-01-13 20:37:02 +00:00  
				
					
						
							
							
								 
						
							
								1ced737ebf 
								
							 
						 
						
							
							
								
								remove unneeded config.h includes  
							
							... 
							
							
							
							llvm-svn: 147195 
							
						 
						
							2011-12-22 22:49:47 +00:00  
				
					
						
							
							
								 
						
							
								8188c8a1f3 
								
							 
						 
						
							
							
								
								rename getHostTriple into getDefaultTargetTriple in clang  
							
							... 
							
							
							
							llvm-svn: 143503 
							
						 
						
							2011-11-01 21:33:06 +00:00  
				
					
						
							
							
								 
						
							
								05de0298d2 
								
							 
						 
						
							
							
								
								Rip out flags for controlling C++ "production mode" separately.  
							
							... 
							
							
							
							This is old leftover cruft from the days when C++ was not yet ready
for prime time.
llvm-svn: 141063 
							
						 
						
							2011-10-04 05:34:14 +00:00  
				
					
						
							
							
								 
						
							
								9c902b5502 
								
							 
						 
						
							
							
								
								Rename Diagnostic to DiagnosticsEngine as per issue 5397  
							
							... 
							
							
							
							llvm-svn: 140478 
							
						 
						
							2011-09-25 23:23:43 +00:00  
				
					
						
							
							
								 
						
							
								494eb062b5 
								
							 
						 
						
							
							
								
								Match LLVM change: TargetRegistry and TargetSelect have been moved to Support.  
							
							... 
							
							
							
							llvm-svn: 138451 
							
						 
						
							2011-08-24 18:09:14 +00:00  
				
					
						
							
							
								 
						
							
								be10f9853c 
								
							 
						 
						
							
							
								
								When the compiler crashes, the compiler driver now produces diagnostic  
							
							... 
							
							
							
							information including the fully preprocessed source file(s) and command line 
arguments.  The developer is asked to attach this diagnostic information to a 
bug report.
rdar://9575623
llvm-svn: 136702 
							
						 
						
							2011-08-02 17:58:04 +00:00  
				
					
						
							
							
								 
						
							
								0e62c1cc0b 
								
							 
						 
						
							
							
								
								remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports  
							
							... 
							
							
							
							them into the clang namespace.
llvm-svn: 135852 
							
						 
						
							2011-07-23 10:55:15 +00:00  
				
					
						
							
							
								 
						
							
								1988642124 
								
							 
						 
						
							
							
								
								Temporarily revert r135614 while I fix the cmake build.  
							
							... 
							
							
							
							llvm-svn: 135621 
							
						 
						
							2011-07-20 21:16:17 +00:00  
				
					
						
							
							
								 
						
							
								e3805fc118 
								
							 
						 
						
							
							
								
								When the compiler crashes, the compiler driver now produces diagnostic information  
							
							... 
							
							
							
							including the fully preprocessed source file(s) and command line arguments.  The 
developer is asked to attach this diagnostic information to a bug report.
llvm-svn: 135614 
							
						 
						
							2011-07-20 20:26:32 +00:00  
				
					
						
							
							
								 
						
							
								39ec119132 
								
							 
						 
						
							
							
								
								Slightly improve the code to derive target from program name to not  
							
							... 
							
							
							
							fault if no arguments are given.
llvm-svn: 134618 
							
						 
						
							2011-07-07 16:57:26 +00:00  
				
					
						
							
							
								 
						
							
								529c03bc1e 
								
							 
						 
						
							
							
								
								Driver: Sketch driver support for a CC_LOG_DIAGNOSTICS options, similar to the  
							
							... 
							
							
							
							existing CC_PRINT_OPTIONS and CC_PRINT_HEADERS, which can be used to
transparently capture the compiler diagnostics from a build.
llvm-svn: 129082 
							
						 
						
							2011-04-07 18:01:20 +00:00  
				
					
						
							
							
								 
						
							
								ce6c42f65f 
								
							 
						 
						
							
							
								
								switch a few Driver APIs to use llvm::ArrayRef, cleaning up code.  
							
							... 
							
							
							
							llvm-svn: 128142 
							
						 
						
							2011-03-23 04:04:01 +00:00  
				
					
						
							
							
								 
						
							
								f6ce2fb1b3 
								
							 
						 
						
							
							
								
								Refactor program name logic. Extend it to infer the target triple from  
							
							... 
							
							
							
							the program name, if it includes it as proper prefix. This makes calling
clang with -ccc-host-triple x86_64-linux the same as calling it with the
name x86_64-linux-clang.
llvm-svn: 127753 
							
						 
						
							2011-03-16 20:15:43 +00:00  
				
					
						
							
							
								 
						
							
								b86f5f4106 
								
							 
						 
						
							
							
								
								If called as *cpp or *cpp-[^-]*, run only the preprocessor. If no  
							
							... 
							
							
							
							input is specified, use stdin implicitly. Based on a patch from
Roman Divacky.
llvm-svn: 127137 
							
						 
						
							2011-03-06 23:31:01 +00:00  
				
					
						
							
							
								 
						
							
								ac540b3859 
								
							 
						 
						
							
							
								
								clang: Add support for a CC_PRINT_HEADERS environment variable, which mirrors  
							
							... 
							
							
							
							CC_PRINT_OPTIONS and can be used to get some out-of-band information on header
usage from a build.
llvm-svn: 124751 
							
						 
						
							2011-02-02 21:11:35 +00:00  
				
					
						
							
							
								 
						
							
								a09c6cca72 
								
							 
						 
						
							
							
								
								Add missing <cctype> include, from Joerg Sonnenberger  
							
							... 
							
							
							
							llvm-svn: 123668 
							
						 
						
							2011-01-17 19:15:43 +00:00  
				
					
						
							
							
								 
						
							
								740857fa10 
								
							 
						 
						
							
							
								
								Replace all uses of PathV1::makeAbsolute with PathV2::fs::make_absolute.  
							
							... 
							
							
							
							llvm-svn: 122340 
							
						 
						
							2010-12-21 16:45:57 +00:00  
				
					
						
							
							
								 
						
							
								e47230f9b5 
								
							 
						 
						
							
							
								
								Replace all uses of PathV1::get{Basename,Dirname,Suffix} with their PathV2 equivalents.  
							
							... 
							
							
							
							llvm-svn: 122140 
							
						 
						
							2010-12-18 04:13:32 +00:00  
				
					
						
							
							
								 
						
							
								e169675474 
								
							 
						 
						
							
							
								
								Replace all uses of PathV1::getLast with PathV2::filename.  
							
							... 
							
							
							
							llvm-svn: 122117 
							
						 
						
							2010-12-18 00:19:12 +00:00  
				
					
						
							
							
								 
						
							
								d9da7a1f16 
								
							 
						 
						
							
							
								
								MemoryBuffer API update.  
							
							... 
							
							
							
							llvm-svn: 121956 
							
						 
						
							2010-12-16 03:28:14 +00:00  
				
					
						
							
							
								 
						
							
								f25faaaffb 
								
							 
						 
						
							
							
								
								Use error_code instead of std::string* for MemoryBuffer.  
							
							... 
							
							
							
							llvm-svn: 121378 
							
						 
						
							2010-12-09 17:36:38 +00:00  
				
					
						
							
							
								 
						
							
								8aaf49959c 
								
							 
						 
						
							
							
								
								Merge System into Support.  
							
							... 
							
							
							
							llvm-svn: 120297 
							
						 
						
							2010-11-29 18:12:39 +00:00  
				
					
						
							
							
								 
						
							
								d004064864 
								
							 
						 
						
							
							
								
								Refactoring of Diagnostic class.  
							
							... 
							
							
							
							-Move the stuff of Diagnostic related to creating/querying diagnostic IDs into a new DiagnosticIDs class.
-DiagnosticIDs can be shared among multiple Diagnostics for multiple translation units.
-The rest of the state in Diagnostic object is considered related and tied to one translation unit.
-Have Diagnostic point to the SourceManager that is related with. Diagnostic can now accept just a
   SourceLocation instead of a FullSourceLoc.
-Reflect the changes to various interfaces.
llvm-svn: 119730 
							
						 
						
							2010-11-18 20:06:41 +00:00  
				
					
						
							
							
								 
						
							
								4ab36ba726 
								
							 
						 
						
							
							
								
								Turns out that we may end up calling dladdr on GetExecutablePath, give it external linkage to make sure the lookup works on all platforms.  
							
							... 
							
							
							
							llvm-svn: 117813 
							
						 
						
							2010-10-30 17:32:40 +00:00  
				
					
						
							
							
								 
						
							
								c482735d89 
								
							 
						 
						
							
							
								
								This function doesn't need external linkage either.  
							
							... 
							
							
							
							llvm-svn: 117786 
							
						 
						
							2010-10-30 14:28:41 +00:00  
				
					
						
							
							
								 
						
							
								b2d0d40c3d 
								
							 
						 
						
							
							
								
								Make "-ccc-cxx" option work on Linux.  
							
							... 
							
							
							
							Patch by nobled.
I also took the opportunity to make the field private since now it is only ready from the
outside.
llvm-svn: 113138 
							
						 
						
							2010-09-06 02:36:23 +00:00  
				
					
						
							
							
								 
						
							
								2dd19f1d5f 
								
							 
						 
						
							
							
								
								Simplify the ownership model for DiagnosticClients, which was really  
							
							... 
							
							
							
							convoluted and a bit leaky. Now, the Diagnostic object owns its
DiagnosticClient.
llvm-svn: 111437 
							
						 
						
							2010-08-18 22:29:43 +00:00  
				
					
						
							
							
								 
						
							
								88979914d7 
								
							 
						 
						
							
							
								
								Driver: Keep track of a separate "install dir", which is the path where clang  
							
							... 
							
							
							
							was invoked from (which may not be where the executable itself is).
 - This allows having e.g., /Developer/usr/bin/clang be a symlink to some other
   location, while still making sure the Driver finds 'as', 'ld', etc. relative
   to itself.
llvm-svn: 109989 
							
						 
						
							2010-08-01 22:29:51 +00:00  
				
					
						
							
							
								 
						
							
								5863fa5215 
								
							 
						 
						
							
							
								
								Simplify.  
							
							... 
							
							
							
							llvm-svn: 109988 
							
						 
						
							2010-08-01 22:29:47 +00:00  
				
					
						
							
							
								 
						
							
								9d8416b799 
								
							 
						 
						
							
							
								
								Driver: Switch to using a SmallVector instead of std::vector, and stop  
							
							... 
							
							
							
							accessing outside the range of the vector (which always asserts on Win32).
llvm-svn: 108802 
							
						 
						
							2010-07-20 02:47:40 +00:00  
				
					
						
							
							
								 
						
							
								77a067a653 
								
							 
						 
						
							
							
								
								Implement support for reading arguments specified in a file with  @file . If  
							
							... 
							
							
							
							there is no file named "file", keep the @file  option unchanged.
llvm-svn: 108697 
							
						 
						
							2010-07-19 15:20:12 +00:00  
				
					
						
							
							
								 
						
							
								00c57967da 
								
							 
						 
						
							
							
								
								Revert r108672, "Implement support for reading arguments specified in a file  
							
							... 
							
							
							
							with @file.", it doesn't correctly handle cases where arguments starting with
'@' are passed to other command line arguments.
llvm-svn: 108686 
							
						 
						
							2010-07-19 07:21:12 +00:00  
				
					
						
							
							
								 
						
							
								129e43d29b 
								
							 
						 
						
							
							
								
								Implement support for reading arguments specified in a file with  @file .  
							
							... 
							
							
							
							llvm-svn: 108672 
							
						 
						
							2010-07-19 03:08:01 +00:00  
				
					
						
							
							
								 
						
							
								e38764c66c 
								
							 
						 
						
							
							
								
								Driver: Change the driver to take the path to the main executable, instead of  
							
							... 
							
							
							
							taking it in pieces.
 - Fixes a problem where the Clang executable path was not initialized properly
   on Win32, because sys::Path::getBasename() doesn't do what I always think it
   does. Imagine that, a sys::Path interface that is confusing!
llvm-svn: 108667 
							
						 
						
							2010-07-19 00:44:04 +00:00  
				
					
						
							
							
								 
						
							
								7661436220 
								
							 
						 
						
							
							
								
								Refactor the code a bit so that there is only one call to BuildCompilation. The  
							
							... 
							
							
							
							StringPointers vector will also be used in the normal case to handle @file 
arguments.
llvm-svn: 108660 
							
						 
						
							2010-07-18 22:03:55 +00:00  
				
					
						
							
							
								 
						
							
								2fcaa549a8 
								
							 
						 
						
							
							
								
								Driver/MC: Add 'clang -cc1as' integrated assembler tool, currently accepts approximately the same interface as 'llvm-mc'.  
							
							... 
							
							
							
							llvm-svn: 104239 
							
						 
						
							2010-05-20 17:49:16 +00:00  
				
					
						
							
							
								 
						
							
								e43887bd2b 
								
							 
						 
						
							
							
								
								Driver: Add support for a CLANGXX_IS_PRODUCTION build variable, which enable  
							
							... 
							
							
							
							Clang++ support, even in "Production" mode (for testing purposes).
llvm-svn: 100119 
							
						 
						
							2010-04-01 18:21:41 +00:00  
				
					
						
							
							
								 
						
							
								09f8cc8c70 
								
							 
						 
						
							
							
								
								make -ftime-report work even in -disable-free mode.  Woo, finally.  
							
							... 
							
							
							
							rdar://7781603
llvm-svn: 99878 
							
						 
						
							2010-03-30 05:39:52 +00:00  
				
					
						
							
							
								 
						
							
								6a8efa8a79 
								
							 
						 
						
							
							
								
								Driver: Support CC_PRINT_OPTIONS, used for logging the compile commands (in -v style) to a file.  
							
							... 
							
							
							
							llvm-svn: 99054 
							
						 
						
							2010-03-20 08:01:59 +00:00  
				
					
						
							
							
								 
						
							
								4bc61181f9 
								
							 
						 
						
							
							
								
								Mark variable as const  
							
							... 
							
							
							
							llvm-svn: 97951 
							
						 
						
							2010-03-08 18:33:04 +00:00  
				
					
						
							
							
								 
						
							
								12ee380a61 
								
							 
						 
						
							
							
								
								Driver: Use TextDiagnosticPrinter instead of a custom one.  
							
							... 
							
							
							
							llvm-svn: 97102 
							
						 
						
							2010-02-25 03:23:43 +00:00  
				
					
						
							
							
								 
						
							
								d2b20c1348 
								
							 
						 
						
							
							
								
								clang: Add support for s// edit form of QA_OVERRIDE_GCC3_OPTIONS.  
							
							... 
							
							
							
							- Used to do regex patsubst on arguments.
llvm-svn: 96512 
							
						 
						
							2010-02-17 21:00:34 +00:00  
				
					
						
							
							
								 
						
							
								b2138e5529 
								
							 
						 
						
							
							
								
								Driver: Use "g++" as generic gcc name when running in C++ mode, for platforms  
							
							... 
							
							
							
							that lack real tool definitions.
llvm-svn: 92164 
							
						 
						
							2009-12-25 20:21:23 +00:00