diff options
Diffstat (limited to 'test/cedet/tests')
-rw-r--r-- | test/cedet/tests/test.c | 242 | ||||
-rw-r--r-- | test/cedet/tests/test.el | 158 | ||||
-rw-r--r-- | test/cedet/tests/test.make | 79 | ||||
-rw-r--r-- | test/cedet/tests/testdoublens.cpp | 166 | ||||
-rw-r--r-- | test/cedet/tests/testdoublens.hpp | 70 | ||||
-rw-r--r-- | test/cedet/tests/testfriends.cpp | 38 | ||||
-rw-r--r-- | test/cedet/tests/testjavacomp.java | 67 | ||||
-rw-r--r-- | test/cedet/tests/testnsp.cpp | 29 | ||||
-rw-r--r-- | test/cedet/tests/testpolymorph.cpp | 130 | ||||
-rw-r--r-- | test/cedet/tests/testspp.c | 102 | ||||
-rw-r--r-- | test/cedet/tests/testsppcomplete.c | 30 | ||||
-rw-r--r-- | test/cedet/tests/testsppreplace.c | 154 | ||||
-rw-r--r-- | test/cedet/tests/testsppreplaced.c | 117 | ||||
-rw-r--r-- | test/cedet/tests/testsubclass.cpp | 249 | ||||
-rw-r--r-- | test/cedet/tests/testsubclass.hh | 191 | ||||
-rw-r--r-- | test/cedet/tests/testtypedefs.cpp | 81 | ||||
-rw-r--r-- | test/cedet/tests/testvarnames.c | 90 |
17 files changed, 0 insertions, 1993 deletions
diff --git a/test/cedet/tests/test.c b/test/cedet/tests/test.c deleted file mode 100644 index 8f7208783ff..00000000000 --- a/test/cedet/tests/test.c +++ /dev/null @@ -1,242 +0,0 @@ -/* test.c --- Semantic unit test for C. - - Copyright (C) 2001-2015 Free Software Foundation, Inc. - - Author: Eric M. Ludlam <eric@siege-engine.com> - - This file is part of GNU Emacs. - - GNU Emacs is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - GNU Emacs is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. -*/ - -/* Attempt to include as many aspects of the C language as possible. - */ - -/* types of include files */ -#include "includeme1.h" -#include <includeme2.h> -#include <subdir/includeme3.h> -#include <includeme.notanhfile> -#include <stdlib.h> -#include <cmath> - -#if 0 -int dont_show_function() -{ -} -#endif - -/* Global types */ -struct mystruct1 { - int slot11; - char slot12; - float slot13; -}; - -struct mystruct2 { - int slot21; - char slot22; - float slot23; -} var_of_type_mystruct2; - -struct { - int slot31; - char slot32; - float slot33; -} var_of_anonymous_struct; - -typedef struct mystruct1 typedef_of_mystruct1; -typedef struct mystruct1 *typedef_of_pointer_mystruct1; -typedef struct { int slot_a; } typedef_of_anonymous_struct; -typedef struct A { -} B; - -typedef struct mystruct1 td1, td2; - -union myunion1 { - int slot41; - char slot42; - float slot43; -}; - -union myunion2 { - int slot51; - char slot52; - float slot53; -} var_of_type_myunion2; - -struct { - int slot61; - char slot72; - float slot83; -} var_of_anonymous_union; - -typedef union myunion1 typedef_of_myunion1; -typedef union myunion1 *typedef_of_pointer_myunion1; -typedef union { int slot_a; } typedef_of_anonymous_union; - -enum myenum1 { enum11 = 1, enum12 }; -enum myenum2 { enum21, enum22 = 2 } var_of_type_myenum2; -enum { enum31, enum32 } var_of_anonymous_enum; - -typedef enum myenum1 typedef_of_myenum1; -typedef enum myenum1 *typedef_of_pointer_myenum1; -typedef enum { enum_a = 3, enum_b } typedef_of_anonymous_enum; - -typedef int typedef_of_int; - -/* Here are some simpler variable types */ -int var1; -int varbit1:1; -char var2; -float var3; -mystruct1 var3; -struct mystruct1 var4; -union myunion1 var5; -enum myenum1 var6; - -char *varp1; -char **varp2; -char varv1[1]; -char varv2[1][2]; - -char *varpa1 = "moose"; -struct mystruct2 vara2 = { 1, 'a', 0.0 }; -enum myenum1 vara3 = enum11; -int vara4 = (int)0.0; -int vara5 = funcall(); - -int mvar1, mvar2, mvar3; -char *mvarp1, *mvarp2, *mvarp3; -char *mvarpa1 = 'a', *mvarpa2 = 'b', *mvarpa3 = 'c'; -char mvaras1[10], mvaras2[12][13], *mvaras3 = 'd'; - -static register const unsigned int tmvar1; - -#define MACRO1 1 -#define MACRO2(foo) (1+foo) - -/* Here are some function prototypes */ - -/* This is legal, but I decided not to support inferred integer - * types on functions and variables. - */ -fun0(); -int funp1(); -char funp2(int arg11); -float funp3(char arg21, char arg22); -struct mystrct1 funp4(struct mystruct2 arg31, union myunion2 arg32); -enum myenum1 funp5(char *arg41, union myunion1 *arg42); - -char funpp1 __P(char argp1, struct mystruct2 argp2, char *arg4p); - -int fun1(); - -/* Here is a function pointer */ -int (*funcptr)(int a, int b); - -/* Function Definitions */ - -/* This is legal, but I decided not to support inferred integer - * types on functions and variables. - */ -fun0() -{ - int sv = 0; -} - -int fun1 () -{ - int sv = 1; -} - -int fun1p1 (void) -{ - int sv = 1; -} - -char fun2(int arg_11) -{ - char sv = 2; -} - -float fun3(char arg_21, char arg_22) -{ - char sv = 3; -} - -struct mystrct1 fun4(struct mystruct2 arg31, union myunion2 arg32) -{ - sv = 4; -} - -enum myenum1 fun5(char *arg41, union myunion1 *arg42) -{ - sv = 5; -} - -/* Functions with K&R syntax. */ -struct mystrct1 funk1(arg_31, arg_32) - struct mystruct2 arg_31; - union myunion2 arg32; -{ - sv = 4; -} - -enum myenum1 *funk2(arg_41, arg_42) - char *arg_41; - union myunion1 *arg_42; -{ - sv = 5; - - if(foo) { - } -} - -int funk3(arg_51, arg_53) - int arg_51; - char arg_53; -{ - char q = 'a'; - int sv = 6; - td1 ms1; - enum myenum1 testconst; - - /* Function argument analysis */ - funk3(ms1.slot11, arg_53 ); - sv = 7; - - /* Slot deref on assignee */ - ms1.slot11 = s; - - /* Enum/const completion */ - testconst = e; - - /* Bad var/slot and param */ - blah.notafunction(moose); - - /* Print something. */ - printf("Moose", ); - - tan(); -} - -int funk4_fixme(arg_61, arg_62) - int arg_61, arg_62; -{ - -} - -/* End of C tests */ - diff --git a/test/cedet/tests/test.el b/test/cedet/tests/test.el deleted file mode 100644 index 28b97750df2..00000000000 --- a/test/cedet/tests/test.el +++ /dev/null @@ -1,158 +0,0 @@ -;;; test.el --- Unit test file for Semantic Emacs Lisp support. - -;; Copyright (C) 2005-2015 Free Software Foundation, Inc. - -;; Author: Eric M. Ludlam <eric@siege-engine.com> - -;; This file is part of GNU Emacs. - -;; GNU Emacs is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; GNU Emacs is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. - -;;; Require -;; -(require 'semantic) -(require 'eieio "../eieio") - -;; tags encapsulated in eval-when-compile and eval-and-compile -;; should be expanded out into the outer environment. -(eval-when-compile - (require 'semantic-imenu) - ) - -(eval-and-compile - (defconst const-1 nil) - (defun function-1 (arg) - nil) - ) - -;;; Functions -;; -(defun a-defun (arg1 arg2 &optional arg3) - "doc a" - nil) - -(defun a-defun-interactive (arg1 arg2 &optional arg3) - "doc a that is a command" - (interactive "R") - nil) - -(defun* a-defun* (arg1 arg2 &optional arg3) - "doc a*" - nil) - -(defsubst a-defsubst (arg1 arg2 &optional arg3) - "doc a-subst" - nil) - -(defmacro a-defmacro (arg1 arg2 &optional arg3) - "doc a-macro" - nil) - -(define-overload a-overload (arg) - "doc a-overload" - nil) - -;;; Methods -;; -(defmethod a-method ((obj some-class) &optional arg2) - "Doc String for a method." - (call-next-method)) - -(defgeneric a-generic (arg1 arg2) - "General description of a-generic.") - -;;; Advice -;; -(defadvice existing-function-to-advise (around test activate) - "Do something special to this fcn." - (ad-do-it)) - -;;; Variables -;; -(defvar a-defvar (cons 1 2) - "Variable a") - -(defvar a-defvar-star (cons 1 2) - "*User visible var a") - -(defconst a-defconst 'a "var doc const") - -(defcustom a-defcustom nil - "*doc custom" - :group 'a-defgroup - :type 'boolean) - -(defface a-defface 'bold - "A face that is bold.") - -(defimage ezimage-page-minus - ((:type xpm :file "page-minus.xpm" :ascent center)) - "Image used for open files with stuff in them.") - -;;; Autoloads -;; -(autoload (quote a-autoload) "somefile" - "Non-interactive autoload." nil nil) - -(autoload (quote a-autoload-interactive) "somefile" -"Interactive autoload." t nil) - - -(defgroup a-defgroup nil - "Group for `emacs-lisp' regression-test") - -;;; Classes -;; -(defclass a-class (a-parent) - ((slot-1) - (slot-2 :initarg :slot-2) - (slot-3 :documentation "Doc about slot3") - (slot-4 :type 'boolean) - ) - "Doc String for class.") - -(defclass a-class-abstract () - nil - "Doc string for abstract class." - :abstract t) - -;;; Structures -;; -(defstruct (test-struct-1 :test 'equal) - (slot-1 :equal 'eq) - slot-2) - -(defstruct test-struct-2 - slot-1 - slot-2) - -;;; Semantic specific macros -;; -(define-lex a-lexer - "Doc String" - this - that) - -(define-mode-local-override a-overridden-function - emacs-lisp-mode (tag) - "A function that is overloaded." - nil) - -(defvar-mode-local emacs-lisp-mode a-mode-local-def - "some value") - - -;;; Provide -;; -(provide 'test) diff --git a/test/cedet/tests/test.make b/test/cedet/tests/test.make deleted file mode 100644 index ac8c599ee35..00000000000 --- a/test/cedet/tests/test.make +++ /dev/null @@ -1,79 +0,0 @@ -# test.make --- Semantic unit test for Make -*- makefile -*- - -# Copyright (C) 2001-2002, 2010-2015 Free Software Foundation, Inc. - -# Author: Eric M. Ludlam <eric@siege-engine.com> - -# This file is part of GNU Emacs. - -# GNU Emacs is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. - -# GNU Emacs is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. - -top= -ede_FILES=Project.ede Makefile - -example_MISC=semantic-skel.el skeleton.bnf -init_LISP=semantic-load.el -DISTDIR=$(top)semantic-$(VERSION) - -# really goofy & variables tabs -A= B -A =B -A=B C -A=B\ - C - -A= http://${B} \ - ftp://${B} -B= test - -all: example semantic Languages tools senator semantic.info - -test ${B}: foo bar - @echo ${A} - -example: - @ - -init: $(init_LISP) - @echo "(add-to-list 'load-path nil)" > $@-compile-script - @if test ! -z "${LOADPATH}" ; then\ - for loadpath in ${LOADPATH}; do \ - echo "(add-to-list 'load-path \"$$loadpath\")" >> $@-compile-script; \ - done;\ - fi - @echo "(setq debug-on-error t)" >> $@-compile-script - $(EMACS) -batch -l $@-compile-script -f batch-byte-compile $^ - -include tesset.mk tusset.mk -include oneset.mk - -ifdef SOME_SYMBOL - VAR1 = foo -else - VAR1 = bar -endif - -ifndef SOME_OTHER_SYMBOL - VAR1 = baz -endif - -ifeq ($(VAR1), foo) - VAR2 = gleep -else - ifneq ($(VAR1), foo) - VAR2 = glop - endif -endif - -# End of Makefile diff --git a/test/cedet/tests/testdoublens.cpp b/test/cedet/tests/testdoublens.cpp deleted file mode 100644 index b503c211790..00000000000 --- a/test/cedet/tests/testdoublens.cpp +++ /dev/null @@ -1,166 +0,0 @@ -// testdoublens.cpp --- semantic-ia-utest completion engine unit tests - -// Copyright (C) 2008-2015 Free Software Foundation, Inc. - -// Author: Eric M. Ludlam <eric@siege-engine.com> - -// This file is part of GNU Emacs. - -// GNU Emacs is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// GNU Emacs is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. - -#include "testdoublens.hpp" - -namespace Name1 { - namespace Name2 { - - Foo::Foo() - { - p// -1- - // #1# ( "pMumble" "publishStuff" ) - ; - } - - int Foo::get() // ^1^ - { - p// -2- - // #2# ( "pMumble" "publishStuff" ) - ; - return 0; - } - - void Foo::publishStuff(int /* a */, int /* b */) // ^2^ - { - } - - void Foo::sendStuff(int /* a */, int /* b */) // ^3^ - { - } - - } // namespace Name2 -} // namespace Name1 - -// Test multiple levels of metatype expansion -int test_fcn () { - stage3_Foo MyFoo; - - MyFoo.// -3- - // #3# ( "Mumble" "get" ) - ; - - Name1::Name2::F//-4- - // #4# ( "Foo" ) - ; - - // @TODO - get this working... - Name1::stage2_Foo::M//-5- - /// #5# ( "Mumble" ) - ; -} - -stage3_Foo foo_fcn() { - // Can we go "up" to foo with senator-go-to-up-reference? -} - - -// Second test from Ravikiran Rajagopal - -namespace A { - class foo { - public: - void aa(); - void bb(); - }; -} -namespace A { - class bar { - public: - void xx(); - public: - foo myFoo; - }; - - void bar::xx() - { - myFoo.// -6- <--- cursor is here after the dot - // #6# ( "aa" "bb" ) - ; - } -} - -// Double namespace example from Hannu Koivisto -// -// This is tricky because the parent class "Foo" is found within the -// scope of B, so the scope calculation needs to put that together -// before searching for parents in scope. -namespace a { - namespace b { - - class Bar : public Foo - { - int baz(); - }; - - int Bar::baz() - { - return dum// -7- - // #7# ( "dumdum" ) - ; - } - - } // namespace b -} // namespace a - -// Three namespace example from Hannu Koivisto -// -// This one is special in that the name e::Foo, where "e" is in -// the scope, and not referenced from the global namespace. This -// wasn't previously handled, so the fullscope needed to be added -// to the list of things searched when in split-name decent search mode -// for scopes. - -namespace d { - namespace e { - - class Foo - { - public: - int write(); - }; - - } // namespace d -} // namespace e - - -namespace d { - namespace f { - - class Bar - { - public: - int baz(); - - private: - e::Foo &foo; - }; - - int Bar::baz() - { - return foo.w// -8- - // #8# ( "write" ) - ; - } - - } // namespace f -} // namespace d - diff --git a/test/cedet/tests/testdoublens.hpp b/test/cedet/tests/testdoublens.hpp deleted file mode 100644 index 609ea74615e..00000000000 --- a/test/cedet/tests/testdoublens.hpp +++ /dev/null @@ -1,70 +0,0 @@ -// testdoublens.hpp --- Header file used in one of the Semantic tests - -// Copyright (C) 2008-2015 Free Software Foundation, Inc. - -// Author: Eric M. Ludlam <eric@siege-engine.com> - -// This file is part of GNU Emacs. - -// GNU Emacs is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// GNU Emacs is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. - -namespace Name1 { - namespace Name2 { - - class Foo - { - typedef unsigned int Mumble; - public: - Foo(); - ~Foo(); - int get(); - - private: - void publishStuff(int a, int b); - - void sendStuff(int a, int b); - - Mumble* pMumble; - }; - - typedef Foo stage1_Foo; - - } // namespace Name2 - - typedef Name2::stage1_Foo stage2_Foo; - - typedef Name2::Foo decl_stage1_Foo; - -} // namespace Name1 - -typedef Name1::stage2_Foo stage3_Foo; - - -// Double namespace from Hannu Koivisto -namespace a { - namespace b { - - class Foo - { - struct Dum { - int diDum; - }; - - protected: - mutable a::b::Foo::Dum dumdum; - }; - - } // namespace b -} // namespace a - diff --git a/test/cedet/tests/testfriends.cpp b/test/cedet/tests/testfriends.cpp deleted file mode 100644 index 20425f93afa..00000000000 --- a/test/cedet/tests/testfriends.cpp +++ /dev/null @@ -1,38 +0,0 @@ -// Test parsing of friends and how they are used in completion. -/* - >> Thanks Damien Profeta for the nice example. - > - > I paste a small example. - > It would be great if friend can be well parsed and even greater if - > class B can access to all the members of A. -*/ - -class Af // %2% ( ( "testfriends.cpp" ) ( "Af" "B::testB" ) ) -{ -public: - int pubVar; -private: - int privateVar; - - friend class B; - -}; - -class B -{ -public: - int testB(); - int testAB(); - -}; - - -int B::testB() { - Af classA; - classA.//-1- - ; //#1# ( "privateVar" "pubVar" ) -} - -int B::testAB() { // %1% ( ( "testfriends.cpp" ) ( "B" "B::testAB" ) ) -} - diff --git a/test/cedet/tests/testjavacomp.java b/test/cedet/tests/testjavacomp.java deleted file mode 100644 index d17f3049b62..00000000000 --- a/test/cedet/tests/testjavacomp.java +++ /dev/null @@ -1,67 +0,0 @@ -// testjavacomp.java --- Semantic unit test for Java - -// Copyright (C) 2009-2015 Free Software Foundation, Inc. - -// Author: Eric M. Ludlam <eric@siege-engine.com> - -// This file is part of GNU Emacs. - -// GNU Emacs is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// GNU Emacs is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. - -package tests.testjavacomp; - -class secondClass { - private void scFuncOne() { } - public void scFuncOne() { } -} - - -public class testjavacomp { - - private int funcOne() { } - private int funcTwo() { } - private char funcThree() { } - - class nestedClass { - private void ncFuncOne() { } - public void ncFuncOne() { } - } - - public void publicFunc() { - - int i; - - i = fu// -1- - // #1# ( "funcOne" "funcTwo" ) - ; - - fu// -2- - // #2# ( "funcOne" "funcThree" "funcTwo" ) - ; - - secondClass SC; - - SC.//-3- - // #3# ( "scFuncOne" ) - ; - - nestedClass NC; - - // @todo - need to fix this? I don't know if this is legal java. - NC.// - 4- - // #4# ( "ncFuncOne" ) - ; - } - -} // testjavacomp diff --git a/test/cedet/tests/testnsp.cpp b/test/cedet/tests/testnsp.cpp deleted file mode 100644 index 012dc660600..00000000000 --- a/test/cedet/tests/testnsp.cpp +++ /dev/null @@ -1,29 +0,0 @@ -// Test NSP (Name space parent) -// -// Test dereferencing parents based on local parent scope. -// -// Derived from data David Engster provided. - -namespace nsp { - - class rootclass { - public: - int fromroot() {}; - }; - -} - -namespace nsp { - class childclass : public rootclass { - public: - int fromchild() {}; - }; -} - -void myfcn_not_in_ns (void) { - nsp::childclass test; - - test.// -1- - ; // #1# ( "fromchild" "fromroot" ) -} - diff --git a/test/cedet/tests/testpolymorph.cpp b/test/cedet/tests/testpolymorph.cpp deleted file mode 100644 index 9195bb670c2..00000000000 --- a/test/cedet/tests/testpolymorph.cpp +++ /dev/null @@ -1,130 +0,0 @@ -/** testpolymorph.cpp --- A sequence of polymorphism examples. - * - * Copyright (C) 2009-2015 Free Software Foundation, Inc. - * - * Author: Eric M. Ludlam <eric@siege-engine.com> - * - * This file is part of GNU Emacs. - * - * GNU Emacs is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * GNU Emacs is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <cmath> - -// Test 1 - Functions w/ prototypes -namespace proto { - - int pt_func1(int arg1); - int pt_func1(int arg1) { - return 0; - } - -} - -// Test 2 - Functions w/ different arg lists. -namespace fcn_poly { - - int pm_func(void) { - return 0; - } - int pm_func(int a) { - return a; - } - int pm_func(char a) { - return int(a); - } - int pm_func(double a) { - return int(floor(a)); - } - -} - -// Test 3 - Methods w/ different arg lists. -class meth_poly { -public: - int pm_meth(void) { - return 0; - } - int pm_meth(int a) { - return a; - } - int pm_meth(char a) { - return int(a); - } - int pm_meth(double a) { - return int(floor(a)); - } - -}; - -// Test 4 - Templates w/ partial specifiers. -namespace template_partial_spec { - template <typename T> class test - { - public: - void doSomething(T t) { }; - }; - - template <typename T> class test<T *> - { - public: - void doSomething(T* t) { }; - }; -} - -// Test 5 - Templates w/ full specialization which may or may not share -// common functions. -namespace template_full_spec { - template <typename T> class test - { - public: - void doSomething(T t) { }; - void doSomethingElse(T t) { }; - }; - - template <> class test<int> - { - public: - void doSomethingElse(int t) { }; - void doSomethingCompletelyDifferent(int t) { }; - }; -} - -// Test 6 - Dto., but for templates with multiple parameters. -namespace template_multiple_spec { - template <typename T1, typename T2> class test - { - public: - void doSomething(T1 t) { }; - void doSomethingElse(T2 t) { }; - }; - - template <typename T2> class test<int, T2> - { - public: - void doSomething(int t) { }; - void doSomethingElse(T2 t) { }; - }; - - template <> class test<float, int> - { - public: - void doSomething(float t) { }; - void doSomethingElse(int t) { }; - void doNothing(void) { }; - }; -} - - -// End of polymorphism test file. diff --git a/test/cedet/tests/testspp.c b/test/cedet/tests/testspp.c deleted file mode 100644 index 168898a4a3e..00000000000 --- a/test/cedet/tests/testspp.c +++ /dev/null @@ -1,102 +0,0 @@ -/* testspp.cpp --- Semantic unit test for the C preprocessor - - Copyright (C) 2007-2015 Free Software Foundation, Inc. - - Author: Eric M. Ludlam <eric@siege-engine.com> - - This file is part of GNU Emacs. - - GNU Emacs is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - GNU Emacs is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. -*/ - -int some_fcn (){} - - -#ifndef MOOSE -int pre_show_moose(){} -#endif - -#ifdef MOOSE -int pre_dont_show_moose(){} -#endif - -#if !defined(MOOSE) -int pre_show_moose_if(){} -#endif - -#if defined(MOOSE) -int pre_dont_show_moose_if(){} -#endif - -#define MOOSE - -#if 0 -int dont_show_function_if_0(){} -#endif - -#if 1 -int show_function_if_1(){} -#endif - -#ifdef MOOSE -int moose_function(){} -#endif - -#ifndef MOOSE -int dont_show_moose(){} -#endif - -#if defined(MOOSE) -int moose_function_if(){} -#endif - -#if !defined(MOOSE) -int dont_show_moose_if() {} -#endif - -#undef MOOSE - -#ifdef MOOSE -int no_handy_moose(){} -#endif - -#ifndef MOOSE -int show_moose_else() {} -#else -int no_show_moose_else(){} -#endif - - -#ifdef MOOSE -int no_show_moose_else_2() {} -#else -int show_moose_else_2() {} -#endif - -#if defined(MOOSE) -int no_show_moose_elif() {} -#elif !defined(MOOSE) -int show_moose_elif() {} -#else -int no_show_moose_elif_else() {} -#endif - -#if defined(MOOSE) -int no_show_moose_if_elif_2() {} -#elif defined(COW) -int no_show_moose_elif_2() {} -#else -int show_moose_elif_else() {} -#endif - diff --git a/test/cedet/tests/testsppcomplete.c b/test/cedet/tests/testsppcomplete.c deleted file mode 100644 index d7899942285..00000000000 --- a/test/cedet/tests/testsppcomplete.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Example provided by Hannes Janetzek */ - -struct Test { int test; }; - -#define BLA(_type) \ - _type *bla = (_type*) malloc(sizeof(_type)); - -#define BLUB(_type) \ - (_type*)malloc(sizeof(_type)); - -#define FOO(_type) \ - _type *foo = BLUB(_type); - -#define BAR(_type) \ - _type *bar = (*_type)BLUB(_type); - -int main(int argc, char *argv[]) { - BLA(Test); - bla->// -1- - ; // #1# ( "test" ) - - FOO(Test); - foo->// -2- - ; // #2# ( "test" ) - - BAR(Test); - bar->// -3- - ; // #3# ( "test" ) -} - diff --git a/test/cedet/tests/testsppreplace.c b/test/cedet/tests/testsppreplace.c deleted file mode 100644 index e831ea152e5..00000000000 --- a/test/cedet/tests/testsppreplace.c +++ /dev/null @@ -1,154 +0,0 @@ -/* testsppreplace.c --- unit test for CPP/SPP Replacement - Copyright (C) 2007-2015 Free Software Foundation, Inc. - - Author: Eric M. Ludlam <eric@siege-engine.com> - - This file is part of GNU Emacs. - - GNU Emacs is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - GNU Emacs is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. -*/ - -/* TEST: The EMU keyword doesn't screw up the function defn. */ -#define EMU -#define EMU2 /*comment*/ -char EMU parse_around_emu EMU2 (EMU) -{ -} - -/* TEST: A simple word can be replaced in a definition. */ -#define SUBFLOAT /* Some Float */ float -SUBFLOAT returnanfloat() -{ -} - -/* TEST: Punctuation an be replaced in a definition. */ -#define COLON : -int foo COLON COLON bar () -{ -} - -/* TEST: Multiple lexical characters in a definition */ -#define SUPER mysuper:: -int SUPER baz () -{ -} - -/* TEST: Macro replacement. */ -#define INT_FCN(name) int name (int in) - -INT_FCN(increment) { - return in+1; -} - -/* TEST: Macro replacement with complex args */ -#define P_(proto) () - -int myFcn1 P_((a,b)); - -#define P__(proto) proto - -int myFcn2 P__((int a, int b)); -int myFcn3 (int a, int b); - -/* TEST: Multiple args to a macro. */ -#define MULTI_ARGS(name, field1, field2, field3) struct name { int field1; int field2; int field3; } - -MULTI_ARGS(ma_struct, moose, penguin, emu); - -/* TEST: Macro w/ args, but no body. */ -#define NO_BODY(name) - -NO_BODY(Moose); - -/* TEST: Not a macro with args, but close. */ -#define NOT_WITH_ARGS (moose) - -int not_with_args_fcn NOT_WITH_ARGS -{ -} - -/* TEST: macro w/ continuation. */ -#define WITH_CONT \ - continuation_symbol - -int WITH_CONT () { }; - -/* TEST: macros in a macro - tail processing */ -#define tail_with_args_and_long_name(a) (int a) -#define int_arg tail_with_args_and_long_name - -int tail int_arg(q) {} - -/* TEST: macros used improperly. */ -#define tail_fail tail_with_args_and_long_name(q) - -int tail_fcn tail_fail(q); - -/* TEST: feature of CPP from LSD <lsdsgster@...> */ -#define __gthrw_(name) __gthrw_ ## name - -int __gthrw_(foo) (int arg1) { } - -/* TEST: macros using macros */ -#define macro_foo foo -#define mf_declare int macro_foo - -mf_declare; - -/* TEST: macros with args using macros */ -#define Amacro(A) (int A) -#define mf_Amacro(B) int B Amacro(B) - -mf_Amacro(noodle); - -/* TEST: Double macro using the argument stack. */ -#define MACRO0(name) int that_ ## name(int i); -#define MACRO1(name) int this_ ## name(int i); -#define MACRO2(name) MACRO0(name) MACRO1(name) - -MACRO2(foo) - -/* TEST: The G++ namespace macro hack. Not really part of SPP. */ -_GLIBCXX_BEGIN_NAMESPACE(baz) - - int bazfnc(int b) { } - -_GLIBCXX_END_NAMESPACE; - -_GLIBCXX_BEGIN_NESTED_NAMESPACE(foo,bar) - - int foo_bar_func(int a) { } - -_GLIBCXX_END_NESTED_NAMESPACE; - - -/* TEST: The VC++ macro hack. */ -_STD_BEGIN - - int inside_std_namespace(int a) { } - -_STD_END - -/* TEST: Recursion prevention. CPP doesn't allow even 1 level of recursion. */ -#define STARTMACRO MACROA -#define MACROA MACROB -#define MACROB MACROA - -int STARTMACRO () { - -} - - -/* END */ - diff --git a/test/cedet/tests/testsppreplaced.c b/test/cedet/tests/testsppreplaced.c deleted file mode 100644 index bb6a5522cf1..00000000000 --- a/test/cedet/tests/testsppreplaced.c +++ /dev/null @@ -1,117 +0,0 @@ -/* testsppreplaced.c --- unit test for CPP/SPP Replacement - Copyright (C) 2007-2015 Free Software Foundation, Inc. - - Author: Eric M. Ludlam <eric@siege-engine.com> - - This file is part of GNU Emacs. - - GNU Emacs is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - GNU Emacs is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. -*/ - -/* What the SPP replace file would looklike with MACROS replaced: */ - -/* TEST: The EMU keyword doesn't screw up the function defn. */ -char parse_around_emu () -{ -} - -/* TEST: A simple word can be replaced in a definition. */ -float returnanfloat() -{ -} - -/* TEST: Punctuation an be replaced in a definition. */ -int foo::bar () -{ -} - -/* TEST: Multiple lexical characters in a definition */ -int mysuper::baz () -{ -} - -/* TEST: Macro replacement. */ -int increment (int in) { - return in+1; -} - -/* TEST: Macro replacement with complex args */ -int myFcn1 (); - -int myFcn2 (int a, int b); -int myFcn3 (int a, int b); - -/* TEST: Multiple args to a macro. */ -struct ma_struct { int moose; int penguin; int emu; }; - -/* TEST: Macro w/ args, but no body. */ - -/* TEST: Not a macro with args, but close. */ -int not_with_args_fcn (moose) -{ -} - -/* TEST: macro w/ continuation. */ -int continuation_symbol () { }; - -/* TEST: macros in a macro - tail processing */ - -int tail (int q) {} - -/* TEST: macros used improperly */ - -int tail_fcn(int q); - -/* TEST: feature of CPP from LSD <lsdsgster@...> */ - -int __gthrw_foo (int arg1) { } - -/* TEST: macros using macros */ -int foo; - -/* TEST: macros with args using macros */ -int noodle(int noodle); - -/* TEST: Double macro using the argument stack. */ -int that_foo(int i); -int this_foo(int i); - -/* TEST: The G++ namespace macro hack. Not really part of SPP. */ -namespace baz { - - int bazfnc(int b) { } - -} - -namespace foo { namespace bar { - - int foo_bar_func(int a) { } - - } -} - -/* TEST: The VC++ macro hack. */ -namespace std { - - int inside_std_namespace(int a) { } - -} - -/* TEST: Recursion prevention. CPP doesn't allow even 1 level of recursion. */ -int MACROA () { - -} - - -/* End */ diff --git a/test/cedet/tests/testsubclass.cpp b/test/cedet/tests/testsubclass.cpp deleted file mode 100644 index 6dee867b794..00000000000 --- a/test/cedet/tests/testsubclass.cpp +++ /dev/null @@ -1,249 +0,0 @@ -// testsubclass.cpp --- unit test for analyzer and complex C++ inheritance - -// Copyright (C) 2007-2015 Free Software Foundation, Inc. - -// Author: Eric M. Ludlam <eric@siege-engine.com> - -// This file is part of GNU Emacs. - -// GNU Emacs is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// GNU Emacs is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. - -//#include <iostream> -#include "testsubclass.hh" - -void animal::moose::setFeet(int numfeet) //^1^ -{ - if (numfeet > 4) { - std::cerr << "Why would a moose have more than 4 feet?" << std::endl; - return; - } - - fFeet = numfeet; -} - -int animal::moose::getFeet() //^2^ -{ - return fFeet; -} - -void animal::moose::doNothing() //^3^ -{ - animal::moose foo(); - - fFeet = N// -15- - ; // #15# ( "NAME1" "NAME2" "NAME3" ) -} - - -void deer::moose::setAntlers(bool have_antlers) //^4^ -{ - fAntlers = have_antlers; -} - -bool deer::moose::getAntlers() //^5^ -// %1% ( ( "testsubclass.cpp" "testsubclass.hh" ) ( "deer::moose::doSomething" "deer::moose::getAntlers" "moose" ) ) -{ - return fAntlers; -} - -bool i_dont_have_symrefs() -// %2% ( ("testsubclass.cpp" ) ("i_dont_have_symrefs")) -{ -} - -void deer::moose::doSomething() //^6^ -{ - // All these functions should be identified by semantic analyzer. - getAntlers(); - setAntlers(true); - - getFeet(); - setFeet(true); - - doNothing(); - - fSomeField = true; - - fIsValid = true; -} - -void deer::alces::setLatin(bool l) { - fLatin = l; -} - -bool deer::alces::getLatin() { - return fLatin; -} - -void deer::alces::doLatinStuff(moose moosein) { - // All these functions should be identified by semantic analyzer. - getFeet(); - setFeet(true); - - getLatin(); - setLatin(true); - - doNothing(); - - deer::moose foo(); - - -} - -moose deer::alces::createMoose() -{ - moose MooseVariableName; - bool tmp; - int itmp; - bool fool; - int fast; - - MooseVariableName = createMoose(); - - doLatinStuff(MooseVariableName); - - tmp = this.f// -1- - // #1# ( "fAlcesBool" "fIsValid" "fLatin" ) - ; - - itmp = this.f// -2- - // #2# ( "fAlcesInt" "fGreek" "fIsProtectedInt" ) - ; - - tmp = f// -3- - // #3# ( "fAlcesBool" "fIsValid" "fLatin" "fool" ) - ; - - itmp = f// -4- - // #4# ( "fAlcesInt" "fGreek" "fIsProtectedInt" "fast" ) - ; - - MooseVariableName = m// -5- - // #5# ( "moose" ) - - return MooseVariableName; -} - -/** Test Scope Changes - * - * This function is rigged to make sure the scope changes to account - * for different locations in local variable parsing. - */ -int someFunction(int mPickle) -{ - moose mMoose = deer::alces::createMoose(); - - if (mPickle == 1) { - - int mOption1 = 2; - - m// -5- - // #5# ( "mMoose" "mOption1" "mPickle" ) - ; - - } else { - - int mOption2 = 2; - - m// -6- - // #6# ( "mMoose" "mOption2" "mPickle" ) - ; - } - -} - -// Thanks Ming-Wei Chang for this next example. - -namespace pub_priv { - - class A{ - private: - void private_a(){} - public: - void public_a(); - }; - - void A::public_a() { - A other_a; - - other_a.p// -7- - // #7# ( "private_a" "public_a" ) - ; - } - - int some_regular_function(){ - A a; - a.p// -8- - // #8# ( "public_a" ) - ; - return 0; - } - -} - - -/** Test Scope w/in a function (non-method) with classes using - * different levels of inheritance. - */ -int otherFunction() -{ - sneaky::antelope Antelope(1); - sneaky::jackalope Jackalope(1); - sneaky::bugalope Bugalope(1); - - Antelope.// -9- - // #9# ( "fAntyPublic" "fQuadPublic" "testAccess") - ; - - Jackalope.// -10- - // #10# ( "fBunnyPublic" "testAccess") - ; - - Jackalope// @1@ 6 - ; - Jackalope; - Jackalope; - Jackalope; - - Bugalope.// -11- - // #11# ( "fBugPublic" "testAccess") - ; - Bugalope// @2@ 3 - ; -} - -/** Test methods within each class for types of access to the baseclass. - */ - -bool sneaky::antelope::testAccess() //^7^ -{ - this.// -12- - // #12# ( "fAntyPrivate" "fAntyProtected" "fAntyPublic" "fQuadProtected" "fQuadPublic" "testAccess" ) - ; -} - -bool sneaky::jackalope::testAccess() //^8^ -{ - this.// -13- - // #13# ( "fBunnyPrivate" "fBunnyProtected" "fBunnyPublic" "fQuadProtected" "fQuadPublic" "testAccess" ) - ; -} - -bool sneaky::bugalope::testAccess() //^9^ -{ - this.// -14- - // #14# ( "fBugPrivate" "fBugProtected" "fBugPublic" "fQuadPublic" "testAccess" ) - ; -} - diff --git a/test/cedet/tests/testsubclass.hh b/test/cedet/tests/testsubclass.hh deleted file mode 100644 index 13e907da887..00000000000 --- a/test/cedet/tests/testsubclass.hh +++ /dev/null @@ -1,191 +0,0 @@ -// testsubclass.hh --- unit test for analyzer and complex C++ inheritance - -// Copyright (C) 2007-2015 Free Software Foundation, Inc. - -// Author: Eric M. Ludlam <eric@siege-engine.com> - -// This file is part of GNU Emacs. - -// GNU Emacs is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// GNU Emacs is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. - -//#include <cmath> -// #include <stdio.h> - -#ifndef TESTSUBCLASS_HH -#define TESTSUBCLASS_HH - -namespace animal { - - class moose { - public: - moose() : fFeet(0), - fIsValid(false) - { } - - virtual void setFeet(int); - int getFeet(); - - void doNothing(); - - enum moose_enum { - NAME1, NAME2, NAME3 }; - - - protected: - - bool fIsValid; - int fIsProtectedInt; - - private: - int fFeet; // Usually 2 or 4. - bool fIsPrivateBool; - - }; // moose - - int two_prototypes(); - int two_prototypes(); - - class quadruped { - public: - quadruped(int a) : fQuadPrivate(a) - { } - - int fQuadPublic; - - protected: - int fQuadProtected; - - private: - int fQuadPrivate; - - }; - -} - - -namespace deer { - - class moose : public animal::moose { - public: - moose() : fAntlers(false) - { } - - void setAntlers(bool); - bool getAntlers(); - - void doSomething(); - - protected: - - bool fSomeField; - - private: - bool fAntlers; - - }; - -} // deer - -// A second namespace of the same name will test the -// namespace merging needed to resolve deer::alces -namespace deer { - - class alces : public animal::moose { - public: - alces(int lat) : fLatin(lat) - { } - - void setLatin(bool); - bool getLatin(); - - void doLatinStuff(moose moosein); // for completion testing - - moose createMoose(); // for completion testing. - - protected: - bool fAlcesBool; - int fAlcesInt; - - private: - bool fLatin; - int fGreek; - }; - -}; - -// A third namespace with classes that does protected and private inheritance. -namespace sneaky { - - class antelope : public animal::quadruped { - - public: - antelope(int a) : animal::quadruped(), - fAntyProtected(a) - {} - - int fAntyPublic; - - bool testAccess(); - - protected: - int fAntyProtected; - - private : - int fAntyPrivate; - - }; - - class jackalope : protected animal::quadruped { - - public: - jackalope(int a) : animal::quadruped(), - fBunny(a) - {} - - int fBunnyPublic; - - bool testAccess(); - - protected: - bool fBunnyProtected; - - private : - bool fBunnyPrivate; - - }; - - // Nothing specified means private. - class bugalope : /* private*/ animal::quadruped { - - public: - bugalope(int a) : animal::quadruped(), - fBug(a) - {} - - int fBugPublic; - - bool testAccess(); - protected: - bool fBugProtected; - - private : - bool fBugPrivate; - - }; - - -}; - -#endif - diff --git a/test/cedet/tests/testtypedefs.cpp b/test/cedet/tests/testtypedefs.cpp deleted file mode 100644 index fa94af3596f..00000000000 --- a/test/cedet/tests/testtypedefs.cpp +++ /dev/null @@ -1,81 +0,0 @@ -// testtypedefs.cpp --- Sample with some fake bits out of std::string - -// Copyright (C) 2008-2015 Free Software Foundation, Inc. - -// Author: Eric M. Ludlam <eric@siege-engine.com> - -// This file is part of GNU Emacs. - -// GNU Emacs is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// GNU Emacs is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. - -// Thanks Ming-Wei Chang for these examples. - -namespace std { - template <T>class basic_string { - public: - void resize(int); - }; -} - -typedef std::basic_string<char> mstring; - -using namespace std; -typedef basic_string<char> bstring; - -int main(){ - mstring a; - a.// -1- - ; - // #1# ( "resize" ) - bstring b; - // It doesn't work here. - b.// -2- - ; - // #2# ( "resize" ) - return 0; -} - -// ------------------ - -class Bar -{ -public: - void someFunc() {} -}; - -typedef Bar new_Bar; - -template <class mytype> -class TBar -{ -public: - void otherFunc() {} -}; - -typedef TBar<char> new_TBar; - -int main() -{ - new_Bar nb; - new_TBar ntb; - - nb.// -3- - ; - // #3# ("someFunc") - ntb.// -4- - ; - // #4# ("otherFunc") - return 0; -} - diff --git a/test/cedet/tests/testvarnames.c b/test/cedet/tests/testvarnames.c deleted file mode 100644 index f08b773bd4b..00000000000 --- a/test/cedet/tests/testvarnames.c +++ /dev/null @@ -1,90 +0,0 @@ -/* testvarnames.cpp - Test variable and function names, lists of variables on one line, etc. - - Copyright (C) 2008-2015 Free Software Foundation, Inc. - - Author: Eric M. Ludlam <eric@siege-engine.com> - - This file is part of GNU Emacs. - - GNU Emacs is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - GNU Emacs is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. -*/ - -struct independent { - int indep_1; - int indep_2; -}; - -struct independent var_indep_struct; - -struct { - int unnamed_1; - int unnamed_2; -} var_unnamed_struct; - -struct { - int unnamed_3; - int unnamed_4; -} var_un_2, var_un_3; - -struct inlinestruct { - int named_1; - int named_2; -} var_named_struct; - -struct inline2struct { - int named_3; - int named_4; -} var_n_2, var_n_3; - -/* Structures with names that then declare variables - * should also be completable. - * - * Getting this to work is the bugfix in semantic-c.el CVS v 1.122 - */ -struct inlinestruct in_var1; -struct inline2struct in_var2; - -int test_1(int var_arg1) { - - var_// -1- - ; // #1# ("var_arg1" "var_indep_struct" "var_n_2" "var_n_3" "var_named_struct" "var_un_2" "var_un_3" "var_unnamed_struct") - - var_indep_struct.// -2- - ; // #2# ( "indep_1" "indep_2" ) - - var_unnamed_struct.// -3- - ; // #3# ( "unnamed_1" "unnamed_2" ) - - var_named_struct.// -4- - ; // #4# ( "named_1" "named_2" ) - - var_un_2.// -5- - ; // #5# ( "unnamed_3" "unnamed_4" ) - var_un_3.// -6- - ; // #6# ( "unnamed_3" "unnamed_4" ) - - var_n_2.// -7- - ; // #7# ( "named_3" "named_4" ) - var_n_3.// -8- - ; // #8# ( "named_3" "named_4" ) - - in_// -9- - ; // #9# ( "in_var1" "in_var2" ) - - in_var1.// -10- - ; // #10# ( "named_1" "named_2") - in_var2.// -11- - ; // #11# ( "named_3" "named_4") -} |