forked from qt-creator/qt-creator
		
	With the recent libclang fix the anonymous cursors are reported properly. So we can use that information instead of some of our workarounds. Change-Id: I94401f33e671e6dd08ac7d850c8d5c3dbdd062cc Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
		
			
				
	
	
		
			148 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			148 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #include "cursor.h"
 | |
| 
 | |
| void function(int x)
 | |
| {
 | |
| 
 | |
| }
 | |
| 
 | |
| namespace Namespace
 | |
| {
 | |
| SuperClass::SuperClass(int x) noexcept
 | |
|   : y(x)
 | |
| {
 | |
|     int LocalVariable;
 | |
| }
 | |
| 
 | |
| int SuperClass::Method()
 | |
| {
 | |
|     Method();
 | |
|     AbstractVirtualMethod(y);
 | |
|     int LocalVariable;
 | |
|     return y;
 | |
| }
 | |
| 
 | |
| int SuperClass::VirtualMethod(int z)
 | |
| {
 | |
|     AbstractVirtualMethod(z);
 | |
| 
 | |
|     return y;
 | |
| }
 | |
| 
 | |
| bool SuperClass::ConstMethod() const
 | |
| {
 | |
|     return y;
 | |
| }
 | |
| 
 | |
| void SuperClass::StaticMethod()
 | |
| {
 | |
|     using longint = long long int;
 | |
|     using lint = longint;
 | |
| 
 | |
|     lint foo;
 | |
| 
 | |
|     foo = 30;
 | |
| 
 | |
|     const lint bar = 20;
 | |
| }
 | |
| }
 | |
| 
 | |
| template <class T>
 | |
| void TemplateFunction(T LocalVariableParameter)
 | |
| {
 | |
|     T LocalVariable;
 | |
| }
 | |
| 
 | |
| Namespace::SuperClass::operator int() const
 | |
| {
 | |
|     int LocalVariable;
 | |
| }
 | |
| 
 | |
| int Namespace::SuperClass::operator ++() const
 | |
| {
 | |
|     int LocalVariable;
 | |
| 
 | |
|     return LocalVariable;
 | |
| }
 | |
| 
 | |
| Namespace::SuperClass::~SuperClass()
 | |
| {
 | |
|     int LocalVariable;
 | |
| }
 | |
| 
 | |
| void Struct::FinalVirtualMethod()
 | |
| {
 | |
| 
 | |
| }
 | |
| 
 | |
| void f1(Struct *FindFunctionCaller)
 | |
| {
 | |
|     FindFunctionCaller->FinalVirtualMethod();
 | |
| }
 | |
| 
 | |
| void f2(){
 | |
|     Struct *s = new Struct;
 | |
| 
 | |
|     f1(s);
 | |
| }
 | |
| 
 | |
| void f3()
 | |
| {
 | |
|     auto FindFunctionCaller = Struct();
 | |
| 
 | |
|     FindFunctionCaller.FinalVirtualMethod();
 | |
| }
 | |
| 
 | |
| 
 | |
| void f4()
 | |
| {
 | |
|     Struct s;
 | |
| 
 | |
|     auto *sPointer = &s;
 | |
|     auto sValue = s;
 | |
| }
 | |
| 
 | |
| void NonFinalStruct::function()
 | |
| {
 | |
|     FinalVirtualMethod();
 | |
| }
 | |
| 
 | |
| void OutputFunction(int &out, int in = 1, const int &in2=2, int *out2=nullptr);
 | |
| void InputFunction(const int &value);
 | |
| 
 | |
| void f5()
 | |
| {
 | |
|     int OutputValue;
 | |
|     int InputValue = 20;
 | |
| 
 | |
|     OutputFunction(OutputValue);
 | |
|     InputFunction(InputValue);
 | |
| }
 | |
| 
 | |
| void ArgumentCountZero();
 | |
| void ArgumentCountTwo(int one, const int &two);
 | |
| void IntegerValue(int);
 | |
| void LValueReference(int &);
 | |
| void ConstLValueReference(const int &);
 | |
| void PointerToConst(const int *);
 | |
| void Pointer(int *);
 | |
| void ConstantPointer(int *const);
 | |
| void ConstIntegerValue(const int);
 | |
| 
 | |
| void NonFinalStruct::ProtectedMethodAccessSpecifier() {}
 | |
| 
 | |
| extern int ExternVarStorageClass;
 | |
| 
 | |
| static void StaticMethodStorageClass() {}
 | |
| 
 | |
| template<class T> const T &InvalidStorageClass(const T &type) { return type; }
 | |
| 
 | |
| namespace Outer {
 | |
| namespace {
 | |
| 
 | |
| }
 | |
| 
 | |
| enum {
 | |
|     X, Y
 | |
| };
 | |
| }
 |