Fix PR3682 by just disabling a broken assertion. This check should be
done in sema, and is reflected by the existing PR3258. In the meantime, fix PR3682 by disabling a bogus assertion (which doesn't account for + operands). llvm-svn: 66533
This commit is contained in:
		
							parent
							
								
									6dd0f9263d
								
							
						
					
					
						commit
						f85a938985
					
				| 
						 | 
				
			
			@ -707,8 +707,6 @@ static std::string ConvertAsmString(const AsmStmt& S, bool &Failed) {
 | 
			
		|||
  
 | 
			
		||||
  std::string Result;
 | 
			
		||||
  
 | 
			
		||||
  unsigned NumOperands = S.getNumOutputs() + S.getNumInputs();
 | 
			
		||||
  
 | 
			
		||||
  while (1) {
 | 
			
		||||
    // Done with the string?
 | 
			
		||||
    if (StrStart == StrEnd)
 | 
			
		||||
| 
						 | 
				
			
			@ -754,7 +752,8 @@ static std::string ConvertAsmString(const AsmStmt& S, bool &Failed) {
 | 
			
		|||
      StrStart = End;
 | 
			
		||||
      
 | 
			
		||||
      // FIXME: This should be caught during Sema.
 | 
			
		||||
      assert(N < NumOperands && "Operand number out of range!");
 | 
			
		||||
      //unsigned NumOperands = S.getNumOutputs() + S.getNumInputs();
 | 
			
		||||
      //assert(N < NumOperands && "Operand number out of range!");
 | 
			
		||||
      
 | 
			
		||||
      if (Modifier == '\0')
 | 
			
		||||
        Result += '$' + llvm::utostr(N);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,7 +28,7 @@ void t6(void) {
 | 
			
		|||
  __asm__ volatile("" : : "i" (t6));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RUN: grep "T7 NAMED: \$2" %t
 | 
			
		||||
// RUN: grep "T7 NAMED: \$2" %t &&
 | 
			
		||||
void t7(int a) {
 | 
			
		||||
  __asm__ volatile("T7 NAMED: %[input]" : "+r"(a): [input] "i" (4));
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -37,3 +37,9 @@ void t7(int a) {
 | 
			
		|||
void t8() {
 | 
			
		||||
  __asm__ volatile("T8 NAMED MODIFIER: %c[input]" :: [input] "i" (4));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// PR3682
 | 
			
		||||
unsigned t9(unsigned int a) {
 | 
			
		||||
  asm("bswap %0 %1" : "+r" (a));
 | 
			
		||||
  return a;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue