mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +00:00 
			
		
		
		
	This was due to the 'assert' macro expanding into a function call on some platforms which could throw. The C++ compiler then added checks for the exception specifications in these functions, which pulled in the C++ runtime. This was bad, and the assertions can never fire (the library is now debugged) so just remove them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9801 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
//===- Exception.cpp - Generic language-independent exceptions ------------===//
 | 
						|
//
 | 
						|
// This file defines the the shared data structures used by all language
 | 
						|
// specific exception handling runtime libraries.
 | 
						|
//
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
 | 
						|
#include "Exception.h"
 | 
						|
 | 
						|
// Thread local state for exception handling.  FIXME: This should really be made
 | 
						|
// thread-local!
 | 
						|
 | 
						|
// UncaughtExceptionStack - The stack of exceptions currently being thrown.
 | 
						|
static llvm_exception *UncaughtExceptionStack = 0;
 | 
						|
 | 
						|
// __llvm_eh_has_uncaught_exception - This is used to implement
 | 
						|
// std::uncaught_exception.
 | 
						|
//
 | 
						|
bool __llvm_eh_has_uncaught_exception() throw() {
 | 
						|
  return UncaughtExceptionStack != 0;
 | 
						|
}
 | 
						|
 | 
						|
// __llvm_eh_current_uncaught_exception - This function checks to see if the
 | 
						|
// current uncaught exception is of the specified language type.  If so, it
 | 
						|
// returns a pointer to the exception area data.
 | 
						|
//
 | 
						|
void *__llvm_eh_current_uncaught_exception_type(unsigned HandlerType) throw() {
 | 
						|
  if (UncaughtExceptionStack->ExceptionType == HandlerType)
 | 
						|
    return UncaughtExceptionStack+1;
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
 | 
						|
// __llvm_eh_add_uncaught_exception - This adds the specified exception to the
 | 
						|
// top of the uncaught exception stack.  The exception should not already be on
 | 
						|
// the stack!
 | 
						|
void __llvm_eh_add_uncaught_exception(llvm_exception *E) throw() {
 | 
						|
  E->Next = UncaughtExceptionStack;
 | 
						|
  UncaughtExceptionStack = E;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
// __llvm_eh_get_uncaught_exception - Returns the current uncaught exception.
 | 
						|
// There must be an uncaught exception for this to work!
 | 
						|
llvm_exception *__llvm_eh_get_uncaught_exception() throw() {
 | 
						|
  return UncaughtExceptionStack;
 | 
						|
}
 | 
						|
 | 
						|
// __llvm_eh_pop_from_uncaught_stack - Remove the current uncaught exception
 | 
						|
// from the top of the stack.
 | 
						|
llvm_exception *__llvm_eh_pop_from_uncaught_stack() throw() {
 | 
						|
  llvm_exception *E = __llvm_eh_get_uncaught_exception();
 | 
						|
  UncaughtExceptionStack = E->Next;
 | 
						|
  return E;
 | 
						|
}
 |